@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.
- package/lib/module/index.js +18 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +19 -0
package/lib/module/index.js
CHANGED
|
@@ -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);
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","ReactNativeThread","_emitter","RN_THREAD_MESSAGE_EVENT","_registry","Map","
|
|
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;
|
|
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.
|
|
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);
|