@rn-org/react-native-thread 0.8.1 → 0.8.2

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.
@@ -416,12 +416,51 @@ module.exports = function reactNativeThreadPlugin({
416
416
  return {
417
417
  name: 'react-native-thread',
418
418
  visitor: {
419
+ // Collect the local names that were actually imported from this library
420
+ // so we never accidentally intercept same-named APIs (e.g. Reanimated's
421
+ // runOnJS / runOnNewJS) or generic .run() methods from other libraries.
422
+ Program: {
423
+ enter(programPath, state) {
424
+ const threadLocalNames = new Set(); // runOnJS, runOnNewJS, createThread …
425
+ const threadHandleNames = new Set(); // const t = createThread(…)
426
+
427
+ programPath.traverse({
428
+ ImportDeclaration(importPath) {
429
+ if (importPath.node.source.value === '@rn-org/react-native-thread') {
430
+ for (const specifier of importPath.node.specifiers) {
431
+ threadLocalNames.add(specifier.local.name);
432
+ }
433
+ }
434
+ }
435
+ });
436
+
437
+ // Second pass: track variables initialised by a library call so
438
+ // that `thread.run(fn)` is only transformed for real thread handles.
439
+ if (threadLocalNames.size > 0) {
440
+ programPath.traverse({
441
+ VariableDeclarator(varPath) {
442
+ if (t.isIdentifier(varPath.node.id) && t.isCallExpression(varPath.node.init) && t.isIdentifier(varPath.node.init.callee) && threadLocalNames.has(varPath.node.init.callee.name)) {
443
+ threadHandleNames.add(varPath.node.id.name);
444
+ }
445
+ }
446
+ });
447
+ }
448
+ state.rnThreadLocalNames = threadLocalNames;
449
+ state.rnThreadHandleNames = threadHandleNames;
450
+ }
451
+ },
419
452
  CallExpression(path, state) {
420
453
  const {
421
454
  callee,
422
455
  arguments: args
423
456
  } = path.node;
457
+ const localNames = state.rnThreadLocalNames;
458
+ const handleNames = state.rnThreadHandleNames;
459
+
460
+ // runOnJS / runOnNewJS — only when imported from THIS library,
461
+ // not Reanimated's same-named exports.
424
462
  if (t.isIdentifier(callee) && TOP_LEVEL_API.has(callee.name)) {
463
+ if (!localNames || !localNames.has(callee.name)) return;
425
464
  if (args.length >= 1) {
426
465
  maybeTransformArg(path, state, args[0], 0);
427
466
  }
@@ -430,7 +469,19 @@ module.exports = function reactNativeThreadPlugin({
430
469
  }
431
470
  return;
432
471
  }
472
+
473
+ // thread.run() — only on identifiers we can trace to a thread handle.
433
474
  if (t.isMemberExpression(callee) && !callee.computed && t.isIdentifier(callee.property) && METHOD_API.has(callee.property.name)) {
475
+ // If we have no thread imports at all in this file, skip entirely.
476
+ if (!localNames || localNames.size === 0) return;
477
+ // If the object is an identifier we can check, require it to be a
478
+ // known handle. If it's a complex expression (memberExpr, call, …)
479
+ // we skip to avoid false positives.
480
+ if (t.isIdentifier(callee.object)) {
481
+ if (!handleNames || !handleNames.has(callee.object.name)) return;
482
+ } else {
483
+ return;
484
+ }
434
485
  if (args.length >= 1) {
435
486
  maybeTransformArg(path, state, args[0], 0);
436
487
  }
@@ -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","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":[]}
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","Program","enter","programPath","threadLocalNames","threadHandleNames","traverse","ImportDeclaration","importPath","specifier","specifiers","local","size","VariableDeclarator","varPath","isCallExpression","callee","rnThreadLocalNames","rnThreadHandleNames","CallExpression","args","localNames","handleNames"],"sourceRoot":"../../src","sources":["babel-plugin.js"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,13 +1,11 @@
1
1
  {
2
2
  "name": "@rn-org/react-native-thread",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
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
- "react-native": "./src/index.tsx",
7
6
  "types": "./lib/typescript/src/index.d.ts",
8
7
  "exports": {
9
8
  ".": {
10
- "react-native": "./src/index.tsx",
11
9
  "source": "./src/index.tsx",
12
10
  "types": "./lib/typescript/src/index.d.ts",
13
11
  "default": "./lib/module/index.js"
@@ -521,10 +521,57 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
521
521
  return {
522
522
  name: 'react-native-thread',
523
523
  visitor: {
524
+ // Collect the local names that were actually imported from this library
525
+ // so we never accidentally intercept same-named APIs (e.g. Reanimated's
526
+ // runOnJS / runOnNewJS) or generic .run() methods from other libraries.
527
+ Program: {
528
+ enter(programPath, state) {
529
+ const threadLocalNames = new Set(); // runOnJS, runOnNewJS, createThread …
530
+ const threadHandleNames = new Set(); // const t = createThread(…)
531
+
532
+ programPath.traverse({
533
+ ImportDeclaration(importPath) {
534
+ if (
535
+ importPath.node.source.value === '@rn-org/react-native-thread'
536
+ ) {
537
+ for (const specifier of importPath.node.specifiers) {
538
+ threadLocalNames.add(specifier.local.name);
539
+ }
540
+ }
541
+ },
542
+ });
543
+
544
+ // Second pass: track variables initialised by a library call so
545
+ // that `thread.run(fn)` is only transformed for real thread handles.
546
+ if (threadLocalNames.size > 0) {
547
+ programPath.traverse({
548
+ VariableDeclarator(varPath) {
549
+ if (
550
+ t.isIdentifier(varPath.node.id) &&
551
+ t.isCallExpression(varPath.node.init) &&
552
+ t.isIdentifier(varPath.node.init.callee) &&
553
+ threadLocalNames.has(varPath.node.init.callee.name)
554
+ ) {
555
+ threadHandleNames.add(varPath.node.id.name);
556
+ }
557
+ },
558
+ });
559
+ }
560
+
561
+ state.rnThreadLocalNames = threadLocalNames;
562
+ state.rnThreadHandleNames = threadHandleNames;
563
+ },
564
+ },
565
+
524
566
  CallExpression(path, state) {
525
567
  const { callee, arguments: args } = path.node;
568
+ const localNames = state.rnThreadLocalNames;
569
+ const handleNames = state.rnThreadHandleNames;
526
570
 
571
+ // runOnJS / runOnNewJS — only when imported from THIS library,
572
+ // not Reanimated's same-named exports.
527
573
  if (t.isIdentifier(callee) && TOP_LEVEL_API.has(callee.name)) {
574
+ if (!localNames || !localNames.has(callee.name)) return;
528
575
  if (args.length >= 1) {
529
576
  maybeTransformArg(path, state, args[0], 0);
530
577
  }
@@ -534,12 +581,23 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
534
581
  return;
535
582
  }
536
583
 
584
+ // thread.run() — only on identifiers we can trace to a thread handle.
537
585
  if (
538
586
  t.isMemberExpression(callee) &&
539
587
  !callee.computed &&
540
588
  t.isIdentifier(callee.property) &&
541
589
  METHOD_API.has(callee.property.name)
542
590
  ) {
591
+ // If we have no thread imports at all in this file, skip entirely.
592
+ if (!localNames || localNames.size === 0) return;
593
+ // If the object is an identifier we can check, require it to be a
594
+ // known handle. If it's a complex expression (memberExpr, call, …)
595
+ // we skip to avoid false positives.
596
+ if (t.isIdentifier(callee.object)) {
597
+ if (!handleNames || !handleNames.has(callee.object.name)) return;
598
+ } else {
599
+ return;
600
+ }
543
601
  if (args.length >= 1) {
544
602
  maybeTransformArg(path, state, args[0], 0);
545
603
  }