react-native-worklets 0.4.0 → 0.5.0-nightly-20250724-a606143ab
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/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +26 -24
- package/Common/cpp/worklets/SharedItems/Shareables.cpp +155 -142
- package/Common/cpp/worklets/SharedItems/Shareables.h +106 -99
- package/Common/cpp/worklets/Tools/WorkletEventHandler.h +2 -2
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +1 -1
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +1 -1
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +9 -9
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +4 -4
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +29 -28
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/shareables.js +3 -2
- package/lib/module/shareables.js.map +1 -1
- package/lib/module/utils/jsVersion.js +1 -1
- package/lib/module/utils/jsVersion.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/shareables.d.ts +1 -0
- package/lib/typescript/shareables.d.ts.map +1 -1
- package/lib/typescript/utils/jsVersion.d.ts +1 -1
- package/lib/typescript/utils/jsVersion.d.ts.map +1 -1
- package/lib/typescript/workletTypes.d.ts +2 -1
- package/lib/typescript/workletTypes.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/shareables.ts +6 -1
- package/src/utils/jsVersion.ts +1 -1
- package/src/workletTypes.ts +2 -1
|
@@ -22,9 +22,9 @@ inline void scheduleOnUI(
|
|
|
22
22
|
const std::weak_ptr<WorkletRuntime> &weakUIWorkletRuntime,
|
|
23
23
|
jsi::Runtime &rt,
|
|
24
24
|
const jsi::Value &worklet) {
|
|
25
|
-
auto
|
|
25
|
+
auto serializableWorklet = extractSerializableOrThrow<SerializableWorklet>(
|
|
26
26
|
rt, worklet, "[Worklets] Only worklets can be scheduled to run on UI.");
|
|
27
|
-
uiScheduler->scheduleOnUI([
|
|
27
|
+
uiScheduler->scheduleOnUI([serializableWorklet, weakUIWorkletRuntime]() {
|
|
28
28
|
// This callback can outlive the WorkletsModuleProxy object during the
|
|
29
29
|
// invalidation of React Native. This happens when WorkletsModuleProxy
|
|
30
30
|
// destructor is called on the JS thread and the UI thread is
|
|
@@ -44,7 +44,7 @@ inline void scheduleOnUI(
|
|
|
44
44
|
const auto scope = jsi::Scope(uiWorkletRuntime->getJSIRuntime());
|
|
45
45
|
#endif // JS_RUNTIME_HERMES
|
|
46
46
|
|
|
47
|
-
uiWorkletRuntime->runGuarded(
|
|
47
|
+
uiWorkletRuntime->runGuarded(serializableWorklet);
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -64,7 +64,7 @@ inline jsi::Value createWorkletRuntime(
|
|
|
64
64
|
const std::shared_ptr<MessageQueueThread> &jsQueue,
|
|
65
65
|
std::shared_ptr<JSIWorkletsModuleProxy> jsiWorkletsModuleProxy,
|
|
66
66
|
const std::string &name,
|
|
67
|
-
std::shared_ptr<
|
|
67
|
+
std::shared_ptr<SerializableWorklet> &initializer) {
|
|
68
68
|
const auto workletRuntime = runtimeManager->createWorkletRuntime(
|
|
69
69
|
jsiWorkletsModuleProxy, true /* supportsLocking */, name, initializer);
|
|
70
70
|
return jsi::Object::createFromHostObject(originRuntime, workletRuntime);
|
|
@@ -208,7 +208,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
208
208
|
const jsi::Value &thisValue,
|
|
209
209
|
const jsi::Value *args,
|
|
210
210
|
size_t count) {
|
|
211
|
-
return
|
|
211
|
+
return makeSerializableClone(rt, args[0], args[1], args[2]);
|
|
212
212
|
});
|
|
213
213
|
}
|
|
214
214
|
|
|
@@ -221,7 +221,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
221
221
|
const jsi::Value &thisValue,
|
|
222
222
|
const jsi::Value *args,
|
|
223
223
|
size_t count) {
|
|
224
|
-
return
|
|
224
|
+
return makeSerializableBigInt(rt, args[0].asBigInt(rt));
|
|
225
225
|
});
|
|
226
226
|
}
|
|
227
227
|
|
|
@@ -234,7 +234,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
234
234
|
const jsi::Value &thisValue,
|
|
235
235
|
const jsi::Value *args,
|
|
236
236
|
size_t count) {
|
|
237
|
-
return
|
|
237
|
+
return makeSerializableBoolean(rt, args[0].asBool());
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
240
|
|
|
@@ -247,7 +247,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
247
247
|
const jsi::Value &thisValue,
|
|
248
248
|
const jsi::Value *args,
|
|
249
249
|
size_t count) {
|
|
250
|
-
return
|
|
250
|
+
return makeSerializableImport(
|
|
251
251
|
rt, args[0].asNumber(), args[1].asString(rt));
|
|
252
252
|
});
|
|
253
253
|
}
|
|
@@ -261,7 +261,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
261
261
|
const jsi::Value &thisValue,
|
|
262
262
|
const jsi::Value *args,
|
|
263
263
|
size_t count) {
|
|
264
|
-
return
|
|
264
|
+
return makeSerializableNumber(rt, args[0].asNumber());
|
|
265
265
|
});
|
|
266
266
|
}
|
|
267
267
|
|
|
@@ -273,7 +273,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
273
273
|
[](jsi::Runtime &rt,
|
|
274
274
|
const jsi::Value &thisValue,
|
|
275
275
|
const jsi::Value *args,
|
|
276
|
-
size_t count) { return
|
|
276
|
+
size_t count) { return makeSerializableNull(rt); });
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
if (name == "makeShareableString") {
|
|
@@ -285,7 +285,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
285
285
|
const jsi::Value &thisValue,
|
|
286
286
|
const jsi::Value *args,
|
|
287
287
|
size_t count) {
|
|
288
|
-
return
|
|
288
|
+
return makeSerializableString(rt, args[0].asString(rt));
|
|
289
289
|
});
|
|
290
290
|
}
|
|
291
291
|
|
|
@@ -297,7 +297,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
297
297
|
[](jsi::Runtime &rt,
|
|
298
298
|
const jsi::Value &thisValue,
|
|
299
299
|
const jsi::Value *args,
|
|
300
|
-
size_t count) { return
|
|
300
|
+
size_t count) { return makeSerializableUndefined(rt); });
|
|
301
301
|
}
|
|
302
302
|
|
|
303
303
|
if (name == "makeShareableInitializer") {
|
|
@@ -309,7 +309,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
309
309
|
const jsi::Value &thisValue,
|
|
310
310
|
const jsi::Value *args,
|
|
311
311
|
size_t count) {
|
|
312
|
-
return
|
|
312
|
+
return makeSerializableInitializer(rt, args[0].asObject(rt));
|
|
313
313
|
});
|
|
314
314
|
}
|
|
315
315
|
|
|
@@ -322,7 +322,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
322
322
|
const jsi::Value &thisValue,
|
|
323
323
|
const jsi::Value *args,
|
|
324
324
|
size_t count) {
|
|
325
|
-
return
|
|
325
|
+
return makeSerializableArray(
|
|
326
326
|
rt, args[0].asObject(rt).asArray(rt), args[1]);
|
|
327
327
|
});
|
|
328
328
|
}
|
|
@@ -336,7 +336,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
336
336
|
const jsi::Value &thisValue,
|
|
337
337
|
const jsi::Value *args,
|
|
338
338
|
size_t count) {
|
|
339
|
-
return
|
|
339
|
+
return makeSerializableMap(
|
|
340
340
|
rt,
|
|
341
341
|
args[0].asObject(rt).asArray(rt),
|
|
342
342
|
args[1].asObject(rt).asArray(rt));
|
|
@@ -352,7 +352,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
352
352
|
const jsi::Value &thisValue,
|
|
353
353
|
const jsi::Value *args,
|
|
354
354
|
size_t count) {
|
|
355
|
-
return
|
|
355
|
+
return makeSerializableSet(rt, args[0].asObject(rt).asArray(rt));
|
|
356
356
|
});
|
|
357
357
|
}
|
|
358
358
|
|
|
@@ -365,7 +365,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
365
365
|
const jsi::Value &thisValue,
|
|
366
366
|
const jsi::Value *args,
|
|
367
367
|
size_t count) {
|
|
368
|
-
return
|
|
368
|
+
return makeSerializableHostObject(
|
|
369
369
|
rt, args[0].asObject(rt).asHostObject(rt));
|
|
370
370
|
});
|
|
371
371
|
}
|
|
@@ -379,7 +379,8 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
379
379
|
const jsi::Value &thisValue,
|
|
380
380
|
const jsi::Value *args,
|
|
381
381
|
size_t count) {
|
|
382
|
-
return
|
|
382
|
+
return makeSerializableFunction(
|
|
383
|
+
rt, args[0].asObject(rt).asFunction(rt));
|
|
383
384
|
});
|
|
384
385
|
}
|
|
385
386
|
|
|
@@ -392,7 +393,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
392
393
|
const jsi::Value &thisValue,
|
|
393
394
|
const jsi::Value *args,
|
|
394
395
|
size_t count) {
|
|
395
|
-
return
|
|
396
|
+
return makeSerializableTurboModuleLike(
|
|
396
397
|
rt, args[0].asObject(rt), args[1].asObject(rt).asHostObject(rt));
|
|
397
398
|
});
|
|
398
399
|
}
|
|
@@ -406,7 +407,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
406
407
|
const jsi::Value &thisValue,
|
|
407
408
|
const jsi::Value *args,
|
|
408
409
|
size_t count) {
|
|
409
|
-
return
|
|
410
|
+
return makeSerializableObject(
|
|
410
411
|
rt, args[0].getObject(rt), args[1].getBool(), args[2]);
|
|
411
412
|
});
|
|
412
413
|
}
|
|
@@ -420,7 +421,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
420
421
|
const jsi::Value &thisValue,
|
|
421
422
|
const jsi::Value *args,
|
|
422
423
|
size_t count) {
|
|
423
|
-
return
|
|
424
|
+
return makeSerializableWorklet(
|
|
424
425
|
rt, args[0].getObject(rt), args[1].getBool());
|
|
425
426
|
});
|
|
426
427
|
}
|
|
@@ -465,8 +466,9 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
465
466
|
const jsi::Value *args,
|
|
466
467
|
size_t count) {
|
|
467
468
|
auto name = args[0].asString(rt).utf8(rt);
|
|
468
|
-
auto
|
|
469
|
-
|
|
469
|
+
auto serializableInitializer =
|
|
470
|
+
extractSerializableOrThrow<SerializableWorklet>(
|
|
471
|
+
rt, args[1], "[Worklets] Initializer must be a worklet.");
|
|
470
472
|
|
|
471
473
|
return createWorkletRuntime(
|
|
472
474
|
rt,
|
|
@@ -474,7 +476,7 @@ jsi::Value JSIWorkletsModuleProxy::get(
|
|
|
474
476
|
clone->getJSQueue(),
|
|
475
477
|
clone,
|
|
476
478
|
name,
|
|
477
|
-
|
|
479
|
+
serializableInitializer);
|
|
478
480
|
});
|
|
479
481
|
}
|
|
480
482
|
|