@rn-org/react-native-thread 0.7.1 → 0.8.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/README.md +69 -22
- package/ReactNativeThread.podspec +6 -0
- package/android/build.gradle +15 -2
- package/android/src/main/cpp/CMakeLists.txt +24 -0
- package/android/src/main/cpp/HermesThreadEngine.cpp +388 -0
- package/android/src/main/cpp/HermesThreadEngine.h +55 -0
- package/android/src/main/java/com/rnorg/reactnativethread/HermesThreadEngine.kt +35 -0
- package/android/src/main/java/com/rnorg/reactnativethread/ReactNativeThreadModule.kt +30 -91
- package/ios/HermesThreadEngine.cpp +263 -0
- package/ios/HermesThreadEngine.h +49 -0
- package/ios/ReactNativeThread.mm +24 -49
- package/lib/module/babel-plugin.js +100 -21
- package/lib/module/babel-plugin.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/package.json +1 -1
- package/src/babel-plugin.js +124 -29
- package/src/index.tsx +1 -1
|
@@ -187,12 +187,24 @@ module.exports = function reactNativeThreadPlugin({
|
|
|
187
187
|
continue;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
// const/let/var x = <arrow / function expression>
|
|
191
|
-
if (t.isVariableDeclarator(bNode)
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
190
|
+
// const/let/var x = <arrow / function expression / already transformed>
|
|
191
|
+
if (t.isVariableDeclarator(bNode)) {
|
|
192
|
+
if (bNode.init && (t.isFunctionExpression(bNode.init) || t.isArrowFunctionExpression(bNode.init))) {
|
|
193
|
+
// Recursively capture the inner function's free vars first
|
|
194
|
+
capture(bNode.init);
|
|
195
|
+
const initSrc = state.file.code.slice(bNode.init.start, bNode.init.end);
|
|
196
|
+
captures.push('var ' + name + ' = ' + transpileForThread(initSrc, state) + ';');
|
|
197
|
+
} else if (bNode.id && bNode.start != null && bNode.end != null) {
|
|
198
|
+
// Fallback for already-transformed init
|
|
199
|
+
const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
|
|
200
|
+
const eqIdx = declaratorSrc.indexOf('=');
|
|
201
|
+
if (eqIdx !== -1) {
|
|
202
|
+
const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
|
|
203
|
+
if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
|
|
204
|
+
captures.push('var ' + name + ' = ' + transpileForThread(rawInit, state) + ';');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
196
208
|
continue;
|
|
197
209
|
}
|
|
198
210
|
|
|
@@ -212,30 +224,69 @@ module.exports = function reactNativeThreadPlugin({
|
|
|
212
224
|
// ── Core transform helpers ─────────────────────────────────────
|
|
213
225
|
|
|
214
226
|
/**
|
|
215
|
-
* Transpile extracted source for the thread engine.
|
|
216
|
-
*
|
|
227
|
+
* Transpile extracted source for the thread engine. Strips TypeScript
|
|
228
|
+
* when the host file is TS and transforms async/await to generator-based
|
|
229
|
+
* code because Hermes' eval-mode compiler does not support async syntax.
|
|
217
230
|
*/
|
|
218
231
|
function transpileForThread(code, state) {
|
|
219
232
|
try {
|
|
220
233
|
const babelCore = require('@babel/core');
|
|
221
234
|
const fn = state.filename || state.file.opts && state.file.opts.filename || '';
|
|
222
235
|
const isTS = /\.tsx?$/.test(fn);
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
236
|
+
const hasAsync = /\basync\b/.test(code);
|
|
237
|
+
if (!isTS && !hasAsync) {
|
|
238
|
+
return code.replace(/;\s*$/, '');
|
|
239
|
+
}
|
|
240
|
+
const plugins = [];
|
|
241
|
+
if (isTS) {
|
|
242
|
+
plugins.push(['@babel/plugin-transform-typescript', {
|
|
243
|
+
isTSX: true
|
|
244
|
+
}]);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// Hermes' eval-mode compiler does not support async/await syntax.
|
|
248
|
+
// Transform to generator-based code (generators ARE supported).
|
|
249
|
+
let asyncPluginLoaded = false;
|
|
250
|
+
if (hasAsync) {
|
|
251
|
+
try {
|
|
252
|
+
require.resolve('@babel/plugin-transform-async-to-generator');
|
|
253
|
+
plugins.push('@babel/plugin-transform-async-to-generator');
|
|
254
|
+
asyncPluginLoaded = true;
|
|
255
|
+
} catch {
|
|
256
|
+
// plugin unavailable — async code will be sent as-is
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (plugins.length === 0) {
|
|
260
|
+
return code.replace(/;\s*$/, '');
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// When the async transform is active, wrap the expression in a
|
|
264
|
+
// variable assignment so Babel can place the _asyncToGenerator
|
|
265
|
+
// helper as a sibling top-level statement. After the transform
|
|
266
|
+
// we split helpers from expression and wrap in a self-contained
|
|
267
|
+
// IIFE so the result is a single expression.
|
|
268
|
+
const MARKER = 'var __rnthread__ = ';
|
|
269
|
+
const inputCode = asyncPluginLoaded ? MARKER + '(' + code + ')' : code;
|
|
270
|
+
const result = babelCore.transformSync(inputCode, {
|
|
233
271
|
plugins,
|
|
234
272
|
configFile: false,
|
|
235
273
|
babelrc: false,
|
|
236
274
|
filename: isTS ? 'thread.tsx' : 'thread.js'
|
|
237
275
|
});
|
|
238
|
-
|
|
276
|
+
let output = (result && result.code || inputCode).replace(/;\s*$/, '');
|
|
277
|
+
if (asyncPluginLoaded) {
|
|
278
|
+
const idx = output.lastIndexOf(MARKER);
|
|
279
|
+
if (idx >= 0 && output.includes('_asyncToGenerator')) {
|
|
280
|
+
// Helpers were injected before the marker — wrap in IIFE.
|
|
281
|
+
const helpers = output.substring(0, idx);
|
|
282
|
+
const expr = output.substring(idx + MARKER.length).replace(/;\s*$/, '');
|
|
283
|
+
output = '(function(){' + helpers + 'return ' + expr + '})()';
|
|
284
|
+
} else if (idx >= 0) {
|
|
285
|
+
// async transform was a no-op (regex false-positive)
|
|
286
|
+
output = output.substring(idx + MARKER.length);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return output.replace(/;\s*$/, '');
|
|
239
290
|
} catch {
|
|
240
291
|
return code;
|
|
241
292
|
}
|
|
@@ -268,10 +319,38 @@ module.exports = function reactNativeThreadPlugin({
|
|
|
268
319
|
if (t.isFunctionDeclaration(bNode)) {
|
|
269
320
|
fnNode = bNode;
|
|
270
321
|
fnSource = state.file.code.slice(bNode.start, bNode.end);
|
|
271
|
-
} else if (t.isVariableDeclarator(bNode)
|
|
272
|
-
if (t.isFunctionExpression(bNode.init) || t.isArrowFunctionExpression(bNode.init)) {
|
|
322
|
+
} else if (t.isVariableDeclarator(bNode)) {
|
|
323
|
+
if (bNode.init && (t.isFunctionExpression(bNode.init) || t.isArrowFunctionExpression(bNode.init))) {
|
|
324
|
+
// Normal case: init hasn't been transformed by another plugin yet
|
|
273
325
|
fnNode = bNode.init;
|
|
274
326
|
fnSource = state.file.code.slice(bNode.init.start, bNode.init.end);
|
|
327
|
+
} else if (bNode.id && bNode.start != null && bNode.end != null) {
|
|
328
|
+
// Fallback: another plugin (e.g. async-to-generator) already replaced
|
|
329
|
+
// bNode.init. Use the original source text by slicing after the `=`.
|
|
330
|
+
// bNode covers "isPrime = async (num) => {...}" (no `const`/`let`).
|
|
331
|
+
const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
|
|
332
|
+
const eqIdx = declaratorSrc.indexOf('=');
|
|
333
|
+
if (eqIdx !== -1) {
|
|
334
|
+
const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
|
|
335
|
+
if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
|
|
336
|
+
fnSource = rawInit;
|
|
337
|
+
// Parse rawInit to get a proper fnNode for getCaptureDecls
|
|
338
|
+
try {
|
|
339
|
+
const parsed = parser.parse(rawInit, {
|
|
340
|
+
sourceType: 'module',
|
|
341
|
+
plugins: ['typescript', 'jsx']
|
|
342
|
+
});
|
|
343
|
+
const stmt = parsed.program.body[0];
|
|
344
|
+
if (stmt && stmt.type === 'ExpressionStatement') {
|
|
345
|
+
fnNode = stmt.expression;
|
|
346
|
+
} else {
|
|
347
|
+
fnNode = bNode.init; // may be transformed, captures skipped
|
|
348
|
+
}
|
|
349
|
+
} catch {
|
|
350
|
+
fnNode = bNode.init;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
275
354
|
}
|
|
276
355
|
} else if (t.isImportSpecifier(bNode) || t.isImportDefaultSpecifier(bNode)) {
|
|
277
356
|
// Cross-module import: resolve the source file and extract the function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nodePath","require","fs","TOP_LEVEL_API","Set","METHOD_API","SKIP_KEYS","module","exports","reactNativeThreadPlugin","types","t","babel","parser","RESOLVE_EXTS","resolveImportedFnSource","importSource","exportName","state","currentFile","filename","file","opts","startsWith","dir","dirname","resolvedFile","ext","candidate","resolve","existsSync","statSync","isFile","source","readFileSync","ast","parse","sourceType","plugins","stmt","program","body","isExportNamedDeclaration","declaration","isFunctionDeclaration","id","name","raw","slice","start","end","transpileForThread","isVariableDeclaration","decl","declarations","isVariableDeclarator","isIdentifier","init","isFunctionExpression","isArrowFunctionExpression","collectReferencedIds","node","ids","walk","n","skipId","Array","isArray","forEach","el","type","add","isMemberExpression","object","computed","property","isObjectProperty","key","value","Object","keys","has","collectLocalNames","fnNode","names","params","p","isAssignmentPattern","left","isRestElement","argument","getCaptureDecls","scope","captures","seen","capture","targetFnNode","referenced","locals","binding","getBinding","bNode","path","isLiteral","initSrc","code","push","fnSrc","babelCore","fn","isTS","test","isTSX","result","transformSync","presets","targets","ie","modules","configFile","babelrc","replace","maybeTransformArg","callPath","argNode","index","originalCode","fnSource","iife","arguments","stringLiteral","extractFnSource","isImported","isImportSpecifier","isImportDefaultSpecifier","importDecl","parentPath","imported","length","join","tagFnValue","objectExpression","objectProperty","identifier","maybeTransformParams","paramsNode","isObjectExpression","prop","properties","shorthand","isArrayExpression","maybeTransformArrayParams","arrNode","i","elements","visitor","CallExpression","callee","args"],"sourceRoot":"../../src","sources":["babel-plugin.js"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["nodePath","require","fs","TOP_LEVEL_API","Set","METHOD_API","SKIP_KEYS","module","exports","reactNativeThreadPlugin","types","t","babel","parser","RESOLVE_EXTS","resolveImportedFnSource","importSource","exportName","state","currentFile","filename","file","opts","startsWith","dir","dirname","resolvedFile","ext","candidate","resolve","existsSync","statSync","isFile","source","readFileSync","ast","parse","sourceType","plugins","stmt","program","body","isExportNamedDeclaration","declaration","isFunctionDeclaration","id","name","raw","slice","start","end","transpileForThread","isVariableDeclaration","decl","declarations","isVariableDeclarator","isIdentifier","init","isFunctionExpression","isArrowFunctionExpression","collectReferencedIds","node","ids","walk","n","skipId","Array","isArray","forEach","el","type","add","isMemberExpression","object","computed","property","isObjectProperty","key","value","Object","keys","has","collectLocalNames","fnNode","names","params","p","isAssignmentPattern","left","isRestElement","argument","getCaptureDecls","scope","captures","seen","capture","targetFnNode","referenced","locals","binding","getBinding","bNode","path","isLiteral","initSrc","code","push","declaratorSrc","eqIdx","indexOf","rawInit","trim","test","fnSrc","babelCore","fn","isTS","hasAsync","replace","isTSX","asyncPluginLoaded","length","MARKER","inputCode","result","transformSync","configFile","babelrc","output","idx","lastIndexOf","includes","helpers","substring","expr","maybeTransformArg","callPath","argNode","index","originalCode","fnSource","iife","arguments","stringLiteral","extractFnSource","isImported","parsed","expression","isImportSpecifier","isImportDefaultSpecifier","importDecl","parentPath","imported","join","tagFnValue","objectExpression","objectProperty","identifier","maybeTransformParams","paramsNode","isObjectExpression","prop","properties","shorthand","isArrayExpression","maybeTransformArrayParams","arrNode","i","elements","visitor","CallExpression","callee","args"],"sourceRoot":"../../src","sources":["babel-plugin.js"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -42,7 +42,7 @@ function _serializeValue(value) {
|
|
|
42
42
|
if (typeof value === 'object') {
|
|
43
43
|
const rec = value;
|
|
44
44
|
if (typeof rec.__rnThreadFn === 'string') {
|
|
45
|
-
return rec.__rnThreadFn;
|
|
45
|
+
return '(' + rec.__rnThreadFn + ')';
|
|
46
46
|
}
|
|
47
47
|
const entries = Object.entries(rec).map(([k, v]) => `${JSON.stringify(k)}:${_serializeValue(v)}`).join(',');
|
|
48
48
|
return '{' + entries + '}';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","ReactNativeThread","_emitter","RN_THREAD_MESSAGE_EVENT","_registry","Map","_findByName","name","info","values","undefined","_register","id","set","_unregister","delete","_isBytecode","src","includes","test","_serializeValue","value","toString","__DEV__","console","warn","JSON","stringify","String","Array","isArray","map","join","rec","__rnThreadFn","entries","Object","k","v","_wrapWithErrorHandler","code","toCode","task","params","paramsCode","argsStr","SHARED_THREAD_NAME","_sharedThreadId","getSharedThread","createThread","runOnJS","runOnThread","runOnNewJS","existing","createThreadHandle","resolvedName","getThreads","from","destroyThread","idOrName","targetId","has","onMessage","handler","sub","addListener","event","parsed","data","parse","threadId","remove","Promise","resolve","_isThreadError","__rnThreadError","run","reject","unsub","err","Error","message","stack","onError","destroy"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,cAAc;AACjD,OAAOC,iBAAiB,MAAM,8BAA2B;AAwBzD,MAAMC,QAAQ,GAAG,IAAIF,kBAAkB,CAACC,iBAAiB,CAAC;AAC1D,MAAME,uBAAuB,GAAG,iBAAiB;AAEjD,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAqB,CAAC;AAE/C,SAASC,WAAWA,CAACC,IAAY,EAA0B;EACzD,KAAK,MAAMC,IAAI,IAAIJ,SAAS,CAACK,MAAM,CAAC,CAAC,EAAE;IACrC,IAAID,IAAI,CAACD,IAAI,KAAKA,IAAI,EAAE,OAAOC,IAAI;EACrC;EACA,OAAOE,SAAS;AAClB;AAEA,SAASC,SAASA,CAACC,EAAU,EAAEL,IAAY,EAAQ;EACjDH,SAAS,CAACS,GAAG,CAACD,EAAE,EAAE;IAAEA,EAAE;IAAEL;EAAK,CAAC,CAAC;AACjC;AAEA,SAASO,WAAWA,CAACF,EAAU,EAAQ;EACrCR,SAAS,CAACW,MAAM,CAACH,EAAE,CAAC;AACtB;AAEA,SAASI,WAAWA,CAACC,GAAW,EAAW;EACzC,OACEA,GAAG,CAACC,QAAQ,CAAC,YAAY,CAAC,IAC1B,0CAA0C,CAACC,IAAI,CAACF,GAAG,CAAC;AAExD;AAEA,SAASG,eAAeA,CAACC,KAAc,EAAU;EAC/C,IAAIA,KAAK,KAAKX,SAAS,EAAE,OAAO,WAAW;EAC3C,IAAIW,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM;EACjC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;IAC/B,MAAMJ,GAAG,GAAGI,KAAK,CAACC,QAAQ,CAAC,CAAC;IAC5B,IAAIN,WAAW,CAACC,GAAG,CAAC,EAAE;MACpB,IAAIM,OAAO,EAAE;QACXC,OAAO,CAACC,IAAI,CACV,iFAAiF,GAC/E,6EACJ,CAAC;MACH;MACA,OAAO,WAAW;IACpB;IACA,OAAOR,GAAG;EACZ;EACA,IAAI,OAAOI,KAAK,KAAK,QAAQ,EAAE,OAAOK,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC;EAC3D,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EACzD,OAAOO,MAAM,CAACP,KAAK,CAAC;EACtB,IAAIQ,KAAK,CAACC,OAAO,CAACT,KAAK,CAAC,EACtB,OAAO,GAAG,GAAGA,KAAK,CAACU,GAAG,CAACX,eAAe,CAAC,CAACY,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;EACzD,IAAI,OAAOX,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAMY,GAAG,GAAGZ,KAAgC;IAC5C,IAAI,OAAOY,GAAG,CAACC,YAAY,KAAK,QAAQ,EAAE;MACxC,
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","ReactNativeThread","_emitter","RN_THREAD_MESSAGE_EVENT","_registry","Map","_findByName","name","info","values","undefined","_register","id","set","_unregister","delete","_isBytecode","src","includes","test","_serializeValue","value","toString","__DEV__","console","warn","JSON","stringify","String","Array","isArray","map","join","rec","__rnThreadFn","entries","Object","k","v","_wrapWithErrorHandler","code","toCode","task","params","paramsCode","argsStr","SHARED_THREAD_NAME","_sharedThreadId","getSharedThread","createThread","runOnJS","runOnThread","runOnNewJS","existing","createThreadHandle","resolvedName","getThreads","from","destroyThread","idOrName","targetId","has","onMessage","handler","sub","addListener","event","parsed","data","parse","threadId","remove","Promise","resolve","_isThreadError","__rnThreadError","run","reject","unsub","err","Error","message","stack","onError","destroy"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rn-org/react-native-thread",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Run JavaScript on real background threads in React Native — no Workers, no Worklets. Uses JavaScriptCore on iOS and Mozilla Rhino on Android. Built as a New Architecture TurboModule.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
package/src/babel-plugin.js
CHANGED
|
@@ -231,22 +231,39 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
|
|
|
231
231
|
continue;
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
-
// const/let/var x = <arrow / function expression>
|
|
235
|
-
if (
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
234
|
+
// const/let/var x = <arrow / function expression / already transformed>
|
|
235
|
+
if (t.isVariableDeclarator(bNode)) {
|
|
236
|
+
if (
|
|
237
|
+
bNode.init &&
|
|
238
|
+
(t.isFunctionExpression(bNode.init) ||
|
|
239
|
+
t.isArrowFunctionExpression(bNode.init))
|
|
240
|
+
) {
|
|
241
|
+
// Recursively capture the inner function's free vars first
|
|
242
|
+
capture(bNode.init);
|
|
243
|
+
const initSrc = state.file.code.slice(
|
|
244
|
+
bNode.init.start,
|
|
245
|
+
bNode.init.end
|
|
246
|
+
);
|
|
247
|
+
captures.push(
|
|
248
|
+
'var ' + name + ' = ' + transpileForThread(initSrc, state) + ';'
|
|
249
|
+
);
|
|
250
|
+
} else if (bNode.id && bNode.start != null && bNode.end != null) {
|
|
251
|
+
// Fallback for already-transformed init
|
|
252
|
+
const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
|
|
253
|
+
const eqIdx = declaratorSrc.indexOf('=');
|
|
254
|
+
if (eqIdx !== -1) {
|
|
255
|
+
const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
|
|
256
|
+
if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
|
|
257
|
+
captures.push(
|
|
258
|
+
'var ' +
|
|
259
|
+
name +
|
|
260
|
+
' = ' +
|
|
261
|
+
transpileForThread(rawInit, state) +
|
|
262
|
+
';'
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
250
267
|
continue;
|
|
251
268
|
}
|
|
252
269
|
|
|
@@ -267,8 +284,9 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
|
|
|
267
284
|
// ── Core transform helpers ─────────────────────────────────────
|
|
268
285
|
|
|
269
286
|
/**
|
|
270
|
-
* Transpile extracted source for the thread engine.
|
|
271
|
-
*
|
|
287
|
+
* Transpile extracted source for the thread engine. Strips TypeScript
|
|
288
|
+
* when the host file is TS and transforms async/await to generator-based
|
|
289
|
+
* code because Hermes' eval-mode compiler does not support async syntax.
|
|
272
290
|
*/
|
|
273
291
|
function transpileForThread(code, state) {
|
|
274
292
|
try {
|
|
@@ -276,19 +294,67 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
|
|
|
276
294
|
const fn =
|
|
277
295
|
state.filename || (state.file.opts && state.file.opts.filename) || '';
|
|
278
296
|
const isTS = /\.tsx?$/.test(fn);
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
297
|
+
const hasAsync = /\basync\b/.test(code);
|
|
298
|
+
|
|
299
|
+
if (!isTS && !hasAsync) {
|
|
300
|
+
return code.replace(/;\s*$/, '');
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
const plugins = [];
|
|
304
|
+
if (isTS) {
|
|
305
|
+
plugins.push(['@babel/plugin-transform-typescript', { isTSX: true }]);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// Hermes' eval-mode compiler does not support async/await syntax.
|
|
309
|
+
// Transform to generator-based code (generators ARE supported).
|
|
310
|
+
let asyncPluginLoaded = false;
|
|
311
|
+
if (hasAsync) {
|
|
312
|
+
try {
|
|
313
|
+
require.resolve('@babel/plugin-transform-async-to-generator');
|
|
314
|
+
plugins.push('@babel/plugin-transform-async-to-generator');
|
|
315
|
+
asyncPluginLoaded = true;
|
|
316
|
+
} catch {
|
|
317
|
+
// plugin unavailable — async code will be sent as-is
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
if (plugins.length === 0) {
|
|
322
|
+
return code.replace(/;\s*$/, '');
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// When the async transform is active, wrap the expression in a
|
|
326
|
+
// variable assignment so Babel can place the _asyncToGenerator
|
|
327
|
+
// helper as a sibling top-level statement. After the transform
|
|
328
|
+
// we split helpers from expression and wrap in a self-contained
|
|
329
|
+
// IIFE so the result is a single expression.
|
|
330
|
+
const MARKER = 'var __rnthread__ = ';
|
|
331
|
+
const inputCode = asyncPluginLoaded ? MARKER + '(' + code + ')' : code;
|
|
332
|
+
|
|
333
|
+
const result = babelCore.transformSync(inputCode, {
|
|
286
334
|
plugins,
|
|
287
335
|
configFile: false,
|
|
288
336
|
babelrc: false,
|
|
289
337
|
filename: isTS ? 'thread.tsx' : 'thread.js',
|
|
290
338
|
});
|
|
291
|
-
|
|
339
|
+
|
|
340
|
+
let output = ((result && result.code) || inputCode).replace(/;\s*$/, '');
|
|
341
|
+
|
|
342
|
+
if (asyncPluginLoaded) {
|
|
343
|
+
const idx = output.lastIndexOf(MARKER);
|
|
344
|
+
if (idx >= 0 && output.includes('_asyncToGenerator')) {
|
|
345
|
+
// Helpers were injected before the marker — wrap in IIFE.
|
|
346
|
+
const helpers = output.substring(0, idx);
|
|
347
|
+
const expr = output
|
|
348
|
+
.substring(idx + MARKER.length)
|
|
349
|
+
.replace(/;\s*$/, '');
|
|
350
|
+
output = '(function(){' + helpers + 'return ' + expr + '})()';
|
|
351
|
+
} else if (idx >= 0) {
|
|
352
|
+
// async transform was a no-op (regex false-positive)
|
|
353
|
+
output = output.substring(idx + MARKER.length);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
return output.replace(/;\s*$/, '');
|
|
292
358
|
} catch {
|
|
293
359
|
return code;
|
|
294
360
|
}
|
|
@@ -331,13 +397,42 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
|
|
|
331
397
|
if (t.isFunctionDeclaration(bNode)) {
|
|
332
398
|
fnNode = bNode;
|
|
333
399
|
fnSource = state.file.code.slice(bNode.start, bNode.end);
|
|
334
|
-
} else if (t.isVariableDeclarator(bNode)
|
|
400
|
+
} else if (t.isVariableDeclarator(bNode)) {
|
|
335
401
|
if (
|
|
336
|
-
|
|
337
|
-
t.
|
|
402
|
+
bNode.init &&
|
|
403
|
+
(t.isFunctionExpression(bNode.init) ||
|
|
404
|
+
t.isArrowFunctionExpression(bNode.init))
|
|
338
405
|
) {
|
|
406
|
+
// Normal case: init hasn't been transformed by another plugin yet
|
|
339
407
|
fnNode = bNode.init;
|
|
340
408
|
fnSource = state.file.code.slice(bNode.init.start, bNode.init.end);
|
|
409
|
+
} else if (bNode.id && bNode.start != null && bNode.end != null) {
|
|
410
|
+
// Fallback: another plugin (e.g. async-to-generator) already replaced
|
|
411
|
+
// bNode.init. Use the original source text by slicing after the `=`.
|
|
412
|
+
// bNode covers "isPrime = async (num) => {...}" (no `const`/`let`).
|
|
413
|
+
const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
|
|
414
|
+
const eqIdx = declaratorSrc.indexOf('=');
|
|
415
|
+
if (eqIdx !== -1) {
|
|
416
|
+
const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
|
|
417
|
+
if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
|
|
418
|
+
fnSource = rawInit;
|
|
419
|
+
// Parse rawInit to get a proper fnNode for getCaptureDecls
|
|
420
|
+
try {
|
|
421
|
+
const parsed = parser.parse(rawInit, {
|
|
422
|
+
sourceType: 'module',
|
|
423
|
+
plugins: ['typescript', 'jsx'],
|
|
424
|
+
});
|
|
425
|
+
const stmt = parsed.program.body[0];
|
|
426
|
+
if (stmt && stmt.type === 'ExpressionStatement') {
|
|
427
|
+
fnNode = stmt.expression;
|
|
428
|
+
} else {
|
|
429
|
+
fnNode = bNode.init; // may be transformed, captures skipped
|
|
430
|
+
}
|
|
431
|
+
} catch {
|
|
432
|
+
fnNode = bNode.init;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
341
436
|
}
|
|
342
437
|
} else if (
|
|
343
438
|
t.isImportSpecifier(bNode) ||
|
package/src/index.tsx
CHANGED
|
@@ -74,7 +74,7 @@ function _serializeValue(value: unknown): string {
|
|
|
74
74
|
if (typeof value === 'object') {
|
|
75
75
|
const rec = value as Record<string, unknown>;
|
|
76
76
|
if (typeof rec.__rnThreadFn === 'string') {
|
|
77
|
-
return rec.__rnThreadFn;
|
|
77
|
+
return '(' + rec.__rnThreadFn + ')';
|
|
78
78
|
}
|
|
79
79
|
const entries = Object.entries(rec)
|
|
80
80
|
.map(([k, v]) => `${JSON.stringify(k)}:${_serializeValue(v)}`)
|