@shopify/react-native-skia 0.1.231 → 0.1.233

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.
Files changed (68) hide show
  1. package/cpp/rnskia/dom/props/FontProp.h +2 -7
  2. package/lib/commonjs/dom/nodes/drawings/Text.js +1 -11
  3. package/lib/commonjs/dom/nodes/drawings/Text.js.map +1 -1
  4. package/lib/commonjs/dom/types/Drawings.d.ts +1 -1
  5. package/lib/commonjs/dom/types/Drawings.js.map +1 -1
  6. package/lib/commonjs/renderer/Canvas.js +5 -0
  7. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  8. package/lib/commonjs/renderer/HostConfig.js +1 -1
  9. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  10. package/lib/commonjs/renderer/Reconciler.d.ts +1 -0
  11. package/lib/commonjs/renderer/Reconciler.js +4 -0
  12. package/lib/commonjs/renderer/Reconciler.js.map +1 -1
  13. package/lib/commonjs/skia/types/Matrix4.d.ts +5 -0
  14. package/lib/commonjs/skia/types/Matrix4.js +8 -3
  15. package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
  16. package/lib/commonjs/skia/types/Paragraph/Paragraph.d.ts +2 -2
  17. package/lib/commonjs/skia/types/Paragraph/Paragraph.js.map +1 -1
  18. package/lib/commonjs/skia/types/Paragraph/ParagraphStyle.d.ts +6 -6
  19. package/lib/commonjs/skia/types/Paragraph/ParagraphStyle.js +25 -25
  20. package/lib/commonjs/skia/types/Paragraph/ParagraphStyle.js.map +1 -1
  21. package/lib/commonjs/skia/types/Shader/Shader.js +1 -1
  22. package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
  23. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js +1 -1
  24. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js.map +1 -1
  25. package/lib/commonjs/web/LoadSkiaWeb.js +4 -1
  26. package/lib/commonjs/web/LoadSkiaWeb.js.map +1 -1
  27. package/lib/module/dom/nodes/drawings/Text.js +1 -11
  28. package/lib/module/dom/nodes/drawings/Text.js.map +1 -1
  29. package/lib/module/dom/types/Drawings.d.ts +1 -1
  30. package/lib/module/dom/types/Drawings.js.map +1 -1
  31. package/lib/module/renderer/Canvas.js +5 -0
  32. package/lib/module/renderer/Canvas.js.map +1 -1
  33. package/lib/module/renderer/HostConfig.js +1 -1
  34. package/lib/module/renderer/HostConfig.js.map +1 -1
  35. package/lib/module/renderer/Reconciler.d.ts +1 -0
  36. package/lib/module/renderer/Reconciler.js +4 -0
  37. package/lib/module/renderer/Reconciler.js.map +1 -1
  38. package/lib/module/skia/types/Matrix4.d.ts +5 -0
  39. package/lib/module/skia/types/Matrix4.js +6 -4
  40. package/lib/module/skia/types/Matrix4.js.map +1 -1
  41. package/lib/module/skia/types/Paragraph/Paragraph.d.ts +2 -2
  42. package/lib/module/skia/types/Paragraph/Paragraph.js.map +1 -1
  43. package/lib/module/skia/types/Paragraph/ParagraphStyle.d.ts +6 -6
  44. package/lib/module/skia/types/Paragraph/ParagraphStyle.js +21 -21
  45. package/lib/module/skia/types/Paragraph/ParagraphStyle.js.map +1 -1
  46. package/lib/module/skia/types/Shader/Shader.js +1 -1
  47. package/lib/module/skia/types/Shader/Shader.js.map +1 -1
  48. package/lib/module/skia/web/JsiSkParagraphStyle.js +2 -2
  49. package/lib/module/skia/web/JsiSkParagraphStyle.js.map +1 -1
  50. package/lib/module/web/LoadSkiaWeb.js +5 -1
  51. package/lib/module/web/LoadSkiaWeb.js.map +1 -1
  52. package/lib/typescript/src/dom/types/Drawings.d.ts +1 -1
  53. package/lib/typescript/src/renderer/Reconciler.d.ts +1 -0
  54. package/lib/typescript/src/skia/types/Matrix4.d.ts +5 -0
  55. package/lib/typescript/src/skia/types/Paragraph/Paragraph.d.ts +2 -2
  56. package/lib/typescript/src/skia/types/Paragraph/ParagraphStyle.d.ts +6 -6
  57. package/package.json +1 -1
  58. package/src/dom/nodes/drawings/Text.ts +1 -14
  59. package/src/dom/types/Drawings.ts +1 -1
  60. package/src/renderer/Canvas.tsx +6 -0
  61. package/src/renderer/HostConfig.ts +1 -1
  62. package/src/renderer/Reconciler.tsx +4 -0
  63. package/src/skia/types/Matrix4.ts +8 -6
  64. package/src/skia/types/Paragraph/Paragraph.ts +2 -2
  65. package/src/skia/types/Paragraph/ParagraphStyle.ts +6 -6
  66. package/src/skia/types/Shader/Shader.ts +1 -1
  67. package/src/skia/web/JsiSkParagraphStyle.ts +2 -2
  68. package/src/web/LoadSkiaWeb.tsx +4 -1
@@ -1,27 +1,27 @@
1
- export let SkTextDirection;
1
+ export let TextDirection;
2
2
 
3
- (function (SkTextDirection) {
4
- SkTextDirection[SkTextDirection["RTL"] = 0] = "RTL";
5
- SkTextDirection[SkTextDirection["LTR"] = 1] = "LTR";
6
- })(SkTextDirection || (SkTextDirection = {}));
3
+ (function (TextDirection) {
4
+ TextDirection[TextDirection["RTL"] = 0] = "RTL";
5
+ TextDirection[TextDirection["LTR"] = 1] = "LTR";
6
+ })(TextDirection || (TextDirection = {}));
7
7
 
8
- export let SkTextAlign;
8
+ export let TextAlign;
9
9
 
10
- (function (SkTextAlign) {
11
- SkTextAlign[SkTextAlign["Left"] = 0] = "Left";
12
- SkTextAlign[SkTextAlign["Right"] = 1] = "Right";
13
- SkTextAlign[SkTextAlign["Center"] = 2] = "Center";
14
- SkTextAlign[SkTextAlign["Justify"] = 3] = "Justify";
15
- SkTextAlign[SkTextAlign["Start"] = 4] = "Start";
16
- SkTextAlign[SkTextAlign["End"] = 5] = "End";
17
- })(SkTextAlign || (SkTextAlign = {}));
10
+ (function (TextAlign) {
11
+ TextAlign[TextAlign["Left"] = 0] = "Left";
12
+ TextAlign[TextAlign["Right"] = 1] = "Right";
13
+ TextAlign[TextAlign["Center"] = 2] = "Center";
14
+ TextAlign[TextAlign["Justify"] = 3] = "Justify";
15
+ TextAlign[TextAlign["Start"] = 4] = "Start";
16
+ TextAlign[TextAlign["End"] = 5] = "End";
17
+ })(TextAlign || (TextAlign = {}));
18
18
 
19
- export let SkTextHeightBehavior;
19
+ export let TextHeightBehavior;
20
20
 
21
- (function (SkTextHeightBehavior) {
22
- SkTextHeightBehavior[SkTextHeightBehavior["All"] = 0] = "All";
23
- SkTextHeightBehavior[SkTextHeightBehavior["DisableFirstAscent"] = 1] = "DisableFirstAscent";
24
- SkTextHeightBehavior[SkTextHeightBehavior["DisableLastDescent"] = 2] = "DisableLastDescent";
25
- SkTextHeightBehavior[SkTextHeightBehavior["DisableAll"] = 3] = "DisableAll";
26
- })(SkTextHeightBehavior || (SkTextHeightBehavior = {}));
21
+ (function (TextHeightBehavior) {
22
+ TextHeightBehavior[TextHeightBehavior["All"] = 0] = "All";
23
+ TextHeightBehavior[TextHeightBehavior["DisableFirstAscent"] = 1] = "DisableFirstAscent";
24
+ TextHeightBehavior[TextHeightBehavior["DisableLastDescent"] = 2] = "DisableLastDescent";
25
+ TextHeightBehavior[TextHeightBehavior["DisableAll"] = 3] = "DisableAll";
26
+ })(TextHeightBehavior || (TextHeightBehavior = {}));
27
27
  //# sourceMappingURL=ParagraphStyle.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SkTextDirection","SkTextAlign","SkTextHeightBehavior"],"sources":["ParagraphStyle.ts"],"sourcesContent":["import type { SkTextFontStyle, SkTextStyle } from \"./TextStyle\";\n\nexport enum SkTextDirection {\n RTL = 0,\n LTR = 1,\n}\nexport enum SkTextAlign {\n Left = 0,\n Right,\n Center,\n Justify,\n Start,\n End,\n}\n\nexport interface SkStrutStyle {\n strutEnabled?: boolean;\n fontFamilies?: string[];\n fontStyle?: SkTextFontStyle;\n fontSize?: number;\n heightMultiplier?: number;\n halfLeading?: boolean;\n leading?: number;\n forceStrutHeight?: boolean;\n}\n\nexport enum SkTextHeightBehavior {\n All = 0x0,\n DisableFirstAscent = 0x1,\n DisableLastDescent = 0x2,\n DisableAll = 0x1 | 0x2,\n}\n\nexport interface SkParagraphStyle {\n disableHinting?: boolean;\n ellipsis?: string;\n heightMultiplier?: number;\n maxLines?: number;\n replaceTabCharacters?: boolean;\n strutStyle?: SkStrutStyle;\n textAlign?: SkTextAlign;\n textDirection?: SkTextDirection;\n textHeightBehavior?: SkTextHeightBehavior;\n textStyle?: SkTextStyle;\n}\n"],"mappings":"AAEA,WAAYA,eAAZ;;WAAYA,e;EAAAA,e,CAAAA,e;EAAAA,e,CAAAA,e;GAAAA,e,KAAAA,e;;AAIZ,WAAYC,WAAZ;;WAAYA,W;EAAAA,W,CAAAA,W;EAAAA,W,CAAAA,W;EAAAA,W,CAAAA,W;EAAAA,W,CAAAA,W;EAAAA,W,CAAAA,W;EAAAA,W,CAAAA,W;GAAAA,W,KAAAA,W;;AAoBZ,WAAYC,oBAAZ;;WAAYA,oB;EAAAA,oB,CAAAA,oB;EAAAA,oB,CAAAA,oB;EAAAA,oB,CAAAA,oB;EAAAA,oB,CAAAA,oB;GAAAA,oB,KAAAA,oB"}
1
+ {"version":3,"names":["TextDirection","TextAlign","TextHeightBehavior"],"sources":["ParagraphStyle.ts"],"sourcesContent":["import type { SkTextFontStyle, SkTextStyle } from \"./TextStyle\";\n\nexport enum TextDirection {\n RTL = 0,\n LTR = 1,\n}\nexport enum TextAlign {\n Left = 0,\n Right,\n Center,\n Justify,\n Start,\n End,\n}\n\nexport interface SkStrutStyle {\n strutEnabled?: boolean;\n fontFamilies?: string[];\n fontStyle?: SkTextFontStyle;\n fontSize?: number;\n heightMultiplier?: number;\n halfLeading?: boolean;\n leading?: number;\n forceStrutHeight?: boolean;\n}\n\nexport enum TextHeightBehavior {\n All = 0x0,\n DisableFirstAscent = 0x1,\n DisableLastDescent = 0x2,\n DisableAll = 0x1 | 0x2,\n}\n\nexport interface SkParagraphStyle {\n disableHinting?: boolean;\n ellipsis?: string;\n heightMultiplier?: number;\n maxLines?: number;\n replaceTabCharacters?: boolean;\n strutStyle?: SkStrutStyle;\n textAlign?: TextAlign;\n textDirection?: TextDirection;\n textHeightBehavior?: TextHeightBehavior;\n textStyle?: SkTextStyle;\n}\n"],"mappings":"AAEA,WAAYA,aAAZ;;WAAYA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;GAAAA,a,KAAAA,a;;AAIZ,WAAYC,SAAZ;;WAAYA,S;EAAAA,S,CAAAA,S;EAAAA,S,CAAAA,S;EAAAA,S,CAAAA,S;EAAAA,S,CAAAA,S;EAAAA,S,CAAAA,S;EAAAA,S,CAAAA,S;GAAAA,S,KAAAA,S;;AAoBZ,WAAYC,kBAAZ;;WAAYA,kB;EAAAA,kB,CAAAA,kB;EAAAA,kB,CAAAA,kB;EAAAA,kB,CAAAA,kB;EAAAA,kB,CAAAA,kB;GAAAA,kB,KAAAA,kB"}
@@ -24,7 +24,7 @@ export const processUniforms = (source, uniforms, builder) => {
24
24
  const name = source.getUniformName(i);
25
25
  const value = uniforms[name];
26
26
 
27
- if (!value === undefined) {
27
+ if (value === undefined) {
28
28
  throw new Error( // eslint-disable-next-line max-len
29
29
  `The runtime effect has the uniform value "${name}" declared, but it is missing from the uniforms property of the Runtime effect.`);
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"names":["isShader","obj","__typename__","isVector","x","undefined","y","processValue","values","value","push","Array","isArray","forEach","v","Float32Array","processUniforms","source","uniforms","builder","result","uniformsCount","getUniformCount","i","name","getUniformName","Error","uniformValue","setUniform"],"sources":["Shader.ts"],"sourcesContent":["import type { SkJSIInstance } from \"../JsiInstance\";\nimport type { Vector } from \"../Point\";\nimport type { SkRuntimeEffect, SkRuntimeShaderBuilder } from \"../RuntimeEffect\";\n\nexport const isShader = (obj: SkJSIInstance<string> | null): obj is SkShader =>\n obj !== null && obj.__typename__ === \"Shader\";\n\nexport type SkShader = SkJSIInstance<\"Shader\">;\n\nexport type Uniform = number | Vector | Float32Array | Uniform[];\n\nexport interface Uniforms {\n [name: string]: Uniform;\n}\n\nconst isVector = (obj: unknown): obj is Vector =>\n // We have an issue to check property existence on JSI backed instances\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (obj as any).x !== undefined && (obj as any).y !== undefined;\n\nconst processValue = (values: number[], value: Uniform) => {\n if (typeof value === \"number\") {\n values.push(value);\n } else if (Array.isArray(value)) {\n value.forEach((v) => processValue(values, v));\n } else if (isVector(value)) {\n values.push(value.x, value.y);\n } else if (value instanceof Float32Array) {\n values.push(...value);\n }\n};\n\nexport const processUniforms = (\n source: SkRuntimeEffect,\n uniforms: Uniforms,\n builder?: SkRuntimeShaderBuilder\n) => {\n const result: number[] = [];\n const uniformsCount = source.getUniformCount();\n for (let i = 0; i < uniformsCount; i++) {\n const name = source.getUniformName(i);\n const value = uniforms[name];\n if (!value === undefined) {\n throw new Error(\n // eslint-disable-next-line max-len\n `The runtime effect has the uniform value \"${name}\" declared, but it is missing from the uniforms property of the Runtime effect.`\n );\n }\n if (builder === undefined) {\n processValue(result, value);\n } else {\n const uniformValue: number[] = [];\n processValue(uniformValue, value);\n builder.setUniform(name, uniformValue);\n result.push(...uniformValue);\n }\n }\n return result;\n};\n"],"mappings":"AAIA,OAAO,MAAMA,QAAQ,GAAIC,GAAD,IACtBA,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAACC,YAAJ,KAAqB,QADhC;;AAWP,MAAMC,QAAQ,GAAIF,GAAD,IACf;AACA;AACCA,GAAD,CAAaG,CAAb,KAAmBC,SAAnB,IAAiCJ,GAAD,CAAaK,CAAb,KAAmBD,SAHrD;;AAKA,MAAME,YAAY,GAAG,CAACC,MAAD,EAAmBC,KAAnB,KAAsC;EACzD,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC7BD,MAAM,CAACE,IAAP,CAAYD,KAAZ;EACD,CAFD,MAEO,IAAIE,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;IAC/BA,KAAK,CAACI,OAAN,CAAeC,CAAD,IAAOP,YAAY,CAACC,MAAD,EAASM,CAAT,CAAjC;EACD,CAFM,MAEA,IAAIX,QAAQ,CAACM,KAAD,CAAZ,EAAqB;IAC1BD,MAAM,CAACE,IAAP,CAAYD,KAAK,CAACL,CAAlB,EAAqBK,KAAK,CAACH,CAA3B;EACD,CAFM,MAEA,IAAIG,KAAK,YAAYM,YAArB,EAAmC;IACxCP,MAAM,CAACE,IAAP,CAAY,GAAGD,KAAf;EACD;AACF,CAVD;;AAYA,OAAO,MAAMO,eAAe,GAAG,CAC7BC,MAD6B,EAE7BC,QAF6B,EAG7BC,OAH6B,KAI1B;EACH,MAAMC,MAAgB,GAAG,EAAzB;EACA,MAAMC,aAAa,GAAGJ,MAAM,CAACK,eAAP,EAAtB;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,aAApB,EAAmCE,CAAC,EAApC,EAAwC;IACtC,MAAMC,IAAI,GAAGP,MAAM,CAACQ,cAAP,CAAsBF,CAAtB,CAAb;IACA,MAAMd,KAAK,GAAGS,QAAQ,CAACM,IAAD,CAAtB;;IACA,IAAI,CAACf,KAAD,KAAWJ,SAAf,EAA0B;MACxB,MAAM,IAAIqB,KAAJ,EACJ;MACC,6CAA4CF,IAAK,iFAF9C,CAAN;IAID;;IACD,IAAIL,OAAO,KAAKd,SAAhB,EAA2B;MACzBE,YAAY,CAACa,MAAD,EAASX,KAAT,CAAZ;IACD,CAFD,MAEO;MACL,MAAMkB,YAAsB,GAAG,EAA/B;MACApB,YAAY,CAACoB,YAAD,EAAelB,KAAf,CAAZ;MACAU,OAAO,CAACS,UAAR,CAAmBJ,IAAnB,EAAyBG,YAAzB;MACAP,MAAM,CAACV,IAAP,CAAY,GAAGiB,YAAf;IACD;EACF;;EACD,OAAOP,MAAP;AACD,CA1BM"}
1
+ {"version":3,"names":["isShader","obj","__typename__","isVector","x","undefined","y","processValue","values","value","push","Array","isArray","forEach","v","Float32Array","processUniforms","source","uniforms","builder","result","uniformsCount","getUniformCount","i","name","getUniformName","Error","uniformValue","setUniform"],"sources":["Shader.ts"],"sourcesContent":["import type { SkJSIInstance } from \"../JsiInstance\";\nimport type { Vector } from \"../Point\";\nimport type { SkRuntimeEffect, SkRuntimeShaderBuilder } from \"../RuntimeEffect\";\n\nexport const isShader = (obj: SkJSIInstance<string> | null): obj is SkShader =>\n obj !== null && obj.__typename__ === \"Shader\";\n\nexport type SkShader = SkJSIInstance<\"Shader\">;\n\nexport type Uniform = number | Vector | Float32Array | Uniform[];\n\nexport interface Uniforms {\n [name: string]: Uniform;\n}\n\nconst isVector = (obj: unknown): obj is Vector =>\n // We have an issue to check property existence on JSI backed instances\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (obj as any).x !== undefined && (obj as any).y !== undefined;\n\nconst processValue = (values: number[], value: Uniform) => {\n if (typeof value === \"number\") {\n values.push(value);\n } else if (Array.isArray(value)) {\n value.forEach((v) => processValue(values, v));\n } else if (isVector(value)) {\n values.push(value.x, value.y);\n } else if (value instanceof Float32Array) {\n values.push(...value);\n }\n};\n\nexport const processUniforms = (\n source: SkRuntimeEffect,\n uniforms: Uniforms,\n builder?: SkRuntimeShaderBuilder\n) => {\n const result: number[] = [];\n const uniformsCount = source.getUniformCount();\n for (let i = 0; i < uniformsCount; i++) {\n const name = source.getUniformName(i);\n const value = uniforms[name];\n if (value === undefined) {\n throw new Error(\n // eslint-disable-next-line max-len\n `The runtime effect has the uniform value \"${name}\" declared, but it is missing from the uniforms property of the Runtime effect.`\n );\n }\n if (builder === undefined) {\n processValue(result, value);\n } else {\n const uniformValue: number[] = [];\n processValue(uniformValue, value);\n builder.setUniform(name, uniformValue);\n result.push(...uniformValue);\n }\n }\n return result;\n};\n"],"mappings":"AAIA,OAAO,MAAMA,QAAQ,GAAIC,GAAD,IACtBA,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAACC,YAAJ,KAAqB,QADhC;;AAWP,MAAMC,QAAQ,GAAIF,GAAD,IACf;AACA;AACCA,GAAD,CAAaG,CAAb,KAAmBC,SAAnB,IAAiCJ,GAAD,CAAaK,CAAb,KAAmBD,SAHrD;;AAKA,MAAME,YAAY,GAAG,CAACC,MAAD,EAAmBC,KAAnB,KAAsC;EACzD,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC7BD,MAAM,CAACE,IAAP,CAAYD,KAAZ;EACD,CAFD,MAEO,IAAIE,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;IAC/BA,KAAK,CAACI,OAAN,CAAeC,CAAD,IAAOP,YAAY,CAACC,MAAD,EAASM,CAAT,CAAjC;EACD,CAFM,MAEA,IAAIX,QAAQ,CAACM,KAAD,CAAZ,EAAqB;IAC1BD,MAAM,CAACE,IAAP,CAAYD,KAAK,CAACL,CAAlB,EAAqBK,KAAK,CAACH,CAA3B;EACD,CAFM,MAEA,IAAIG,KAAK,YAAYM,YAArB,EAAmC;IACxCP,MAAM,CAACE,IAAP,CAAY,GAAGD,KAAf;EACD;AACF,CAVD;;AAYA,OAAO,MAAMO,eAAe,GAAG,CAC7BC,MAD6B,EAE7BC,QAF6B,EAG7BC,OAH6B,KAI1B;EACH,MAAMC,MAAgB,GAAG,EAAzB;EACA,MAAMC,aAAa,GAAGJ,MAAM,CAACK,eAAP,EAAtB;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,aAApB,EAAmCE,CAAC,EAApC,EAAwC;IACtC,MAAMC,IAAI,GAAGP,MAAM,CAACQ,cAAP,CAAsBF,CAAtB,CAAb;IACA,MAAMd,KAAK,GAAGS,QAAQ,CAACM,IAAD,CAAtB;;IACA,IAAIf,KAAK,KAAKJ,SAAd,EAAyB;MACvB,MAAM,IAAIqB,KAAJ,EACJ;MACC,6CAA4CF,IAAK,iFAF9C,CAAN;IAID;;IACD,IAAIL,OAAO,KAAKd,SAAhB,EAA2B;MACzBE,YAAY,CAACa,MAAD,EAASX,KAAT,CAAZ;IACD,CAFD,MAEO;MACL,MAAMkB,YAAsB,GAAG,EAA/B;MACApB,YAAY,CAACoB,YAAD,EAAelB,KAAf,CAAZ;MACAU,OAAO,CAACS,UAAR,CAAmBJ,IAAnB,EAAyBG,YAAzB;MACAP,MAAM,CAACV,IAAP,CAAY,GAAGiB,YAAf;IACD;EACF;;EACD,OAAOP,MAAP;AACD,CA1BM"}
@@ -1,4 +1,4 @@
1
- import { SkTextDirection } from "../types";
1
+ import { TextDirection } from "../types";
2
2
  export class JsiSkParagraphStyle {
3
3
  static toParagraphStyle(ck, value) {
4
4
  var _value$disableHinting, _value$ellipsis, _value$heightMultipli, _value$maxLines, _value$replaceTabChar, _ps$strutStyle, _value$strutStyle$fon, _value$strutStyle, _value$strutStyle$fon2, _value$strutStyle2, _value$strutStyle$hei, _value$strutStyle3, _value$strutStyle$lea, _value$strutStyle4, _value$strutStyle$for, _value$strutStyle5, _ps$strutStyle$fontSt, _value$strutStyle6, _value$strutStyle6$fo, _value$strutStyle7, _value$strutStyle7$fo, _value$strutStyle8, _value$strutStyle8$fo, _value$strutStyle$hal, _value$strutStyle9, _value$strutStyle$str, _value$strutStyle10;
@@ -19,7 +19,7 @@ export class JsiSkParagraphStyle {
19
19
  value: value.textAlign
20
20
  } : undefined !== null && undefined !== void 0 ? undefined : ps.textAlign;
21
21
  ps.textDirection = value.textDirection !== undefined ? {
22
- value: value.textDirection === SkTextDirection.LTR ? 1 : 0
22
+ value: value.textDirection === TextDirection.LTR ? 1 : 0
23
23
  } : ps.textDirection;
24
24
  ps.textHeightBehavior = value.textHeightBehavior !== undefined ? {
25
25
  value: value.textHeightBehavior
@@ -1 +1 @@
1
- {"version":3,"names":["SkTextDirection","JsiSkParagraphStyle","toParagraphStyle","ck","value","ps","ParagraphStyle","textStyle","color","BLACK","disableHinting","ellipsis","heightMultiplier","maxLines","replaceTabCharacters","textAlign","undefined","textDirection","LTR","textHeightBehavior","strutStyle","fontFamilies","fontSize","leading","forceStrutHeight","fontStyle","slant","width","weight","halfLeading","strutEnabled"],"sources":["JsiSkParagraphStyle.ts"],"sourcesContent":["import type { CanvasKit, ParagraphStyle } from \"canvaskit-wasm\";\n\nimport { SkTextDirection, type SkParagraphStyle } from \"../types\";\n\nexport class JsiSkParagraphStyle {\n static toParagraphStyle(\n ck: CanvasKit,\n value: SkParagraphStyle\n ): ParagraphStyle {\n // Seems like we need to provide the textStyle.color value, otherwise\n // the constructor crashes.\n const ps = new ck.ParagraphStyle({ textStyle: { color: ck.BLACK } });\n\n ps.disableHinting = value.disableHinting ?? ps.disableHinting;\n ps.ellipsis = value.ellipsis ?? ps.ellipsis;\n ps.heightMultiplier = value.heightMultiplier ?? ps.heightMultiplier;\n ps.maxLines = value.maxLines ?? ps.maxLines;\n ps.replaceTabCharacters =\n value.replaceTabCharacters ?? ps.replaceTabCharacters;\n ps.textAlign =\n value.textAlign !== undefined\n ? { value: value.textAlign }\n : undefined ?? ps.textAlign;\n ps.textDirection =\n value.textDirection !== undefined\n ? { value: value.textDirection === SkTextDirection.LTR ? 1 : 0 }\n : ps.textDirection;\n ps.textHeightBehavior =\n value.textHeightBehavior !== undefined\n ? { value: value.textHeightBehavior }\n : ps.textHeightBehavior;\n\n ps.strutStyle = ps.strutStyle ?? {};\n ps.strutStyle.fontFamilies =\n value.strutStyle?.fontFamilies ?? ps.strutStyle.fontFamilies;\n ps.strutStyle.fontSize =\n value.strutStyle?.fontSize ?? ps.strutStyle.fontSize;\n ps.strutStyle.heightMultiplier =\n value.strutStyle?.heightMultiplier ?? ps.strutStyle.heightMultiplier;\n ps.strutStyle.leading = value.strutStyle?.leading ?? ps.strutStyle.leading;\n ps.strutStyle.forceStrutHeight =\n value.strutStyle?.forceStrutHeight ?? ps.strutStyle.forceStrutHeight;\n\n ps.strutStyle.fontStyle = ps.strutStyle.fontStyle ?? {};\n\n ps.strutStyle.fontStyle.slant =\n value.strutStyle?.fontStyle?.slant !== undefined\n ? { value: value.strutStyle.fontStyle.slant }\n : ps.strutStyle.fontStyle.slant;\n ps.strutStyle.fontStyle.width =\n value.strutStyle?.fontStyle?.width !== undefined\n ? { value: value.strutStyle.fontStyle.width }\n : ps.strutStyle.fontStyle.width;\n ps.strutStyle.fontStyle.weight =\n value.strutStyle?.fontStyle?.weight !== undefined\n ? { value: value.strutStyle.fontStyle.weight }\n : ps.strutStyle.fontStyle.weight;\n ps.strutStyle.halfLeading =\n value.strutStyle?.halfLeading ?? ps.strutStyle.halfLeading;\n ps.strutStyle.strutEnabled =\n value.strutStyle?.strutEnabled ?? ps.strutStyle.strutEnabled;\n\n return ps;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["TextDirection","JsiSkParagraphStyle","toParagraphStyle","ck","value","ps","ParagraphStyle","textStyle","color","BLACK","disableHinting","ellipsis","heightMultiplier","maxLines","replaceTabCharacters","textAlign","undefined","textDirection","LTR","textHeightBehavior","strutStyle","fontFamilies","fontSize","leading","forceStrutHeight","fontStyle","slant","width","weight","halfLeading","strutEnabled"],"sources":["JsiSkParagraphStyle.ts"],"sourcesContent":["import type { CanvasKit, ParagraphStyle } from \"canvaskit-wasm\";\n\nimport { TextDirection, type SkParagraphStyle } from \"../types\";\n\nexport class JsiSkParagraphStyle {\n static toParagraphStyle(\n ck: CanvasKit,\n value: SkParagraphStyle\n ): ParagraphStyle {\n // Seems like we need to provide the textStyle.color value, otherwise\n // the constructor crashes.\n const ps = new ck.ParagraphStyle({ textStyle: { color: ck.BLACK } });\n\n ps.disableHinting = value.disableHinting ?? ps.disableHinting;\n ps.ellipsis = value.ellipsis ?? ps.ellipsis;\n ps.heightMultiplier = value.heightMultiplier ?? ps.heightMultiplier;\n ps.maxLines = value.maxLines ?? ps.maxLines;\n ps.replaceTabCharacters =\n value.replaceTabCharacters ?? ps.replaceTabCharacters;\n ps.textAlign =\n value.textAlign !== undefined\n ? { value: value.textAlign }\n : undefined ?? ps.textAlign;\n ps.textDirection =\n value.textDirection !== undefined\n ? { value: value.textDirection === TextDirection.LTR ? 1 : 0 }\n : ps.textDirection;\n ps.textHeightBehavior =\n value.textHeightBehavior !== undefined\n ? { value: value.textHeightBehavior }\n : ps.textHeightBehavior;\n\n ps.strutStyle = ps.strutStyle ?? {};\n ps.strutStyle.fontFamilies =\n value.strutStyle?.fontFamilies ?? ps.strutStyle.fontFamilies;\n ps.strutStyle.fontSize =\n value.strutStyle?.fontSize ?? ps.strutStyle.fontSize;\n ps.strutStyle.heightMultiplier =\n value.strutStyle?.heightMultiplier ?? ps.strutStyle.heightMultiplier;\n ps.strutStyle.leading = value.strutStyle?.leading ?? ps.strutStyle.leading;\n ps.strutStyle.forceStrutHeight =\n value.strutStyle?.forceStrutHeight ?? ps.strutStyle.forceStrutHeight;\n\n ps.strutStyle.fontStyle = ps.strutStyle.fontStyle ?? {};\n\n ps.strutStyle.fontStyle.slant =\n value.strutStyle?.fontStyle?.slant !== undefined\n ? { value: value.strutStyle.fontStyle.slant }\n : ps.strutStyle.fontStyle.slant;\n ps.strutStyle.fontStyle.width =\n value.strutStyle?.fontStyle?.width !== undefined\n ? { value: value.strutStyle.fontStyle.width }\n : ps.strutStyle.fontStyle.width;\n ps.strutStyle.fontStyle.weight =\n value.strutStyle?.fontStyle?.weight !== undefined\n ? { value: value.strutStyle.fontStyle.weight }\n : ps.strutStyle.fontStyle.weight;\n ps.strutStyle.halfLeading =\n value.strutStyle?.halfLeading ?? ps.strutStyle.halfLeading;\n ps.strutStyle.strutEnabled =\n value.strutStyle?.strutEnabled ?? ps.strutStyle.strutEnabled;\n\n return ps;\n }\n}\n"],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
2
  // @ts-ignore
3
3
  import CanvasKitInit from "canvaskit-wasm/bin/full/canvaskit";
4
+ let ckSharedPromise;
4
5
  export const LoadSkiaWeb = async opts => {
6
+ var _ckSharedPromise;
7
+
5
8
  if (global.CanvasKit !== undefined) {
6
9
  return;
7
10
  }
8
11
 
9
- const CanvasKit = await CanvasKitInit(opts); // The CanvasKit API is stored on the global object and used
12
+ ckSharedPromise = (_ckSharedPromise = ckSharedPromise) !== null && _ckSharedPromise !== void 0 ? _ckSharedPromise : CanvasKitInit(opts);
13
+ const CanvasKit = await ckSharedPromise; // The CanvasKit API is stored on the global object and used
10
14
  // to create the JsiSKApi in the Skia.web.ts file.
11
15
 
12
16
  global.CanvasKit = CanvasKit;
@@ -1 +1 @@
1
- {"version":3,"names":["CanvasKitInit","LoadSkiaWeb","opts","global","CanvasKit","undefined","LoadSkia"],"sources":["LoadSkiaWeb.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport CanvasKitInit from \"canvaskit-wasm/bin/full/canvaskit\";\nimport type {\n CanvasKit as CanvasKitType,\n CanvasKitInitOptions,\n} from \"canvaskit-wasm\";\n\ndeclare global {\n var CanvasKit: CanvasKitType;\n}\n\nexport const LoadSkiaWeb = async (opts?: CanvasKitInitOptions) => {\n if (global.CanvasKit !== undefined) {\n return;\n }\n const CanvasKit = await CanvasKitInit(opts);\n // The CanvasKit API is stored on the global object and used\n // to create the JsiSKApi in the Skia.web.ts file.\n global.CanvasKit = CanvasKit;\n};\n\n// We keep this function for backward compatibility\nexport const LoadSkia = LoadSkiaWeb;\n"],"mappings":"AAAA;AACA;AACA,OAAOA,aAAP,MAA0B,mCAA1B;AAUA,OAAO,MAAMC,WAAW,GAAG,MAAOC,IAAP,IAAuC;EAChE,IAAIC,MAAM,CAACC,SAAP,KAAqBC,SAAzB,EAAoC;IAClC;EACD;;EACD,MAAMD,SAAS,GAAG,MAAMJ,aAAa,CAACE,IAAD,CAArC,CAJgE,CAKhE;EACA;;EACAC,MAAM,CAACC,SAAP,GAAmBA,SAAnB;AACD,CARM,C,CAUP;;AACA,OAAO,MAAME,QAAQ,GAAGL,WAAjB"}
1
+ {"version":3,"names":["CanvasKitInit","ckSharedPromise","LoadSkiaWeb","opts","global","CanvasKit","undefined","LoadSkia"],"sources":["LoadSkiaWeb.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport CanvasKitInit from \"canvaskit-wasm/bin/full/canvaskit\";\nimport type {\n CanvasKit as CanvasKitType,\n CanvasKitInitOptions,\n} from \"canvaskit-wasm\";\n\ndeclare global {\n var CanvasKit: CanvasKitType;\n}\n\nlet ckSharedPromise: Promise<CanvasKitType>;\n\nexport const LoadSkiaWeb = async (opts?: CanvasKitInitOptions) => {\n if (global.CanvasKit !== undefined) {\n return;\n }\n ckSharedPromise = ckSharedPromise ?? CanvasKitInit(opts);\n const CanvasKit = await ckSharedPromise;\n // The CanvasKit API is stored on the global object and used\n // to create the JsiSKApi in the Skia.web.ts file.\n global.CanvasKit = CanvasKit;\n};\n\n// We keep this function for backward compatibility\nexport const LoadSkia = LoadSkiaWeb;\n"],"mappings":"AAAA;AACA;AACA,OAAOA,aAAP,MAA0B,mCAA1B;AAUA,IAAIC,eAAJ;AAEA,OAAO,MAAMC,WAAW,GAAG,MAAOC,IAAP,IAAuC;EAAA;;EAChE,IAAIC,MAAM,CAACC,SAAP,KAAqBC,SAAzB,EAAoC;IAClC;EACD;;EACDL,eAAe,uBAAGA,eAAH,+DAAsBD,aAAa,CAACG,IAAD,CAAlD;EACA,MAAME,SAAS,GAAG,MAAMJ,eAAxB,CALgE,CAMhE;EACA;;EACAG,MAAM,CAACC,SAAP,GAAmBA,SAAnB;AACD,CATM,C,CAWP;;AACA,OAAO,MAAME,QAAQ,GAAGL,WAAjB"}
@@ -66,7 +66,7 @@ export interface DiffRectProps extends DrawingNodeProps {
66
66
  outer: SkRRect;
67
67
  }
68
68
  export interface TextProps extends DrawingNodeProps {
69
- font?: SkFont | null;
69
+ font: SkFont | null;
70
70
  text: string;
71
71
  x: number;
72
72
  y: number;
@@ -5,5 +5,6 @@ export declare class SkiaRoot {
5
5
  private container;
6
6
  constructor(Skia: Skia, redraw?: () => void, getNativeId?: () => number);
7
7
  render(element: ReactNode): void;
8
+ unmount(): void;
8
9
  get dom(): import("..").RenderNode<import("..").GroupProps>;
9
10
  }
@@ -4,6 +4,7 @@ type Point = {
4
4
  };
5
5
  type Vec2 = readonly [number, number];
6
6
  type Vec3 = readonly [number, number, number];
7
+ type Vec4 = readonly [number, number, number, number];
7
8
  export type Matrix3 = readonly [
8
9
  number,
9
10
  number,
@@ -51,6 +52,10 @@ export declare const translate: (x: number, y: number, z?: number) => Matrix4;
51
52
  * @worklet
52
53
  */
53
54
  export declare const perspective: (p: number) => Matrix4;
55
+ /**
56
+ * @worklet
57
+ */
58
+ export declare const matrixVecMul4: (m: Matrix4, v: Vec4) => Vec4;
54
59
  /**
55
60
  * @worklet
56
61
  */
@@ -1,10 +1,10 @@
1
1
  import type { SkCanvas } from "../Canvas";
2
2
  import type { SkJSIInstance } from "../JsiInstance";
3
3
  import type { SkRect } from "../Rect";
4
- import type { SkTextDirection } from "./ParagraphStyle";
4
+ import type { TextDirection } from "./ParagraphStyle";
5
5
  export interface SkRectWithDirection {
6
6
  rect: SkRect;
7
- direction: SkTextDirection;
7
+ direction: TextDirection;
8
8
  }
9
9
  export interface SkParagraph extends SkJSIInstance<"Paragraph"> {
10
10
  /**
@@ -1,9 +1,9 @@
1
1
  import type { SkTextFontStyle, SkTextStyle } from "./TextStyle";
2
- export declare enum SkTextDirection {
2
+ export declare enum TextDirection {
3
3
  RTL = 0,
4
4
  LTR = 1
5
5
  }
6
- export declare enum SkTextAlign {
6
+ export declare enum TextAlign {
7
7
  Left = 0,
8
8
  Right = 1,
9
9
  Center = 2,
@@ -21,7 +21,7 @@ export interface SkStrutStyle {
21
21
  leading?: number;
22
22
  forceStrutHeight?: boolean;
23
23
  }
24
- export declare enum SkTextHeightBehavior {
24
+ export declare enum TextHeightBehavior {
25
25
  All = 0,
26
26
  DisableFirstAscent = 1,
27
27
  DisableLastDescent = 2,
@@ -34,8 +34,8 @@ export interface SkParagraphStyle {
34
34
  maxLines?: number;
35
35
  replaceTabCharacters?: boolean;
36
36
  strutStyle?: SkStrutStyle;
37
- textAlign?: SkTextAlign;
38
- textDirection?: SkTextDirection;
39
- textHeightBehavior?: SkTextHeightBehavior;
37
+ textAlign?: TextAlign;
38
+ textDirection?: TextDirection;
39
+ textHeightBehavior?: TextHeightBehavior;
40
40
  textStyle?: SkTextStyle;
41
41
  }
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "setup-skia-web": "./scripts/setup-canvaskit.js"
8
8
  },
9
9
  "title": "React Native Skia",
10
- "version": "0.1.231",
10
+ "version": "0.1.233",
11
11
  "description": "High-performance React Native Graphics using Skia",
12
12
  "main": "lib/module/index.js",
13
13
  "files": [
@@ -23,21 +23,8 @@ export class TextNode extends JsiDrawingNode<TextProps, SkFont | null> {
23
23
 
24
24
  protected deriveProps() {
25
25
  const { font } = this.props;
26
- if (font === null) {
27
- return null;
28
- } else if (font === undefined) {
29
- console.warn(
30
- "<Text />: the font property is mandatory on React Native Web"
31
- );
26
+ if (!font) {
32
27
  return null;
33
- // return this.Skia.Font(
34
- // this.Skia.FontMgr.System().matchFamilyStyle("System", {
35
- // width: 5,
36
- // weight: 400,
37
- // slant: 0,
38
- // }),
39
- // 14
40
- // );
41
28
  }
42
29
  return font;
43
30
  }
@@ -109,7 +109,7 @@ export interface DiffRectProps extends DrawingNodeProps {
109
109
  }
110
110
 
111
111
  export interface TextProps extends DrawingNodeProps {
112
- font?: SkFont | null;
112
+ font: SkFont | null;
113
113
  text: string;
114
114
  x: number;
115
115
  y: number;
@@ -84,6 +84,12 @@ export const Canvas = forwardRef<SkiaDomView, CanvasProps>(
84
84
  root.render(children);
85
85
  }, [children, root, redraw]);
86
86
 
87
+ useEffect(() => {
88
+ return () => {
89
+ root.unmount();
90
+ };
91
+ }, [root]);
92
+
87
93
  if (NATIVE_DOM) {
88
94
  return (
89
95
  <SkiaDomView
@@ -82,7 +82,7 @@ export const skHostConfig: SkiaHostConfig = {
82
82
  noTimeout: -1,
83
83
 
84
84
  appendChildToContainer(container, child) {
85
- debug("appendChildToContainer", container, child);
85
+ debug("appendChildToContainer");
86
86
  appendNode(container.root, child);
87
87
  },
88
88
 
@@ -44,6 +44,10 @@ export class SkiaRoot {
44
44
  });
45
45
  }
46
46
 
47
+ unmount() {
48
+ skiaReconciler.updateContainer(null, this.root, null, () => {});
49
+ }
50
+
47
51
  get dom() {
48
52
  return this.container.root;
49
53
  }
@@ -150,14 +150,16 @@ const rotatedUnitSinCos = (
150
150
  ];
151
151
  };
152
152
 
153
- const matrixVecMul4 = (m: Matrix4, v: Vec4) => {
153
+ /**
154
+ * @worklet
155
+ */
156
+ export const matrixVecMul4 = (m: Matrix4, v: Vec4): Vec4 => {
154
157
  "worklet";
155
- const [vx, vy, vz, vw] = v;
156
158
  return [
157
- vx * m[0] + vy * m[4] + vz * m[8] + vw * m[12],
158
- vx * m[1] + vy * m[5] + vz * m[9] + vw * m[13],
159
- vx * m[2] + vy * m[6] + vz * m[10] + vw * m[14],
160
- vx * m[3] + vy * m[7] + vz * m[11] + vw * m[15],
159
+ m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3] * v[3],
160
+ m[4] * v[0] + m[5] * v[1] + m[6] * v[2] + m[7] * v[3],
161
+ m[8] * v[0] + m[9] * v[1] + m[10] * v[2] + m[11] * v[3],
162
+ m[12] * v[0] + m[13] * v[1] + m[14] * v[2] + m[15] * v[3],
161
163
  ];
162
164
  };
163
165
 
@@ -2,11 +2,11 @@ import type { SkCanvas } from "../Canvas";
2
2
  import type { SkJSIInstance } from "../JsiInstance";
3
3
  import type { SkRect } from "../Rect";
4
4
 
5
- import type { SkTextDirection } from "./ParagraphStyle";
5
+ import type { TextDirection } from "./ParagraphStyle";
6
6
 
7
7
  export interface SkRectWithDirection {
8
8
  rect: SkRect;
9
- direction: SkTextDirection;
9
+ direction: TextDirection;
10
10
  }
11
11
 
12
12
  export interface SkParagraph extends SkJSIInstance<"Paragraph"> {
@@ -1,10 +1,10 @@
1
1
  import type { SkTextFontStyle, SkTextStyle } from "./TextStyle";
2
2
 
3
- export enum SkTextDirection {
3
+ export enum TextDirection {
4
4
  RTL = 0,
5
5
  LTR = 1,
6
6
  }
7
- export enum SkTextAlign {
7
+ export enum TextAlign {
8
8
  Left = 0,
9
9
  Right,
10
10
  Center,
@@ -24,7 +24,7 @@ export interface SkStrutStyle {
24
24
  forceStrutHeight?: boolean;
25
25
  }
26
26
 
27
- export enum SkTextHeightBehavior {
27
+ export enum TextHeightBehavior {
28
28
  All = 0x0,
29
29
  DisableFirstAscent = 0x1,
30
30
  DisableLastDescent = 0x2,
@@ -38,8 +38,8 @@ export interface SkParagraphStyle {
38
38
  maxLines?: number;
39
39
  replaceTabCharacters?: boolean;
40
40
  strutStyle?: SkStrutStyle;
41
- textAlign?: SkTextAlign;
42
- textDirection?: SkTextDirection;
43
- textHeightBehavior?: SkTextHeightBehavior;
41
+ textAlign?: TextAlign;
42
+ textDirection?: TextDirection;
43
+ textHeightBehavior?: TextHeightBehavior;
44
44
  textStyle?: SkTextStyle;
45
45
  }
@@ -40,7 +40,7 @@ export const processUniforms = (
40
40
  for (let i = 0; i < uniformsCount; i++) {
41
41
  const name = source.getUniformName(i);
42
42
  const value = uniforms[name];
43
- if (!value === undefined) {
43
+ if (value === undefined) {
44
44
  throw new Error(
45
45
  // eslint-disable-next-line max-len
46
46
  `The runtime effect has the uniform value "${name}" declared, but it is missing from the uniforms property of the Runtime effect.`
@@ -1,6 +1,6 @@
1
1
  import type { CanvasKit, ParagraphStyle } from "canvaskit-wasm";
2
2
 
3
- import { SkTextDirection, type SkParagraphStyle } from "../types";
3
+ import { TextDirection, type SkParagraphStyle } from "../types";
4
4
 
5
5
  export class JsiSkParagraphStyle {
6
6
  static toParagraphStyle(
@@ -23,7 +23,7 @@ export class JsiSkParagraphStyle {
23
23
  : undefined ?? ps.textAlign;
24
24
  ps.textDirection =
25
25
  value.textDirection !== undefined
26
- ? { value: value.textDirection === SkTextDirection.LTR ? 1 : 0 }
26
+ ? { value: value.textDirection === TextDirection.LTR ? 1 : 0 }
27
27
  : ps.textDirection;
28
28
  ps.textHeightBehavior =
29
29
  value.textHeightBehavior !== undefined
@@ -10,11 +10,14 @@ declare global {
10
10
  var CanvasKit: CanvasKitType;
11
11
  }
12
12
 
13
+ let ckSharedPromise: Promise<CanvasKitType>;
14
+
13
15
  export const LoadSkiaWeb = async (opts?: CanvasKitInitOptions) => {
14
16
  if (global.CanvasKit !== undefined) {
15
17
  return;
16
18
  }
17
- const CanvasKit = await CanvasKitInit(opts);
19
+ ckSharedPromise = ckSharedPromise ?? CanvasKitInit(opts);
20
+ const CanvasKit = await ckSharedPromise;
18
21
  // The CanvasKit API is stored on the global object and used
19
22
  // to create the JsiSKApi in the Skia.web.ts file.
20
23
  global.CanvasKit = CanvasKit;