@vxrn/compiler 1.25.16 → 1.26.0
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/dist/cjs/cache.cjs +4 -2
- package/dist/cjs/configure.cjs +9 -1
- package/dist/cjs/index.cjs +87 -5
- package/dist/cjs/reactNativeCodegen.cjs +140 -0
- package/dist/cjs/reactNativeViewConfig.cjs +489 -0
- package/dist/cjs/transformBabel.cjs +15 -20
- package/dist/cjs/transformBabel.test.cjs +260 -0
- package/dist/cjs/transformHermesAsync.cjs +61 -0
- package/dist/cjs/transformHermesLoops.cjs +319 -0
- package/dist/cjs/transformHermesLoops.test.cjs +257 -0
- package/dist/cjs/transformSWC.cjs +110 -138
- package/dist/cjs/transformSWC.test.cjs +117 -0
- package/dist/cjs/transformWorklets.cjs +123 -0
- package/dist/cjs/transformWorklets.test.cjs +604 -0
- package/dist/cjs/worklets/autoworklet.cjs +265 -0
- package/dist/cjs/worklets/globals.cjs +73 -0
- package/dist/cjs/worklets/hash.cjs +38 -0
- package/dist/cjs/worklets/scope.cjs +370 -0
- package/dist/cjs/worklets/serialize.cjs +101 -0
- package/dist/cjs/worklets/transform.cjs +266 -0
- package/dist/cjs/worklets/types.cjs +18 -0
- package/dist/esm/cache.mjs +5 -3
- package/dist/esm/cache.mjs.map +1 -1
- package/dist/esm/configure.mjs +8 -1
- package/dist/esm/configure.mjs.map +1 -1
- package/dist/esm/index.js +75 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +75 -6
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/reactNativeCodegen.mjs +104 -0
- package/dist/esm/reactNativeCodegen.mjs.map +1 -0
- package/dist/esm/reactNativeViewConfig.mjs +460 -0
- package/dist/esm/reactNativeViewConfig.mjs.map +1 -0
- package/dist/esm/transformBabel.mjs +14 -19
- package/dist/esm/transformBabel.mjs.map +1 -1
- package/dist/esm/transformBabel.test.mjs +261 -1
- package/dist/esm/transformBabel.test.mjs.map +1 -1
- package/dist/esm/transformHermesAsync.mjs +25 -0
- package/dist/esm/transformHermesAsync.mjs.map +1 -0
- package/dist/esm/transformHermesLoops.mjs +283 -0
- package/dist/esm/transformHermesLoops.mjs.map +1 -0
- package/dist/esm/transformHermesLoops.test.mjs +234 -0
- package/dist/esm/transformHermesLoops.test.mjs.map +1 -0
- package/dist/esm/transformSWC.mjs +96 -139
- package/dist/esm/transformSWC.mjs.map +1 -1
- package/dist/esm/transformSWC.test.mjs +118 -0
- package/dist/esm/transformSWC.test.mjs.map +1 -0
- package/dist/esm/transformWorklets.mjs +82 -0
- package/dist/esm/transformWorklets.mjs.map +1 -0
- package/dist/esm/transformWorklets.test.mjs +581 -0
- package/dist/esm/transformWorklets.test.mjs.map +1 -0
- package/dist/esm/worklets/autoworklet.mjs +234 -0
- package/dist/esm/worklets/autoworklet.mjs.map +1 -0
- package/dist/esm/worklets/globals.mjs +46 -0
- package/dist/esm/worklets/globals.mjs.map +1 -0
- package/dist/esm/worklets/hash.mjs +13 -0
- package/dist/esm/worklets/hash.mjs.map +1 -0
- package/dist/esm/worklets/scope.mjs +345 -0
- package/dist/esm/worklets/scope.mjs.map +1 -0
- package/dist/esm/worklets/serialize.mjs +75 -0
- package/dist/esm/worklets/serialize.mjs.map +1 -0
- package/dist/esm/worklets/transform.mjs +229 -0
- package/dist/esm/worklets/transform.mjs.map +1 -0
- package/dist/esm/worklets/types.mjs +2 -0
- package/dist/esm/worklets/types.mjs.map +1 -0
- package/package.json +11 -6
- package/src/cache.ts +10 -3
- package/src/configure.ts +12 -0
- package/src/index.ts +96 -13
- package/src/reactNativeCodegen.ts +181 -0
- package/src/reactNativeViewConfig.ts +593 -0
- package/src/transformBabel.test.ts +268 -1
- package/src/transformBabel.ts +21 -31
- package/src/transformHermesAsync.ts +30 -0
- package/src/transformHermesLoops.test.ts +341 -0
- package/src/transformHermesLoops.ts +435 -0
- package/src/transformSWC.test.ts +132 -0
- package/src/transformSWC.ts +121 -161
- package/src/transformWorklets.test.ts +708 -0
- package/src/transformWorklets.ts +160 -0
- package/src/types.ts +4 -4
- package/src/worklets/autoworklet.ts +391 -0
- package/src/worklets/globals.ts +129 -0
- package/src/worklets/hash.ts +14 -0
- package/src/worklets/scope.ts +401 -0
- package/src/worklets/serialize.ts +114 -0
- package/src/worklets/transform.ts +319 -0
- package/src/worklets/types.ts +26 -0
- package/types/cache.d.ts +1 -0
- package/types/cache.d.ts.map +1 -1
- package/types/configure.d.ts +2 -0
- package/types/configure.d.ts.map +1 -1
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -1
- package/types/reactNativeCodegen.d.ts +5 -0
- package/types/reactNativeCodegen.d.ts.map +1 -0
- package/types/reactNativeViewConfig.d.ts +35 -0
- package/types/reactNativeViewConfig.d.ts.map +1 -0
- package/types/transformBabel.d.ts +3 -3
- package/types/transformBabel.d.ts.map +1 -1
- package/types/transformHermesAsync.d.ts +5 -0
- package/types/transformHermesAsync.d.ts.map +1 -0
- package/types/transformHermesLoops.d.ts +5 -0
- package/types/transformHermesLoops.d.ts.map +1 -0
- package/types/transformHermesLoops.test.d.ts +2 -0
- package/types/transformHermesLoops.test.d.ts.map +1 -0
- package/types/transformSWC.d.ts +13 -3
- package/types/transformSWC.d.ts.map +1 -1
- package/types/transformSWC.test.d.ts +2 -0
- package/types/transformSWC.test.d.ts.map +1 -0
- package/types/transformWorklets.d.ts +23 -0
- package/types/transformWorklets.d.ts.map +1 -0
- package/types/transformWorklets.test.d.ts +2 -0
- package/types/transformWorklets.test.d.ts.map +1 -0
- package/types/types.d.ts +4 -4
- package/types/types.d.ts.map +1 -1
- package/types/worklets/autoworklet.d.ts +14 -0
- package/types/worklets/autoworklet.d.ts.map +1 -0
- package/types/worklets/globals.d.ts +4 -0
- package/types/worklets/globals.d.ts.map +1 -0
- package/types/worklets/hash.d.ts +5 -0
- package/types/worklets/hash.d.ts.map +1 -0
- package/types/worklets/scope.d.ts +7 -0
- package/types/worklets/scope.d.ts.map +1 -0
- package/types/worklets/serialize.d.ts +12 -0
- package/types/worklets/serialize.d.ts.map +1 -0
- package/types/worklets/transform.d.ts +10 -0
- package/types/worklets/transform.d.ts.map +1 -0
- package/types/worklets/types.d.ts +21 -0
- package/types/worklets/types.d.ts.map +1 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { runInNewContext } from "node:vm";
|
|
3
|
+
import { rolldown } from "rolldown";
|
|
4
|
+
import { transformOxc, transformSWC, transformSWCStripJSX } from "./transformSWC.mjs";
|
|
5
|
+
describe("transformSWC / transformOxc with oxc-transform for Hermes lowering", () => {
|
|
6
|
+
it("preserves unbraced for-await bodies and early returns", async () => {
|
|
7
|
+
const result = await transformSWC("AsyncIterable.js", `
|
|
8
|
+
async function collect(it) {
|
|
9
|
+
const values = []
|
|
10
|
+
for await (const value of it) values.push(value)
|
|
11
|
+
return values
|
|
12
|
+
}
|
|
13
|
+
async function first(it) {
|
|
14
|
+
for await (const value of it) return value
|
|
15
|
+
return null
|
|
16
|
+
}
|
|
17
|
+
globalThis.result = Promise.all([collect([11, 22]), first([11, 22])])
|
|
18
|
+
`, {
|
|
19
|
+
environment: "ios",
|
|
20
|
+
mode: "build",
|
|
21
|
+
production: true
|
|
22
|
+
});
|
|
23
|
+
expect(result).toBeDefined();
|
|
24
|
+
const bundle = await rolldown({
|
|
25
|
+
input: "virtual:async-iterable.js",
|
|
26
|
+
plugins: [{
|
|
27
|
+
name: "async-iterable-fixture",
|
|
28
|
+
resolveId(id) {
|
|
29
|
+
if (id === "virtual:async-iterable.js") return id;
|
|
30
|
+
},
|
|
31
|
+
load(id) {
|
|
32
|
+
if (id === "virtual:async-iterable.js") return result.code;
|
|
33
|
+
}
|
|
34
|
+
}]
|
|
35
|
+
});
|
|
36
|
+
try {
|
|
37
|
+
const output = await bundle.generate({
|
|
38
|
+
format: "iife"
|
|
39
|
+
});
|
|
40
|
+
const context = {};
|
|
41
|
+
runInNewContext(output.output[0].code, context);
|
|
42
|
+
await expect(context.result).resolves.toEqual([[11, 22], 11]);
|
|
43
|
+
} finally {
|
|
44
|
+
await bundle.close();
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
it("lowers class fields, private fields, and static blocks with Hermes target and assumptions", async () => {
|
|
48
|
+
const input = `
|
|
49
|
+
class Sample {
|
|
50
|
+
#secret = 42
|
|
51
|
+
publicField = 100
|
|
52
|
+
static {
|
|
53
|
+
Sample.initialized = true
|
|
54
|
+
}
|
|
55
|
+
getSecret() {
|
|
56
|
+
return this.#secret
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
60
|
+
const res = await transformSWC("Sample.ts", input, {
|
|
61
|
+
environment: "ios",
|
|
62
|
+
mode: "build"
|
|
63
|
+
});
|
|
64
|
+
expect(res).toBeDefined();
|
|
65
|
+
expect(res.code).not.toContain("#secret");
|
|
66
|
+
expect(res.code).not.toMatch(/^\s*publicField\s*=/m);
|
|
67
|
+
expect(res.code).not.toContain("static {");
|
|
68
|
+
expect(res.code).toContain("this.publicField = 100");
|
|
69
|
+
});
|
|
70
|
+
it.each(["MyComponent.tsx", "MyComponent.js", "MyComponent.mjs", "MyComponent.cjs"])("lowers JSX in %s to react automatic runtime calls", async filename => {
|
|
71
|
+
const input = `
|
|
72
|
+
export function MyComponent() {
|
|
73
|
+
return <div className="test"><span>Hello</span></div>
|
|
74
|
+
}
|
|
75
|
+
`;
|
|
76
|
+
const res = await transformSWC(filename, input, {
|
|
77
|
+
environment: "client",
|
|
78
|
+
mode: "build"
|
|
79
|
+
});
|
|
80
|
+
expect(res).toBeDefined();
|
|
81
|
+
expect(res.code).not.toContain("<div");
|
|
82
|
+
expect(res.code).not.toContain("<span>");
|
|
83
|
+
expect(res.code).toContain("_jsx");
|
|
84
|
+
});
|
|
85
|
+
it("respects sourcemaps option", async () => {
|
|
86
|
+
const input = `
|
|
87
|
+
class Sample {
|
|
88
|
+
val = 1
|
|
89
|
+
}
|
|
90
|
+
`;
|
|
91
|
+
const resWithoutMap = await transformSWC("Sample.ts", input, {
|
|
92
|
+
environment: "ios",
|
|
93
|
+
mode: "build"
|
|
94
|
+
}, {
|
|
95
|
+
sourceMaps: false
|
|
96
|
+
});
|
|
97
|
+
expect(resWithoutMap?.map).toBeUndefined();
|
|
98
|
+
const resWithMap = await transformSWC("Sample.ts", input, {
|
|
99
|
+
environment: "ios",
|
|
100
|
+
mode: "build"
|
|
101
|
+
}, {
|
|
102
|
+
sourceMaps: true
|
|
103
|
+
});
|
|
104
|
+
expect(resWithMap?.map).toBeDefined();
|
|
105
|
+
expect(resWithMap?.map.mappings).toBeDefined();
|
|
106
|
+
});
|
|
107
|
+
it("provides transformOxc alias", () => {
|
|
108
|
+
expect(transformOxc).toBe(transformSWC);
|
|
109
|
+
});
|
|
110
|
+
it("strips JSX using transformSWCStripJSX", async () => {
|
|
111
|
+
const input = `export const el = <div>Hello</div>`;
|
|
112
|
+
const res = await transformSWCStripJSX("el.tsx", input);
|
|
113
|
+
expect(res).toBeDefined();
|
|
114
|
+
expect(res.code).not.toContain("<div>");
|
|
115
|
+
expect(res.code).toContain("_jsx");
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=transformSWC.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","runInNewContext","rolldown","transformOxc","transformSWC","transformSWCStripJSX","result","environment","mode","production","toBeDefined","bundle","input","plugins","name","resolveId","id","load","code","output","generate","format","context","resolves","toEqual","close","res","not","toContain","toMatch","each","filename","resWithoutMap","sourceMaps","map","toBeUndefined","resWithMap","mappings","toBe"],"sources":["../../src/transformSWC.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,eAAA,QAAuB;AAChC,SAASC,QAAA,QAAgB;AACzB,SAASC,YAAA,EAAcC,YAAA,EAAcC,oBAAA,QAA4B;AAEjEP,QAAA,CAAS,sEAAsE,MAAM;EACnFE,EAAA,CAAG,yDAAyD,YAAY;IACtE,MAAMM,MAAA,GAAS,MAAMF,YAAA,CACnB,oBACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAYA;MAAEG,WAAA,EAAa;MAAOC,IAAA,EAAM;MAASC,UAAA,EAAY;IAAK,CACxD;IACAV,MAAA,CAAOO,MAAM,EAAEI,WAAA,CAAY;IAC3B,MAAMC,MAAA,GAAS,MAAMT,QAAA,CAAS;MAC5BU,KAAA,EAAO;MACPC,OAAA,EAAS,CACP;QACEC,IAAA,EAAM;QACNC,UAAUC,EAAA,EAAI;UACZ,IAAIA,EAAA,KAAO,6BAA6B,OAAOA,EAAA;QACjD;QACAC,KAAKD,EAAA,EAAI;UACP,IAAIA,EAAA,KAAO,6BAA6B,OAAOV,MAAA,CAAQY,IAAA;QACzD;MACF;IAEJ,CAAC;IACD,IAAI;MACF,MAAMC,MAAA,GAAS,MAAMR,MAAA,CAAOS,QAAA,CAAS;QAAEC,MAAA,EAAQ;MAAO,CAAC;MACvD,MAAMC,OAAA,GAAyC,CAAC;MAChDrB,eAAA,CAAgBkB,MAAA,CAAOA,MAAA,CAAO,CAAC,EAAED,IAAA,EAAMI,OAAO;MAC9C,MAAMvB,MAAA,CAAOuB,OAAA,CAAQhB,MAAM,EAAEiB,QAAA,CAASC,OAAA,CAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAC9D,UAAE;MACA,MAAMb,MAAA,CAAOc,KAAA,CAAM;IACrB;EACF,CAAC;EAEDzB,EAAA,CAAG,6FAA6F,YAAY;IAC1G,MAAMY,KAAA,GAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAYd,MAAMc,GAAA,GAAM,MAAMtB,YAAA,CAAa,aAAaQ,KAAA,EAAO;MACjDL,WAAA,EAAa;MACbC,IAAA,EAAM;IACR,CAAC;IAEDT,MAAA,CAAO2B,GAAG,EAAEhB,WAAA,CAAY;IACxBX,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAES,GAAA,CAAIC,SAAA,CAAU,SAAS;IACzC7B,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAES,GAAA,CAAIE,OAAA,CAAQ,sBAAsB;IACpD9B,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAES,GAAA,CAAIC,SAAA,CAAU,UAAU;IAC1C7B,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAEU,SAAA,CAAU,wBAAwB;EACtD,CAAC;EAED5B,EAAA,CAAG8B,IAAA,CAAK,CAAC,mBAAmB,kBAAkB,mBAAmB,iBAAiB,CAAC,EAAE,qDAAqD,MAAOC,QAAA,IAAa;IAC5J,MAAMnB,KAAA,GAAQ;AAAA;AAAA;AAAA;AAAA;IAKd,MAAMc,GAAA,GAAM,MAAMtB,YAAA,CAAa2B,QAAA,EAAUnB,KAAA,EAAO;MAC9CL,WAAA,EAAa;MACbC,IAAA,EAAM;IACR,CAAC;IAEDT,MAAA,CAAO2B,GAAG,EAAEhB,WAAA,CAAY;IACxBX,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAES,GAAA,CAAIC,SAAA,CAAU,MAAM;IACtC7B,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAES,GAAA,CAAIC,SAAA,CAAU,QAAQ;IACxC7B,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAEU,SAAA,CAAU,MAAM;EACpC,CAAC;EAED5B,EAAA,CAAG,8BAA8B,YAAY;IAC3C,MAAMY,KAAA,GAAQ;AAAA;AAAA;AAAA;AAAA;IAKd,MAAMoB,aAAA,GAAgB,MAAM5B,YAAA,CAC1B,aACAQ,KAAA,EACA;MACEL,WAAA,EAAa;MACbC,IAAA,EAAM;IACR,GACA;MAAEyB,UAAA,EAAY;IAAM,CACtB;IACAlC,MAAA,CAAOiC,aAAA,EAAeE,GAAG,EAAEC,aAAA,CAAc;IAEzC,MAAMC,UAAA,GAAa,MAAMhC,YAAA,CACvB,aACAQ,KAAA,EACA;MACEL,WAAA,EAAa;MACbC,IAAA,EAAM;IACR,GACA;MAAEyB,UAAA,EAAY;IAAK,CACrB;IACAlC,MAAA,CAAOqC,UAAA,EAAYF,GAAG,EAAExB,WAAA,CAAY;IACpCX,MAAA,CAAOqC,UAAA,EAAYF,GAAA,CAAIG,QAAQ,EAAE3B,WAAA,CAAY;EAC/C,CAAC;EAEDV,EAAA,CAAG,+BAA+B,MAAM;IACtCD,MAAA,CAAOI,YAAY,EAAEmC,IAAA,CAAKlC,YAAY;EACxC,CAAC;EAEDJ,EAAA,CAAG,yCAAyC,YAAY;IACtD,MAAMY,KAAA,GAAQ;IACd,MAAMc,GAAA,GAAM,MAAMrB,oBAAA,CAAqB,UAAUO,KAAK;IACtDb,MAAA,CAAO2B,GAAG,EAAEhB,WAAA,CAAY;IACxBX,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAES,GAAA,CAAIC,SAAA,CAAU,OAAO;IACvC7B,MAAA,CAAO2B,GAAA,CAAKR,IAAI,EAAEU,SAAA,CAAU,MAAM;EACpC,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { configuration, isNativeWorkletsEnabled } from "./configure.mjs";
|
|
5
|
+
import { AUTOWORKLET_FUNCTION_ARGS, GESTURE_BUILDER_METHODS } from "./worklets/autoworklet.mjs";
|
|
6
|
+
import { executeWorkletTransform } from "./worklets/transform.mjs";
|
|
7
|
+
import { prepareWorkletsForReactCompiler } from "./worklets/transform.mjs";
|
|
8
|
+
const REANIMATED_AUTOWORKLETIZATION_KEYWORDS = ["worklet", "useAnimatedGestureHandler", "useAnimatedScrollHandler", "useFrameCallback", "useAnimatedStyle", "useAnimatedProps", "createAnimatedPropAdapter", "useDerivedValue", "useAnimatedReaction", "useWorkletCallback", "withTiming", "withSpring", "withDecay", "withRepeat", "runOnUI", "executeOnUIRuntimeSync"];
|
|
9
|
+
const REANIMATED_REGEX = new RegExp([... /* @__PURE__ */new Set([...REANIMATED_AUTOWORKLETIZATION_KEYWORDS, ...Object.keys(AUTOWORKLET_FUNCTION_ARGS),
|
|
10
|
+
// gesture callbacks are only workletized on a `Gesture.<Kind>()` chain,
|
|
11
|
+
// but this file gate has to be permissive or a file whose only worklets
|
|
12
|
+
// are gesture callbacks never reaches the transform at all.
|
|
13
|
+
...GESTURE_BUILDER_METHODS, "withCallback"])].map(name => `\\b${name}\\b`).join("|"));
|
|
14
|
+
const REANIMATED_IGNORED_PATHS = ["react-native-prebuilt", "node_modules/.vxrn/react-native", "node_modules/react/", "node_modules/react-dom/", "node_modules/react-native/",
|
|
15
|
+
// react-native's own scoped packages are flow, and the worklets transform
|
|
16
|
+
// runs before flow stripping in the vite pipeline. they never hold app
|
|
17
|
+
// worklets, exactly like node_modules/react-native/ above.
|
|
18
|
+
"node_modules/@react-native/", "node_modules/react-native-web/"];
|
|
19
|
+
const REANIMATED_IGNORED_PATHS_REGEX = new RegExp(REANIMATED_IGNORED_PATHS.join("|"));
|
|
20
|
+
function shouldTransformWorklets({
|
|
21
|
+
id,
|
|
22
|
+
code
|
|
23
|
+
}) {
|
|
24
|
+
if (!isNativeWorkletsEnabled() || !configuration.enableReanimated) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const normalizedId = id.replace(/\\/g, "/");
|
|
28
|
+
if (REANIMATED_IGNORED_PATHS_REGEX.test(normalizedId)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return REANIMATED_REGEX.test(code);
|
|
32
|
+
}
|
|
33
|
+
function getWorkletsVersion(projectRoot, filename) {
|
|
34
|
+
if (projectRoot) {
|
|
35
|
+
try {
|
|
36
|
+
const req = createRequire(path.resolve(projectRoot, "package.json"));
|
|
37
|
+
try {
|
|
38
|
+
const ver = req("react-native-worklets/package.json")?.version;
|
|
39
|
+
if (ver) return ver;
|
|
40
|
+
} catch {}
|
|
41
|
+
try {
|
|
42
|
+
const ver = req("react-native-reanimated/package.json")?.version;
|
|
43
|
+
if (ver) return ver;
|
|
44
|
+
} catch {}
|
|
45
|
+
} catch {}
|
|
46
|
+
throw new Error(`[@vxrn/compiler] Unable to resolve "react-native-worklets" or "react-native-reanimated" version from project root "${projectRoot}". Please ensure react-native-worklets is installed in your project.`);
|
|
47
|
+
}
|
|
48
|
+
if (filename && !filename.startsWith("\0") && fs.existsSync(filename)) {
|
|
49
|
+
try {
|
|
50
|
+
const req = createRequire(filename);
|
|
51
|
+
try {
|
|
52
|
+
const ver = req("react-native-worklets/package.json")?.version;
|
|
53
|
+
if (ver) return ver;
|
|
54
|
+
} catch {}
|
|
55
|
+
try {
|
|
56
|
+
const ver = req("react-native-reanimated/package.json")?.version;
|
|
57
|
+
if (ver) return ver;
|
|
58
|
+
} catch {}
|
|
59
|
+
} catch {}
|
|
60
|
+
}
|
|
61
|
+
const fallbacks = [() => createRequire(path.resolve(process.cwd(), "package.json")), () => createRequire(import.meta.url)];
|
|
62
|
+
for (const getReq of fallbacks) {
|
|
63
|
+
try {
|
|
64
|
+
const req = getReq();
|
|
65
|
+
try {
|
|
66
|
+
const ver = req("react-native-worklets/package.json")?.version;
|
|
67
|
+
if (ver) return ver;
|
|
68
|
+
} catch {}
|
|
69
|
+
try {
|
|
70
|
+
const ver = req("react-native-reanimated/package.json")?.version;
|
|
71
|
+
if (ver) return ver;
|
|
72
|
+
} catch {}
|
|
73
|
+
} catch {}
|
|
74
|
+
}
|
|
75
|
+
const target = filename || process.cwd();
|
|
76
|
+
throw new Error(`[@vxrn/compiler] Unable to resolve "react-native-worklets" or "react-native-reanimated" version from "${target}". Please ensure react-native-worklets is installed in your project.`);
|
|
77
|
+
}
|
|
78
|
+
async function transformWorklets(id, code, sourceMaps = false, options) {
|
|
79
|
+
return executeWorkletTransform(id, code, sourceMaps, options, getWorkletsVersion);
|
|
80
|
+
}
|
|
81
|
+
export { REANIMATED_AUTOWORKLETIZATION_KEYWORDS, getWorkletsVersion, prepareWorkletsForReactCompiler, shouldTransformWorklets, transformWorklets };
|
|
82
|
+
//# sourceMappingURL=transformWorklets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fs","createRequire","path","configuration","isNativeWorkletsEnabled","AUTOWORKLET_FUNCTION_ARGS","GESTURE_BUILDER_METHODS","executeWorkletTransform","prepareWorkletsForReactCompiler","REANIMATED_AUTOWORKLETIZATION_KEYWORDS","REANIMATED_REGEX","RegExp","Set","Object","keys","map","name","join","REANIMATED_IGNORED_PATHS","REANIMATED_IGNORED_PATHS_REGEX","shouldTransformWorklets","id","code","enableReanimated","normalizedId","replace","test","getWorkletsVersion","projectRoot","filename","req","resolve","ver","version","Error","startsWith","existsSync","fallbacks","process","cwd","import","meta","url","getReq","target","transformWorklets","sourceMaps","options"],"sources":["../../src/transformWorklets.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|