@rn-org/react-native-thread 0.4.0 → 0.5.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.
@@ -5,6 +5,12 @@ import ReactNativeThread from "./NativeReactNativeThread.js";
5
5
  const _emitter = new NativeEventEmitter(ReactNativeThread);
6
6
  const RN_THREAD_MESSAGE_EVENT = 'RNThreadMessage';
7
7
  const _registry = new Map();
8
+ function _findByName(name) {
9
+ for (const info of _registry.values()) {
10
+ if (info.name === name) return info;
11
+ }
12
+ return undefined;
13
+ }
8
14
  function _register(id, name) {
9
15
  _registry.set(id, {
10
16
  id,
@@ -42,6 +48,12 @@ export function runOnJS(task, params) {
42
48
  ReactNativeThread.runOnThread(getSharedThread(), toCode(task, params));
43
49
  }
44
50
  export function runOnNewJS(task, params, name) {
51
+ if (name != null) {
52
+ const existing = _findByName(name);
53
+ if (existing) {
54
+ return createThreadHandle(existing.id, existing.name);
55
+ }
56
+ }
45
57
  const id = ReactNativeThread.createThread();
46
58
  const resolvedName = name ?? `RNThread-${id}`;
47
59
  _register(id, resolvedName);
@@ -49,6 +61,12 @@ export function runOnNewJS(task, params, name) {
49
61
  return createThreadHandle(id, resolvedName);
50
62
  }
51
63
  export function createThread(name) {
64
+ if (name != null) {
65
+ const existing = _findByName(name);
66
+ if (existing) {
67
+ return createThreadHandle(existing.id, existing.name);
68
+ }
69
+ }
52
70
  const id = ReactNativeThread.createThread();
53
71
  const resolvedName = name ?? `RNThread-${id}`;
54
72
  _register(id, resolvedName);
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","ReactNativeThread","_emitter","RN_THREAD_MESSAGE_EVENT","_registry","Map","_register","id","name","set","_unregister","delete","toCode","task","params","paramsJson","undefined","JSON","stringify","src","toString","includes","test","__DEV__","console","warn","argsStr","SHARED_THREAD_NAME","_sharedThreadId","getSharedThread","createThread","runOnJS","runOnThread","runOnNewJS","resolvedName","createThreadHandle","getThreads","Array","from","values","destroyThread","idOrName","targetId","has","info","onMessage","handler","sub","addListener","event","parsed","data","parse","threadId","remove","Promise","resolve","run","unsub","destroy"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","ReactNativeThread","_emitter","RN_THREAD_MESSAGE_EVENT","_registry","Map","_findByName","name","info","values","undefined","_register","id","set","_unregister","delete","toCode","task","params","paramsJson","JSON","stringify","src","toString","includes","test","__DEV__","console","warn","argsStr","SHARED_THREAD_NAME","_sharedThreadId","getSharedThread","createThread","runOnJS","runOnThread","runOnNewJS","existing","createThreadHandle","resolvedName","getThreads","Array","from","destroyThread","idOrName","targetId","has","onMessage","handler","sub","addListener","event","parsed","data","parse","threadId","remove","Promise","resolve","run","unsub","destroy"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACxD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AAmDF,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAEhE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,MAAM,CAAC,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,YAAY,CAMd;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAKxD;AAED,wBAAgB,UAAU,IAAI,UAAU,EAAE,CAEzC;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0B7D;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GACjD,MAAM,IAAI,CAAC;AACd,wBAAgB,SAAS,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACxD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AA0DF,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAEhE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,MAAM,CAAC,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,YAAY,CAYd;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAWxD;AAED,wBAAgB,UAAU,IAAI,UAAU,EAAE,CAEzC;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0B7D;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GACjD,MAAM,IAAI,CAAC;AACd,wBAAgB,SAAS,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rn-org/react-native-thread",
3
- "version": "0.4.0",
3
+ "version": "0.5.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/index.tsx CHANGED
@@ -22,6 +22,13 @@ const RN_THREAD_MESSAGE_EVENT = 'RNThreadMessage';
22
22
 
23
23
  const _registry = new Map<number, ThreadInfo>();
24
24
 
25
+ function _findByName(name: string): ThreadInfo | undefined {
26
+ for (const info of _registry.values()) {
27
+ if (info.name === name) return info;
28
+ }
29
+ return undefined;
30
+ }
31
+
25
32
  function _register(id: number, name: string): void {
26
33
  _registry.set(id, { id, name });
27
34
  }
@@ -75,6 +82,12 @@ export function runOnNewJS(
75
82
  params?: unknown,
76
83
  name?: string
77
84
  ): ThreadHandle {
85
+ if (name != null) {
86
+ const existing = _findByName(name);
87
+ if (existing) {
88
+ return createThreadHandle(existing.id, existing.name);
89
+ }
90
+ }
78
91
  const id = ReactNativeThread.createThread();
79
92
  const resolvedName = name ?? `RNThread-${id}`;
80
93
  _register(id, resolvedName);
@@ -83,6 +96,12 @@ export function runOnNewJS(
83
96
  }
84
97
 
85
98
  export function createThread(name?: string): ThreadHandle {
99
+ if (name != null) {
100
+ const existing = _findByName(name);
101
+ if (existing) {
102
+ return createThreadHandle(existing.id, existing.name);
103
+ }
104
+ }
86
105
  const id = ReactNativeThread.createThread();
87
106
  const resolvedName = name ?? `RNThread-${id}`;
88
107
  _register(id, resolvedName);