mirror of
https://github.com/igorski/bitmappery.git
synced 2026-06-16 19:25:38 +02:00
Migrated all unit tests to TypeScript
This commit is contained in:
17
src/rendering/cache/bitmap-cache.ts
vendored
17
src/rendering/cache/bitmap-cache.ts
vendored
@@ -20,13 +20,20 @@
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
import type { Layer } from "@/definitions/document";
|
||||
import type { Layer, Filters, Text } from "@/definitions/document";
|
||||
|
||||
const layerCache: Map<string, any> = new Map();
|
||||
export type RenderCache = {
|
||||
text?: Text;
|
||||
textBitmap?: HTMLCanvasElement;
|
||||
filters?: Filters;
|
||||
filterData?: ImageData;
|
||||
};
|
||||
|
||||
export const getLayerCache = ( layer: Layer ): any => layerCache.get( layer.id );
|
||||
const layerCache: Map<string, RenderCache> = new Map();
|
||||
|
||||
export const setLayerCache = ( layer: Layer, props: any ): void => {
|
||||
export const getLayerCache = ( layer: Layer ): RenderCache => layerCache.get( layer.id );
|
||||
|
||||
export const setLayerCache = ( layer: Layer, props: RenderCache ): void => {
|
||||
const cache = getLayerCache( layer ) ?? {};
|
||||
layerCache.set( layer.id, { ...cache, ...props });
|
||||
};
|
||||
@@ -35,7 +42,9 @@ export const hasLayerCache = ( layer: Layer ): boolean => layerCache.has( layer.
|
||||
|
||||
export const clearCacheProperty = ( layer: Layer, propertyName: string ): void => {
|
||||
const cache = getLayerCache( layer );
|
||||
// @ts-expect-error using string as key
|
||||
if ( cache?.[ propertyName ] ) {
|
||||
// @ts-expect-error using string as key
|
||||
delete cache[ propertyName ];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
import Vue from "vue";
|
||||
import type { Layer, Filters, Text } from "@/definitions/document";
|
||||
import type { Layer } from "@/definitions/document";
|
||||
import { LayerTypes } from "@/definitions/layer-types";
|
||||
import { getSpriteForLayer } from "@/factories/sprite-factory";
|
||||
import { hasFilters, isEqual as isFiltersEqual } from "@/factories/filters-factory";
|
||||
@@ -29,6 +29,7 @@ import { isEqual as isTextEqual } from "@/factories/text-factory";
|
||||
import { createCanvas, cloneCanvas, matchDimensions } from "@/utils/canvas-util";
|
||||
import { replaceLayerSource } from "@/utils/layer-util";
|
||||
import { getLayerCache, setLayerCache } from "@/rendering/cache/bitmap-cache";
|
||||
import type { RenderCache } from "@/rendering/cache/bitmap-cache";
|
||||
import { renderMultiLineText } from "@/rendering/text";
|
||||
import { loadGoogleFont } from "@/services/font-service";
|
||||
import FilterWorker from "@/workers/filter.worker?worker";
|
||||
@@ -40,13 +41,6 @@ type RenderJob = {
|
||||
error: ( error?: any ) => void;
|
||||
};
|
||||
|
||||
type RenderCache = {
|
||||
text?: Text;
|
||||
textBitmap?: HTMLCanvasElement;
|
||||
filters?: Filters;
|
||||
filterData?: ImageData;
|
||||
};
|
||||
|
||||
const jobQueue: RenderJob[] = [];
|
||||
let UID = 0;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"noImplicitAny": true,
|
||||
"removeComments": true,
|
||||
"paths": {
|
||||
"@/*": [ "./src/*" ]
|
||||
"@/*": [ "./src/*", "./tests/*" ]
|
||||
}
|
||||
},
|
||||
"exclude": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"extends": "./tsconfig.app.json",
|
||||
"includes": [ "src/**/*.ts" ],
|
||||
"includes": [ "src/**/*.ts", "tests/**/*.ts" ],
|
||||
"compilerOptions": {
|
||||
"skipLibCheck": true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user