@vxrn/compiler 1.27.1 → 2.0.0-beta.45.1

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 (89) hide show
  1. package/dist/cjs/cache.cjs +106 -117
  2. package/dist/cjs/configure.cjs +26 -28
  3. package/dist/cjs/constants.cjs +56 -60
  4. package/dist/cjs/index.cjs +420 -443
  5. package/dist/cjs/reactNativeCodegen.cjs +105 -114
  6. package/dist/cjs/reactNativeViewConfig.cjs +362 -381
  7. package/dist/cjs/refresh-runtime.cjs +390 -397
  8. package/dist/cjs/transformBabel.cjs +273 -263
  9. package/dist/cjs/transformHermesAsync.cjs +36 -47
  10. package/dist/cjs/transformHermesLoops.cjs +279 -281
  11. package/dist/cjs/transformSWC.cjs +183 -200
  12. package/dist/cjs/transformWorklets.cjs +107 -95
  13. package/dist/cjs/types.cjs +9 -11
  14. package/dist/cjs/worklets/autoworklet.cjs +277 -222
  15. package/dist/cjs/worklets/globals.cjs +124 -60
  16. package/dist/cjs/worklets/hash.cjs +23 -27
  17. package/dist/cjs/worklets/scope.cjs +338 -359
  18. package/dist/cjs/worklets/serialize.cjs +73 -75
  19. package/dist/cjs/worklets/transform.cjs +217 -222
  20. package/dist/cjs/worklets/types.cjs +9 -11
  21. package/dist/esm/cache.mjs +90 -97
  22. package/dist/esm/cache.mjs.map +1 -1
  23. package/dist/esm/configure.mjs +11 -10
  24. package/dist/esm/configure.mjs.map +1 -1
  25. package/dist/esm/constants.mjs +41 -41
  26. package/dist/esm/constants.mjs.map +1 -1
  27. package/dist/esm/index.js +417 -425
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/index.mjs +417 -425
  30. package/dist/esm/index.mjs.map +1 -1
  31. package/dist/esm/reactNativeCodegen.mjs +90 -88
  32. package/dist/esm/reactNativeCodegen.mjs.map +1 -1
  33. package/dist/esm/reactNativeViewConfig.mjs +347 -362
  34. package/dist/esm/reactNativeViewConfig.mjs.map +1 -1
  35. package/dist/esm/refresh-runtime.mjs +372 -376
  36. package/dist/esm/refresh-runtime.mjs.map +1 -1
  37. package/dist/esm/transformBabel.mjs +255 -237
  38. package/dist/esm/transformBabel.mjs.map +1 -1
  39. package/dist/esm/transformHermesAsync.mjs +20 -21
  40. package/dist/esm/transformHermesAsync.mjs.map +1 -1
  41. package/dist/esm/transformHermesLoops.mjs +264 -255
  42. package/dist/esm/transformHermesLoops.mjs.map +1 -1
  43. package/dist/esm/transformSWC.mjs +163 -171
  44. package/dist/esm/transformSWC.mjs.map +1 -1
  45. package/dist/esm/transformWorklets.mjs +89 -69
  46. package/dist/esm/transformWorklets.mjs.map +1 -1
  47. package/dist/esm/types.mjs +0 -2
  48. package/dist/esm/worklets/autoworklet.mjs +258 -200
  49. package/dist/esm/worklets/autoworklet.mjs.map +1 -1
  50. package/dist/esm/worklets/globals.mjs +109 -42
  51. package/dist/esm/worklets/globals.mjs.map +1 -1
  52. package/dist/esm/worklets/hash.mjs +10 -9
  53. package/dist/esm/worklets/hash.mjs.map +1 -1
  54. package/dist/esm/worklets/scope.mjs +325 -341
  55. package/dist/esm/worklets/scope.mjs.map +1 -1
  56. package/dist/esm/worklets/serialize.mjs +60 -58
  57. package/dist/esm/worklets/serialize.mjs.map +1 -1
  58. package/dist/esm/worklets/transform.mjs +201 -197
  59. package/dist/esm/worklets/transform.mjs.map +1 -1
  60. package/dist/esm/worklets/types.mjs +0 -2
  61. package/package.json +7 -6
  62. package/src/transformBabel.test.ts +77 -17
  63. package/src/transformBabel.ts +28 -12
  64. package/types/transformBabel.d.ts +12 -0
  65. package/types/transformBabel.d.ts.map +1 -1
  66. package/types/transformSWC.d.ts +1 -4
  67. package/types/transformSWC.d.ts.map +1 -1
  68. package/dist/cjs/transformBabel.test.cjs +0 -652
  69. package/dist/cjs/transformHermesLoops.test.cjs +0 -257
  70. package/dist/cjs/transformSWC.test.cjs +0 -117
  71. package/dist/cjs/transformWorklets.test.cjs +0 -604
  72. package/dist/esm/transformBabel.test.mjs +0 -629
  73. package/dist/esm/transformBabel.test.mjs.map +0 -1
  74. package/dist/esm/transformHermesLoops.test.mjs +0 -234
  75. package/dist/esm/transformHermesLoops.test.mjs.map +0 -1
  76. package/dist/esm/transformSWC.test.mjs +0 -118
  77. package/dist/esm/transformSWC.test.mjs.map +0 -1
  78. package/dist/esm/transformWorklets.test.mjs +0 -581
  79. package/dist/esm/transformWorklets.test.mjs.map +0 -1
  80. package/dist/esm/types.mjs.map +0 -1
  81. package/dist/esm/worklets/types.mjs.map +0 -1
  82. package/types/transformBabel.test.d.ts +0 -2
  83. package/types/transformBabel.test.d.ts.map +0 -1
  84. package/types/transformHermesLoops.test.d.ts +0 -2
  85. package/types/transformHermesLoops.test.d.ts.map +0 -1
  86. package/types/transformSWC.test.d.ts +0 -2
  87. package/types/transformSWC.test.d.ts.map +0 -1
  88. package/types/transformWorklets.test.d.ts +0 -2
  89. package/types/transformWorklets.test.d.ts.map +0 -1
@@ -1,581 +0,0 @@
1
- import fs from "node:fs";
2
- import os from "node:os";
3
- import path from "node:path";
4
- import { afterEach, describe, expect, it } from "vitest";
5
- import { configureVXRNCompilerPlugin } from "./configure.mjs";
6
- import { shouldTransformWorklets, transformWorklets } from "./transformWorklets.mjs";
7
- afterEach(() => {
8
- configureVXRNCompilerPlugin({
9
- enableReanimated: false,
10
- enableNativeWorklets: false
11
- });
12
- });
13
- describe("shouldTransformWorklets", () => {
14
- it("returns false when enableReanimated is false", () => {
15
- configureVXRNCompilerPlugin({
16
- enableReanimated: false,
17
- enableNativeWorklets: true
18
- });
19
- expect(shouldTransformWorklets({
20
- id: "/app/index.tsx",
21
- code: `export const foo = () => { 'worklet'; return 1; }`
22
- })).toBe(false);
23
- });
24
- it("returns false by default when enableNativeWorklets is false even if enableReanimated is true", () => {
25
- configureVXRNCompilerPlugin({
26
- enableReanimated: true,
27
- enableNativeWorklets: false
28
- });
29
- expect(shouldTransformWorklets({
30
- id: "/app/index.tsx",
31
- code: `export const foo = () => { 'worklet'; return 1; }`
32
- })).toBe(false);
33
- });
34
- it("returns true when both enableReanimated and enableNativeWorklets are true and worklet keyword is present", () => {
35
- configureVXRNCompilerPlugin({
36
- enableReanimated: true,
37
- enableNativeWorklets: true
38
- });
39
- expect(shouldTransformWorklets({
40
- id: "/app/index.tsx",
41
- code: `export const foo = () => { 'worklet'; return 1; }`
42
- })).toBe(true);
43
- });
44
- it("returns false for ignored paths such as react-native internals", () => {
45
- configureVXRNCompilerPlugin({
46
- enableReanimated: true,
47
- enableNativeWorklets: true
48
- });
49
- expect(shouldTransformWorklets({
50
- id: "/project/node_modules/react-native/Libraries/StyleSheet/index.js",
51
- code: `export const foo = () => { 'worklet'; return 1; }`
52
- })).toBe(false);
53
- });
54
- });
55
- describe("transformWorklets", () => {
56
- it("transforms functions with worklet directive", async () => {
57
- const code2 = `
58
- export function animate() {
59
- 'worklet'
60
- return 42
61
- }
62
- `;
63
- const result2 = await transformWorklets("/app/animate.ts", code2, false);
64
- expect(result2.code).toContain("__workletHash");
65
- expect(result2.code).toContain("__initData");
66
- expect(result2.code).toContain("__closure");
67
- expect(result2.map).toBeUndefined();
68
- });
69
- it("ignores calls whose callee name collides with Object.prototype", async () => {
70
- const code2 = `
71
- const out = value.constructor(1)
72
- const s = thing.toString()
73
- const h = obj.hasOwnProperty('x')
74
- const v = obj.valueOf()
75
- `;
76
- const result2 = await transformWorklets("/app/collide.ts", code2, false);
77
- expect(result2.code).not.toContain("__workletHash");
78
- });
79
- it("workletizes gesture callbacks only when the receiver is a Gesture chain", async () => {
80
- const gesture = await transformWorklets("/app/gesture.ts", `const g = Gesture.Pan().onStart((e) => { scale.value = e.x }).onChange((e) => { scale.value = e.y })`, false);
81
- expect((gesture.code.match(/__workletHash/g) ?? []).length).toBe(2);
82
- const notAGesture = await transformWorklets("/app/plain.ts", `onChange((d) => d + scrollDiff); emitter.onStart(function () { return count })`, false);
83
- expect(notAGesture.code).not.toContain("__workletHash");
84
- });
85
- it("workletizes withCallback only on a layout animation chain", async () => {
86
- const layout = await transformWorklets("/app/layout.ts", `const a = FadeIn.duration(300).withCallback((finished) => { done.value = finished })`, false);
87
- expect(layout.code).toContain("__workletHash");
88
- const plain = await transformWorklets("/app/plain-callback.ts", `queue.withCallback((finished) => { done.value = finished })`, false);
89
- expect(plain.code).not.toContain("__workletHash");
90
- });
91
- it("transforms closure variables into worklet parameters", async () => {
92
- const code2 = `
93
- const factor = 2
94
- export function multiply(x: number) {
95
- 'worklet'
96
- return x * factor
97
- }
98
- `;
99
- const result2 = await transformWorklets("/app/multiply.ts", code2, false);
100
- expect(result2.code).toContain("__closure");
101
- expect(result2.code).toContain("factor");
102
- });
103
- it("transforms an anonymous function expression worklet", async () => {
104
- const code2 = `
105
- register(function (e) {
106
- 'worklet'
107
- return e.x
108
- })
109
- `;
110
- const result2 = await transformWorklets("/app/handler.ts", code2, false);
111
- expect(result2.code).toContain("__workletHash");
112
- expect(result2.code).toMatch(/code: "function _worklet\(e\)/);
113
- expect(result2.code).toContain("var _worklet = function _worklet(e)");
114
- });
115
- it("does not capture hoisted declarations used before their declaration", async () => {
116
- const code2 = `
117
- export function setupLoop() {
118
- 'worklet'
119
- function nativeFlush(t: number) {
120
- flushQueue(t)
121
- }
122
- globalThis.__native(nativeFlush)
123
- function flushQueue(t: number) {
124
- globalThis.__stamp = t
125
- }
126
- const start = () => later()
127
- const later = () => start
128
- return start
129
- }
130
- `;
131
- const result2 = await transformWorklets("/app/setupLoop.ts", code2, false);
132
- expect(result2.code).toMatch(/setupLoop\.__closure = \{\s*\}/);
133
- const init = result2.code.match(/code: "function setupLoop[^"]*"/);
134
- expect(init, "serialized worklet code").toBeTruthy();
135
- expect(init[0]).not.toContain("this.__closure");
136
- expect(init[0]).toContain("flushQueue");
137
- });
138
- it("honors no-worklet-closure and limit-init-data-hoisting the way the worklets runtime needs", async () => {
139
- const code2 = `
140
- const outerModuleValue = 1
141
- export function installUnpacker() {
142
- 'worklet'
143
- 'no-worklet-closure'
144
- const proxy = globalThis.__proxy
145
- proxy.register(outerModuleValue)
146
- proxy.install(() => {
147
- 'worklet'
148
- 'limit-init-data-hoisting'
149
- return 42
150
- })
151
- }
152
- `;
153
- const result2 = await transformWorklets("/app/installUnpacker.ts", code2, false);
154
- const outerInit = result2.code.match(/code: "function installUnpacker[^"]*"/);
155
- expect(outerInit, "outer worklet serialized code").toBeTruthy();
156
- expect(outerInit[0]).not.toContain("this.__closure");
157
- expect(result2.code).toMatch(/installUnpacker\.__closure = \{\s*\}/);
158
- expect(outerInit[0]).not.toContain("no-worklet-closure");
159
- const innerVar = result2.code.match(/var (_worklet_\d+_init_data) = \{\s*code: "function _worklet/);
160
- expect(innerVar, "inner worklet init data").toBeTruthy();
161
- const emitted = result2.code.slice(result2.code.indexOf("export var installUnpacker"));
162
- expect(emitted).toContain(`var ${innerVar[1]} = {`);
163
- expect(result2.code.slice(0, result2.code.indexOf("export var installUnpacker"))).not.toContain(`
164
- var ${innerVar[1]} = {`);
165
- });
166
- it("autoworkletizes hooks like useAnimatedStyle and withTiming", async () => {
167
- const code2 = `
168
- export function Card() {
169
- const style = useAnimatedStyle(() => {
170
- return {
171
- opacity: withTiming(1),
172
- }
173
- })
174
- return <div style={style} />
175
- }
176
- `;
177
- const result2 = await transformWorklets("/app/Card.tsx", code2, false);
178
- expect(result2.code).toContain("__workletHash");
179
- expect(result2.code).toContain("useAnimatedStyle");
180
- expect(result2.code).toContain("<div style={style} />");
181
- });
182
- it("generates sourcemaps when requested", async () => {
183
- const code2 = `
184
- export const workletFn = () => {
185
- 'worklet'
186
- return 'ok'
187
- }
188
- `;
189
- const result2 = await transformWorklets("/app/worklet.ts", code2, true);
190
- expect(result2.map).toBeDefined();
191
- expect(result2.map?.mappings).toBeDefined();
192
- });
193
- it("rejects on transform errors instead of returning untransformed source", async () => {
194
- await expect(transformWorklets("/app/broken.ts", `export const fn = () => { 'worklet'; return ;;; const = }`, false)).rejects.toThrow();
195
- });
196
- it("stamps the package runtime version into __pluginVersion to avoid runtime mismatch", async () => {
197
- const testRoot = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), "vxrn-worklets-ver-")));
198
- const packageRoot = path.join(testRoot, "node_modules", "react-native-worklets");
199
- fs.mkdirSync(packageRoot, {
200
- recursive: true
201
- });
202
- fs.writeFileSync(path.join(packageRoot, "package.json"), JSON.stringify({
203
- name: "react-native-worklets",
204
- version: "0.10.1"
205
- }));
206
- try {
207
- const result2 = await transformWorklets(path.join(testRoot, "entry.ts"), `export const fn = () => { 'worklet'; return 1; }`, false, {
208
- projectRoot: testRoot
209
- });
210
- expect(result2.code).toContain('__pluginVersion = "0.10.1"');
211
- } finally {
212
- fs.rmSync(testRoot, {
213
- recursive: true,
214
- force: true
215
- });
216
- }
217
- });
218
- it("correctly resolves hoisted react-native-worklets in a monorepo when child has reanimated", async () => {
219
- const rootDir = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), "vxrn-worklets-hoist-")));
220
- const appDir = path.join(rootDir, "apps", "mobile");
221
- const hoistedWorkletsDir = path.join(rootDir, "node_modules", "react-native-worklets");
222
- const localReanimatedDir = path.join(appDir, "node_modules", "react-native-reanimated");
223
- fs.mkdirSync(hoistedWorkletsDir, {
224
- recursive: true
225
- });
226
- fs.writeFileSync(path.join(hoistedWorkletsDir, "package.json"), JSON.stringify({
227
- name: "react-native-worklets",
228
- version: "0.10.1"
229
- }));
230
- fs.mkdirSync(localReanimatedDir, {
231
- recursive: true
232
- });
233
- fs.writeFileSync(path.join(localReanimatedDir, "package.json"), JSON.stringify({
234
- name: "react-native-reanimated",
235
- version: "4.5.1"
236
- }));
237
- fs.writeFileSync(path.join(appDir, "package.json"), JSON.stringify({
238
- name: "mobile"
239
- }));
240
- try {
241
- const result2 = await transformWorklets(path.join(appDir, "entry.ts"), `export function test() { 'worklet'; return 1; }`, false, {
242
- projectRoot: appDir
243
- });
244
- expect(result2.code).toContain('__pluginVersion = "0.10.1"');
245
- } finally {
246
- fs.rmSync(rootDir, {
247
- recursive: true,
248
- force: true
249
- });
250
- }
251
- });
252
- it("throws an actionable error when neither worklets nor reanimated can be resolved", async () => {
253
- const emptyRoot = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), "vxrn-worklets-empty-")));
254
- fs.writeFileSync(path.join(emptyRoot, "package.json"), JSON.stringify({
255
- name: "empty-test"
256
- }));
257
- try {
258
- await expect(transformWorklets(path.join(emptyRoot, "entry.ts"), `export function test() { 'worklet'; return 1; }`, false, {
259
- projectRoot: emptyRoot
260
- })).rejects.toThrow(/Unable to resolve "react-native-worklets" or "react-native-reanimated"/);
261
- } finally {
262
- fs.rmSync(emptyRoot, {
263
- recursive: true,
264
- force: true
265
- });
266
- }
267
- });
268
- it("forwards plugin options such as bundleMode and globals", async () => {
269
- const code2 = `
270
- export function testCustom() {
271
- 'worklet'
272
- return customGlobalValue * 2
273
- }
274
- `;
275
- const result2 = await transformWorklets("/app/custom.ts", code2, false, {
276
- globals: ["customGlobalValue"],
277
- bundleMode: false
278
- });
279
- expect(result2.code).toContain("__workletHash");
280
- expect(result2.code).toContain("__initData");
281
- });
282
- it("satisfies runtime worklet serialization, local execution, and UI-thread reconstruction", async () => {
283
- const code = `
284
- const multiplier = 5
285
- export function scale(val: number) {
286
- 'worklet'
287
- return val * multiplier
288
- }
289
- `;
290
- const result = await transformWorklets("/app/scale.ts", code, false);
291
- const sandbox = {
292
- global: globalThis,
293
- exports: {}
294
- };
295
- const runner = new Function("exports", "global", result.code.replace("export var scale", "exports.scale"));
296
- runner(sandbox.exports, sandbox.global);
297
- const scaleFn = sandbox.exports.scale;
298
- expect(typeof scaleFn).toBe("function");
299
- expect(scaleFn.__workletHash).toBeDefined();
300
- expect(typeof scaleFn.__workletHash).toBe("number");
301
- expect(scaleFn.__pluginVersion).toBe("0.10.1");
302
- expect(scaleFn.__closure).toEqual({
303
- multiplier: 5
304
- });
305
- expect(scaleFn.__initData).toBeDefined();
306
- expect(scaleFn.__initData.code).toContain("__closure");
307
- expect(scaleFn(10)).toBe(50);
308
- const reconstructedUIFn = eval(`(${scaleFn.__initData.code})`);
309
- const uiResult = reconstructedUIFn.call({
310
- __closure: scaleFn.__closure
311
- }, 10);
312
- expect(uiResult).toBe(50);
313
- });
314
- it("autoworkletizes hook callbacks with closure capture and UI-thread execution parity", async () => {
315
- const code = `
316
- import { useAnimatedStyle } from 'react-native-reanimated'
317
- const baseOpacity = 0.8
318
- export function getCardStyle() {
319
- return useAnimatedStyle(() => {
320
- return { opacity: baseOpacity }
321
- })
322
- }
323
- `;
324
- const result = await transformWorklets("/app/CardStyle.ts", code, false);
325
- let capturedCallback = null;
326
- const sandbox = {
327
- global: globalThis,
328
- exports: {},
329
- useAnimatedStyle: cb => {
330
- capturedCallback = cb;
331
- return cb;
332
- }
333
- };
334
- const runner = new Function("exports", "global", "useAnimatedStyle", result.code.replace(/import\s+{[^}]+}\s+from\s+['"][^'"]+['"];?/, "").replace("export function getCardStyle", "exports.getCardStyle = function getCardStyle"));
335
- runner(sandbox.exports, sandbox.global, sandbox.useAnimatedStyle);
336
- sandbox.exports.getCardStyle();
337
- expect(capturedCallback).toBeDefined();
338
- expect(capturedCallback.__workletHash).toBeDefined();
339
- expect(capturedCallback.__closure).toEqual({
340
- baseOpacity: 0.8
341
- });
342
- const reconstructedStyleFn = eval(`(${capturedCallback.__initData.code})`);
343
- const styleResult = reconstructedStyleFn.call({
344
- __closure: capturedCallback.__closure
345
- });
346
- expect(styleResult).toEqual({
347
- opacity: 0.8
348
- });
349
- });
350
- it("compiles UI-thread worklet function to valid Hermes Bytecode (HBC)", async () => {
351
- const code2 = `
352
- const factor = 10
353
- export function calculate(val: number) {
354
- 'worklet'
355
- return val * factor
356
- }
357
- `;
358
- const result2 = await transformWorklets("/app/calculate.ts", code2, false);
359
- const match = result2.code.match(/code:\s*"([^"]+)"/);
360
- expect(match).toBeDefined();
361
- const uiCode = JSON.parse(`"${match[1]}"`);
362
- const {
363
- execFileSync
364
- } = await import("node:child_process");
365
- const hermescDir = process.platform === "darwin" ? "osx-bin" : process.platform === "win32" ? "win64-bin" : "linux64-bin";
366
- const hermescPath = path.resolve(__dirname, `../../../node_modules/hermes-compiler/hermesc/${hermescDir}/hermesc${process.platform === "win32" ? ".exe" : ""}`);
367
- if (fs.existsSync(hermescPath)) {
368
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "hermes-worklet-test-"));
369
- const jsPath = path.join(tempDir, "worklet.js");
370
- const hbcPath = path.join(tempDir, "worklet.hbc");
371
- try {
372
- fs.writeFileSync(jsPath, `(${uiCode})`);
373
- execFileSync(hermescPath, ["-emit-binary", "-out", hbcPath, jsPath]);
374
- expect(fs.existsSync(hbcPath)).toBe(true);
375
- expect(fs.statSync(hbcPath).size).toBeGreaterThan(0);
376
- } finally {
377
- fs.rmSync(tempDir, {
378
- recursive: true,
379
- force: true
380
- });
381
- }
382
- }
383
- });
384
- it("transforms multiple worklets in the same file with independent closures", async () => {
385
- const code2 = `
386
- const a = 10
387
- const b = 20
388
- export function first() {
389
- 'worklet'
390
- return a
391
- }
392
- export function second() {
393
- 'worklet'
394
- return b
395
- }
396
- `;
397
- const result2 = await transformWorklets("/app/multiple.ts", code2, false);
398
- expect(result2.code).toContain("first");
399
- expect(result2.code).toContain("second");
400
- expect(result2.code).toContain("__closure = { a: a }");
401
- expect(result2.code).toContain("__closure = { b: b }");
402
- });
403
- it("transforms concise arrow functions with useDerivedValue", async () => {
404
- const code2 = `
405
- import { useDerivedValue } from 'react-native-reanimated'
406
- const multiplier = 3
407
- export const derived = useDerivedValue(() => multiplier * 10)
408
- `;
409
- const result2 = await transformWorklets("/app/derived.ts", code2, false);
410
- expect(result2.code).toContain("__workletHash");
411
- expect(result2.code).toContain("multiplier");
412
- });
413
- it("transforms scroll handler with object methods", async () => {
414
- const code2 = `
415
- import { useAnimatedScrollHandler } from 'react-native-reanimated'
416
- const offset = 5
417
- export const handler = useAnimatedScrollHandler({
418
- onScroll(event) {
419
- 'worklet'
420
- return event.contentOffset.y + offset
421
- }
422
- })
423
- `;
424
- const result2 = await transformWorklets("/app/handler.ts", code2, false);
425
- expect(result2.code).toContain("onScroll:");
426
- expect(result2.code).toContain("__closure = { offset: offset }");
427
- });
428
- it("correctly handles default and destructuring parameters in closure capture", async () => {
429
- const code = `
430
- const factor = 4
431
- export function compute({ x, y = 1 }: { x: number; y?: number }, z = 0) {
432
- 'worklet'
433
- return (x + y + z) * factor
434
- }
435
- `;
436
- const result = await transformWorklets("/app/destructure.ts", code, false);
437
- expect(result.code).toContain("__closure = { factor: factor }");
438
- const sandbox = {
439
- global: globalThis,
440
- exports: {}
441
- };
442
- const runner = new Function("exports", "global", result.code.replace("export var compute", "exports.compute"));
443
- runner(sandbox.exports, sandbox.global);
444
- const computeFn = sandbox.exports.compute;
445
- expect(computeFn({
446
- x: 2
447
- })).toBe(12);
448
- const reconstructed = eval(`(${computeFn.__initData.code})`);
449
- const uiRes = reconstructed.call({
450
- __closure: computeFn.__closure
451
- }, {
452
- x: 2,
453
- y: 3
454
- }, 5);
455
- expect(uiRes).toBe(40);
456
- });
457
- it("operates with 100% elimination of SWC (zero swc dependencies in transformWorklets)", async () => {
458
- const fs2 = await import("node:fs");
459
- const transformWorkletsSource = fs2.readFileSync(path.resolve(__dirname, "transformWorklets.ts"), "utf-8");
460
- expect(transformWorkletsSource).not.toContain("@swc/core");
461
- expect(transformWorkletsSource).not.toContain("@react-native-swc/worklets-plugin");
462
- const result2 = await transformWorklets("/app/zeroSwc.ts", `export function zeroSwc() { 'worklet'; return 999; }`, false);
463
- expect(result2.code).toContain("__workletHash");
464
- expect(result2.code).toContain("__pluginVersion");
465
- expect(result2.code).toContain("999");
466
- });
467
- it("correctly handles lexical block scope shadowing without losing outer bindings", async () => {
468
- const code = `
469
- const x = 7
470
- export function f() {
471
- 'worklet'
472
- {
473
- const x = 1
474
- }
475
- return x
476
- }
477
- `;
478
- const result = await transformWorklets("/app/scope-shadow.ts", code, false);
479
- expect(result.code).toContain("__closure = { x: x }");
480
- const sandbox = {
481
- global: globalThis,
482
- exports: {}
483
- };
484
- const runner = new Function("exports", "global", result.code.replace("export var f", "exports.f"));
485
- runner(sandbox.exports, sandbox.global);
486
- const f = sandbox.exports.f;
487
- expect(f()).toBe(7);
488
- const reconstructed = eval(`(${f.__initData.code})`);
489
- const uiRes = reconstructed.call({
490
- __closure: f.__closure
491
- });
492
- expect(uiRes).toBe(7);
493
- });
494
- it("transforms nested worklets with bottom-up composition", async () => {
495
- const code2 = `
496
- export function outer() {
497
- 'worklet'
498
- function inner() {
499
- 'worklet'
500
- return 1
501
- }
502
- return inner()
503
- }
504
- `;
505
- const result2 = await transformWorklets("/app/nested.ts", code2, false);
506
- expect(result2.code).toContain("export var outer");
507
- expect(result2.code).toContain("inner.__workletHash");
508
- expect(result2.code).toContain("outer.__workletHash");
509
- const sandbox2 = {
510
- global: globalThis,
511
- exports: {}
512
- };
513
- const runner2 = new Function("exports", "global", result2.code.replace("export var outer", "exports.outer"));
514
- runner2(sandbox2.exports, sandbox2.global);
515
- const outerFn = sandbox2.exports.outer;
516
- expect(outerFn()).toBe(1);
517
- });
518
- it("transforms modules with >50 sibling worklets without truncation", async () => {
519
- const fnCount = 60;
520
- const code2 = Array.from({
521
- length: fnCount
522
- }, (_, i) => `export function f${i}() { 'worklet'; return ${i}; }`).join("\n");
523
- const result2 = await transformWorklets("/app/many.ts", code2, false);
524
- for (let i = 0; i < fnCount; i++) {
525
- expect(result2.code).toContain(`export var f${i} =`);
526
- expect(result2.code).toContain(`f${i}.__workletHash`);
527
- }
528
- const sandbox2 = {
529
- global: globalThis,
530
- exports: {}
531
- };
532
- const runner2 = new Function("exports", "global", result2.code.replace(/export var /g, "exports."));
533
- runner2(sandbox2.exports, sandbox2.global);
534
- expect(sandbox2.exports.f0()).toBe(0);
535
- expect(sandbox2.exports.f50()).toBe(50);
536
- expect(sandbox2.exports.f59()).toBe(59);
537
- });
538
- it("transforms deeply nested worklets (3 levels) bottom-up", async () => {
539
- const code2 = `
540
- export function level1() {
541
- 'worklet';
542
- function level2() {
543
- 'worklet';
544
- function level3() {
545
- 'worklet';
546
- return 42;
547
- }
548
- return level3();
549
- }
550
- return level2();
551
- }
552
- `;
553
- const result2 = await transformWorklets("/app/deep.ts", code2, false);
554
- expect(result2.code).toContain("level3.__workletHash");
555
- expect(result2.code).toContain("level2.__workletHash");
556
- expect(result2.code).toContain("level1.__workletHash");
557
- const sandbox2 = {
558
- global: globalThis,
559
- exports: {}
560
- };
561
- const runner2 = new Function("exports", "global", result2.code.replace("export var level1", "exports.level1"));
562
- runner2(sandbox2.exports, sandbox2.global);
563
- expect(sandbox2.exports.level1()).toBe(42);
564
- });
565
- });
566
- describe("worklet detection gate", () => {
567
- it("accepts files whose only worklets come from gesture callbacks", () => {
568
- configureVXRNCompilerPlugin({
569
- enableReanimated: true,
570
- enableNativeWorklets: true
571
- });
572
- const code2 = `
573
- const tap = Gesture.Tap().onBegin((e) => { setState(e) }).onTouchesMove((e) => {}).onEnd(() => {})
574
- `;
575
- expect(shouldTransformWorklets({
576
- id: "/app/gesture.native.js",
577
- code: code2
578
- })).toBe(true);
579
- });
580
- });
581
- //# sourceMappingURL=transformWorklets.test.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["fs","os","path","afterEach","describe","expect","it","configureVXRNCompilerPlugin","shouldTransformWorklets","transformWorklets","enableReanimated","enableNativeWorklets","id","code","toBe","result","code2","toContain","map","toBeUndefined","not","gesture","match","length","notAGesture","layout","plain","toMatch","init","toBeTruthy","outerInit","innerVar","emitted","slice","result2","indexOf","toBeDefined","mappings","rejects","toThrow","testRoot","realpathSync","mkdtempSync","join","tmpdir","packageRoot","mkdirSync","recursive","writeFileSync","JSON","stringify","name","version","projectRoot","rmSync","force","rootDir","appDir","hoistedWorkletsDir","localReanimatedDir","emptyRoot","globals","bundleMode","sandbox","global","globalThis","exports","runner","Function","replace","scaleFn","scale","__workletHash","__pluginVersion","__closure","toEqual","multiplier","__initData","reconstructedUIFn","eval","uiResult","call","capturedCallback","useAnimatedStyle","cb","getCardStyle","baseOpacity","reconstructedStyleFn","styleResult","opacity","uiCode","parse","execFileSync","hermescDir","process","platform","hermescPath","resolve","__dirname","existsSync","tempDir","jsPath","hbcPath","statSync","size","toBeGreaterThan","computeFn","compute","x","reconstructed","uiRes","y","transformWorkletsSource","readFileSync","f","sandbox2","outerFn","outer","fnCount","Array","from","_","i","f0","f50","f59","level1"],"sources":["../../src/transformWorklets.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformBabel.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformBabel.test.d.ts","sourceRoot":"","sources":["../src/transformBabel.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformHermesLoops.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformHermesLoops.test.d.ts","sourceRoot":"","sources":["../src/transformHermesLoops.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformSWC.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformSWC.test.d.ts","sourceRoot":"","sources":["../src/transformSWC.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformWorklets.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformWorklets.test.d.ts","sourceRoot":"","sources":["../src/transformWorklets.test.ts"],"names":[],"mappings":""}