@takumi-rs/wasm 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/export.cjs +24 -4
- package/dist/export.d.cts +4 -0
- package/dist/export.d.mts +4 -0
- package/dist/export.mjs +24 -4
- package/package.json +2 -2
- package/pkg/takumi_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Takumi is a **image rendering engine** written in Rust and this package provides WebAssembly bindings.
|
|
4
4
|
|
|
5
|
-
Please refer to the [
|
|
5
|
+
Please refer to the [Integration](https://takumi.kane.tw/docs/integration) page in our official documentation for more details.
|
|
6
6
|
|
|
7
7
|
If you are looking for Node.js bindings, take a look at the [@takumi-rs/core](https://npmjs.com/package/@takumi-rs/core) package.
|
package/dist/export.cjs
CHANGED
|
@@ -543,14 +543,31 @@ async function __wbg_init(module_or_path) {
|
|
|
543
543
|
var Renderer = class extends Renderer$1 {
|
|
544
544
|
fontsMark = /* @__PURE__ */ new Set();
|
|
545
545
|
fontBuffersMark = /* @__PURE__ */ new WeakSet();
|
|
546
|
+
persistentImageSrcMark = /* @__PURE__ */ new Set();
|
|
547
|
+
pendingPersistentImages = /* @__PURE__ */ new Map();
|
|
546
548
|
putPersistentImage(data, signal) {
|
|
547
549
|
if (signal?.aborted) return;
|
|
550
|
+
if (!this.isNewPersistentImage(data.src)) return this.pendingPersistentImages.get(data.src);
|
|
548
551
|
const resolved = resolveImageLoader(data);
|
|
549
|
-
if (isPromise(resolved))
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
552
|
+
if (isPromise(resolved)) {
|
|
553
|
+
const pending = resolved.then((value) => {
|
|
554
|
+
if (signal?.aborted) return;
|
|
555
|
+
super.putPersistentImage(value);
|
|
556
|
+
this.persistentImageSrcMark.add(data.src);
|
|
557
|
+
}).finally(() => {
|
|
558
|
+
this.pendingPersistentImages.delete(data.src);
|
|
559
|
+
});
|
|
560
|
+
this.pendingPersistentImages.set(data.src, pending);
|
|
561
|
+
return pending;
|
|
562
|
+
}
|
|
563
|
+
if (signal?.aborted) return;
|
|
553
564
|
super.putPersistentImage(resolved);
|
|
565
|
+
this.persistentImageSrcMark.add(data.src);
|
|
566
|
+
}
|
|
567
|
+
clearImageStore() {
|
|
568
|
+
super.clearImageStore();
|
|
569
|
+
this.persistentImageSrcMark.clear();
|
|
570
|
+
this.pendingPersistentImages.clear();
|
|
554
571
|
}
|
|
555
572
|
async loadFonts(fonts, signal) {
|
|
556
573
|
let loaded = 0;
|
|
@@ -602,6 +619,9 @@ var Renderer = class extends Renderer$1 {
|
|
|
602
619
|
}
|
|
603
620
|
this.fontsMark.delete(key);
|
|
604
621
|
}
|
|
622
|
+
isNewPersistentImage(src) {
|
|
623
|
+
return !this.persistentImageSrcMark.has(src) && !this.pendingPersistentImages.has(src);
|
|
624
|
+
}
|
|
605
625
|
};
|
|
606
626
|
function createFontKey(font) {
|
|
607
627
|
if ("key" in font && font.key) return font.key;
|
package/dist/export.d.cts
CHANGED
|
@@ -278,14 +278,18 @@ type FontLoaderSync = Font | (Omit<FontDetails, "data"> & {
|
|
|
278
278
|
declare class Renderer extends Renderer$1 {
|
|
279
279
|
private fontsMark;
|
|
280
280
|
private fontBuffersMark;
|
|
281
|
+
private persistentImageSrcMark;
|
|
282
|
+
private pendingPersistentImages;
|
|
281
283
|
putPersistentImage(data: ImageSourceLoaderSync, signal?: AbortSignal): void;
|
|
282
284
|
putPersistentImage(data: ImageSourceLoader, signal?: AbortSignal): Promise<void>;
|
|
285
|
+
clearImageStore(): void;
|
|
283
286
|
loadFonts(fonts: FontLoader[], signal?: AbortSignal): Promise<number>;
|
|
284
287
|
loadFont(data: FontLoaderSync, signal?: AbortSignal): void;
|
|
285
288
|
loadFont(data: FontLoader, signal?: AbortSignal): Promise<void>;
|
|
286
289
|
private loadFontInternal;
|
|
287
290
|
private checkAndMarkFont;
|
|
288
291
|
private unmarkFont;
|
|
292
|
+
private isNewPersistentImage;
|
|
289
293
|
}
|
|
290
294
|
//#endregion
|
|
291
295
|
export { AnimationFrameSource, AnimationSceneSource, ByteBuf, ConstructRendererOptions, ContainerNode, EncodeFramesOptions, Font, FontDetails, FontLoader, FontLoaderSync, ImageNode, ImageSource, ImageSourceLoader, ImageSourceLoaderSync, InitInput, InitOutput, KeyframeRule, Keyframes, KeyframesMap, KeyframesRule, KeyframesRuleList, MeasuredNode, MeasuredTextRun, Node, NodeMetadata, RenderAnimationOptions, RenderOptions, Renderer, SyncInitInput, TextNode, __wbg_init as default, extractResourceUrls, initSync };
|
package/dist/export.d.mts
CHANGED
|
@@ -278,14 +278,18 @@ type FontLoaderSync = Font | (Omit<FontDetails, "data"> & {
|
|
|
278
278
|
declare class Renderer extends Renderer$1 {
|
|
279
279
|
private fontsMark;
|
|
280
280
|
private fontBuffersMark;
|
|
281
|
+
private persistentImageSrcMark;
|
|
282
|
+
private pendingPersistentImages;
|
|
281
283
|
putPersistentImage(data: ImageSourceLoaderSync, signal?: AbortSignal): void;
|
|
282
284
|
putPersistentImage(data: ImageSourceLoader, signal?: AbortSignal): Promise<void>;
|
|
285
|
+
clearImageStore(): void;
|
|
283
286
|
loadFonts(fonts: FontLoader[], signal?: AbortSignal): Promise<number>;
|
|
284
287
|
loadFont(data: FontLoaderSync, signal?: AbortSignal): void;
|
|
285
288
|
loadFont(data: FontLoader, signal?: AbortSignal): Promise<void>;
|
|
286
289
|
private loadFontInternal;
|
|
287
290
|
private checkAndMarkFont;
|
|
288
291
|
private unmarkFont;
|
|
292
|
+
private isNewPersistentImage;
|
|
289
293
|
}
|
|
290
294
|
//#endregion
|
|
291
295
|
export { AnimationFrameSource, AnimationSceneSource, ByteBuf, ConstructRendererOptions, ContainerNode, EncodeFramesOptions, Font, FontDetails, FontLoader, FontLoaderSync, ImageNode, ImageSource, ImageSourceLoader, ImageSourceLoaderSync, InitInput, InitOutput, KeyframeRule, Keyframes, KeyframesMap, KeyframesRule, KeyframesRuleList, MeasuredNode, MeasuredTextRun, Node, NodeMetadata, RenderAnimationOptions, RenderOptions, Renderer, SyncInitInput, TextNode, __wbg_init as default, extractResourceUrls, initSync };
|
package/dist/export.mjs
CHANGED
|
@@ -539,14 +539,31 @@ async function __wbg_init(module_or_path) {
|
|
|
539
539
|
var Renderer = class extends Renderer$1 {
|
|
540
540
|
fontsMark = /* @__PURE__ */ new Set();
|
|
541
541
|
fontBuffersMark = /* @__PURE__ */ new WeakSet();
|
|
542
|
+
persistentImageSrcMark = /* @__PURE__ */ new Set();
|
|
543
|
+
pendingPersistentImages = /* @__PURE__ */ new Map();
|
|
542
544
|
putPersistentImage(data, signal) {
|
|
543
545
|
if (signal?.aborted) return;
|
|
546
|
+
if (!this.isNewPersistentImage(data.src)) return this.pendingPersistentImages.get(data.src);
|
|
544
547
|
const resolved = resolveImageLoader(data);
|
|
545
|
-
if (isPromise(resolved))
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
548
|
+
if (isPromise(resolved)) {
|
|
549
|
+
const pending = resolved.then((value) => {
|
|
550
|
+
if (signal?.aborted) return;
|
|
551
|
+
super.putPersistentImage(value);
|
|
552
|
+
this.persistentImageSrcMark.add(data.src);
|
|
553
|
+
}).finally(() => {
|
|
554
|
+
this.pendingPersistentImages.delete(data.src);
|
|
555
|
+
});
|
|
556
|
+
this.pendingPersistentImages.set(data.src, pending);
|
|
557
|
+
return pending;
|
|
558
|
+
}
|
|
559
|
+
if (signal?.aborted) return;
|
|
549
560
|
super.putPersistentImage(resolved);
|
|
561
|
+
this.persistentImageSrcMark.add(data.src);
|
|
562
|
+
}
|
|
563
|
+
clearImageStore() {
|
|
564
|
+
super.clearImageStore();
|
|
565
|
+
this.persistentImageSrcMark.clear();
|
|
566
|
+
this.pendingPersistentImages.clear();
|
|
550
567
|
}
|
|
551
568
|
async loadFonts(fonts, signal) {
|
|
552
569
|
let loaded = 0;
|
|
@@ -598,6 +615,9 @@ var Renderer = class extends Renderer$1 {
|
|
|
598
615
|
}
|
|
599
616
|
this.fontsMark.delete(key);
|
|
600
617
|
}
|
|
618
|
+
isNewPersistentImage(src) {
|
|
619
|
+
return !this.persistentImageSrcMark.has(src) && !this.pendingPersistentImages.has(src);
|
|
620
|
+
}
|
|
601
621
|
};
|
|
602
622
|
function createFontKey(font) {
|
|
603
623
|
if ("key" in font && font.key) return font.key;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takumi-rs/wasm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"css",
|
|
6
6
|
"image",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"prepublishOnly": "jq '.dependencies[\"@takumi-rs/helpers\"] = .version' package.json > tmp.json && mv tmp.json package.json"
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@takumi-rs/helpers": "1.0.
|
|
79
|
+
"@takumi-rs/helpers": "1.0.11"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@types/bun": "catalog:",
|
package/pkg/takumi_wasm_bg.wasm
CHANGED
|
Binary file
|