react-native-worklets 0.0.1-alpha → 0.1.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/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.cpp +71 -0
- package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.h +38 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +131 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +82 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +72 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +44 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +94 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.h +49 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +8 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +39 -0
- package/Common/cpp/worklets/SharedItems/Shareables.cpp +326 -0
- package/Common/cpp/worklets/SharedItems/Shareables.h +345 -0
- package/Common/cpp/worklets/Tools/AsyncQueue.cpp +52 -0
- package/Common/cpp/worklets/Tools/AsyncQueue.h +35 -0
- package/Common/cpp/worklets/Tools/Defs.h +10 -0
- package/Common/cpp/worklets/Tools/JSISerializer.cpp +342 -0
- package/Common/cpp/worklets/Tools/JSISerializer.h +47 -0
- package/Common/cpp/worklets/Tools/JSLogger.cpp +16 -0
- package/Common/cpp/worklets/Tools/JSLogger.h +20 -0
- package/Common/cpp/worklets/Tools/JSScheduler.cpp +10 -0
- package/Common/cpp/worklets/Tools/JSScheduler.h +29 -0
- package/Common/cpp/worklets/Tools/PlatformLogger.h +16 -0
- package/Common/cpp/worklets/Tools/SingleInstanceChecker.h +72 -0
- package/Common/cpp/worklets/Tools/ThreadSafeQueue.h +49 -0
- package/Common/cpp/worklets/Tools/UIScheduler.cpp +19 -0
- package/Common/cpp/worklets/Tools/UIScheduler.h +22 -0
- package/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +29 -0
- package/Common/cpp/worklets/Tools/WorkletEventHandler.h +41 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.cpp +26 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +199 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +20 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +19 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +191 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.cpp +19 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.h +16 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.cpp +108 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.h +127 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +183 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +90 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +36 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +179 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +22 -0
- package/LICENSE +20 -0
- package/README.md +27 -0
- package/RNWorklets.podspec +70 -0
- package/android/CMakeLists.txt +56 -0
- package/android/build.gradle +313 -0
- package/android/gradle.properties +5 -0
- package/android/proguard-rules.pro +3 -0
- package/android/spotless.gradle +9 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/worklets/CMakeLists.txt +85 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.cpp +63 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.h +41 -0
- package/android/src/main/cpp/worklets/android/AnimationFrameCallback.h +32 -0
- package/android/src/main/cpp/worklets/android/PlatformLogger.cpp +29 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +83 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.h +63 -0
- package/android/src/main/cpp/worklets/android/WorkletsOnLoad.cpp +13 -0
- package/android/src/main/java/com/swmansion/worklets/AndroidUIScheduler.java +60 -0
- package/android/src/main/java/com/swmansion/worklets/AnimationFrameQueue/AnimationFrameCallback.java +20 -0
- package/android/src/main/java/com/swmansion/worklets/AnimationFrameQueue/AnimationFrameQueue.java +113 -0
- package/android/src/main/java/com/swmansion/worklets/JSCallInvokerResolver.java +27 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsMessageQueueThread.java +16 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsMessageQueueThreadBase.java +72 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsModule.java +106 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsPackage.java +49 -0
- package/android/src/paper/com/swmansion/worklets/NativeWorkletsModuleSpec.java +26 -0
- package/apple/worklets/apple/AnimationFrameQueue.h +15 -0
- package/apple/worklets/apple/AnimationFrameQueue.mm +81 -0
- package/apple/worklets/apple/AssertJavaScriptQueue.h +14 -0
- package/apple/worklets/apple/AssertTurboModuleManagerQueue.h +16 -0
- package/apple/worklets/apple/IOSUIScheduler.h +14 -0
- package/apple/worklets/apple/IOSUIScheduler.mm +24 -0
- package/apple/worklets/apple/PlatformLogger.mm +31 -0
- package/apple/worklets/apple/SlowAnimations.h +8 -0
- package/apple/worklets/apple/SlowAnimations.mm +47 -0
- package/apple/worklets/apple/WorkletsDisplayLink.h +21 -0
- package/apple/worklets/apple/WorkletsMessageThread.h +16 -0
- package/apple/worklets/apple/WorkletsMessageThread.mm +32 -0
- package/apple/worklets/apple/WorkletsModule.h +10 -0
- package/apple/worklets/apple/WorkletsModule.mm +85 -0
- package/lib/module/PlatformChecker.js +35 -0
- package/lib/module/PlatformChecker.js.map +1 -0
- package/lib/module/WorkletsError.js +13 -0
- package/lib/module/WorkletsError.js.map +1 -0
- package/lib/module/WorkletsModule/JSWorklets.js +36 -0
- package/lib/module/WorkletsModule/JSWorklets.js.map +1 -0
- package/lib/module/WorkletsModule/NativeWorklets.js +39 -0
- package/lib/module/WorkletsModule/NativeWorklets.js.map +1 -0
- package/lib/module/WorkletsModule/index.js +4 -0
- package/lib/module/WorkletsModule/index.js.map +1 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.js +7 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.js.map +1 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.web.js +5 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.web.js.map +1 -0
- package/lib/module/WorkletsModule/workletsModuleProxy.js +4 -0
- package/lib/module/WorkletsModule/workletsModuleProxy.js.map +1 -0
- package/lib/module/animationFrameQueue/mockedRequestAnimationFrame.js +10 -0
- package/lib/module/animationFrameQueue/mockedRequestAnimationFrame.js.map +1 -0
- package/lib/module/animationFrameQueue/requestAnimationFrame.js +36 -0
- package/lib/module/animationFrameQueue/requestAnimationFrame.js.map +1 -0
- package/lib/module/errors.js +78 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/index.js +17 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/initializers.js +158 -0
- package/lib/module/initializers.js.map +1 -0
- package/lib/module/logger/LogBox.js +15 -0
- package/lib/module/logger/LogBox.js.map +1 -0
- package/lib/module/logger/index.js +5 -0
- package/lib/module/logger/index.js.map +1 -0
- package/lib/module/logger/logger.js +137 -0
- package/lib/module/logger/logger.js.map +1 -0
- package/lib/module/privateGlobals.d.js +8 -0
- package/lib/module/privateGlobals.d.js.map +1 -0
- package/lib/module/runtimes.js +63 -0
- package/lib/module/runtimes.js.map +1 -0
- package/lib/module/shareableMappingCache.js +39 -0
- package/lib/module/shareableMappingCache.js.map +1 -0
- package/lib/module/shareables.js +417 -0
- package/lib/module/shareables.js.map +1 -0
- package/lib/module/specs/NativeWorkletsModule.js +5 -0
- package/lib/module/specs/NativeWorkletsModule.js.map +1 -0
- package/lib/module/specs/index.js +5 -0
- package/lib/module/specs/index.js.map +1 -0
- package/lib/module/threads.js +204 -0
- package/lib/module/threads.js.map +1 -0
- package/lib/module/valueUnpacker.js +83 -0
- package/lib/module/valueUnpacker.js.map +1 -0
- package/lib/module/workletFunction.js +37 -0
- package/lib/module/workletFunction.js.map +1 -0
- package/lib/module/workletTypes.js +12 -0
- package/lib/module/workletTypes.js.map +1 -0
- package/lib/typescript/PlatformChecker.d.ts +7 -0
- package/lib/typescript/PlatformChecker.d.ts.map +1 -0
- package/lib/typescript/WorkletsError.d.ts +3 -0
- package/lib/typescript/WorkletsError.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/JSWorklets.d.ts +3 -0
- package/lib/typescript/WorkletsModule/JSWorklets.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/NativeWorklets.d.ts +5 -0
- package/lib/typescript/WorkletsModule/NativeWorklets.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/index.d.ts +3 -0
- package/lib/typescript/WorkletsModule/index.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts +2 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts +2 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +12 -0
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -0
- package/lib/typescript/animationFrameQueue/mockedRequestAnimationFrame.d.ts +6 -0
- package/lib/typescript/animationFrameQueue/mockedRequestAnimationFrame.d.ts.map +1 -0
- package/lib/typescript/animationFrameQueue/requestAnimationFrame.d.ts +2 -0
- package/lib/typescript/animationFrameQueue/requestAnimationFrame.d.ts.map +1 -0
- package/lib/typescript/errors.d.ts +19 -0
- package/lib/typescript/errors.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +13 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/initializers.d.ts +6 -0
- package/lib/typescript/initializers.d.ts.map +1 -0
- package/lib/typescript/logger/LogBox.d.ts +32 -0
- package/lib/typescript/logger/LogBox.d.ts.map +1 -0
- package/lib/typescript/logger/index.d.ts +3 -0
- package/lib/typescript/logger/index.d.ts.map +1 -0
- package/lib/typescript/logger/logger.d.ts +52 -0
- package/lib/typescript/logger/logger.d.ts.map +1 -0
- package/lib/typescript/runtimes.d.ts +16 -0
- package/lib/typescript/runtimes.d.ts.map +1 -0
- package/lib/typescript/shareableMappingCache.d.ts +16 -0
- package/lib/typescript/shareableMappingCache.d.ts.map +1 -0
- package/lib/typescript/shareables.d.ts +15 -0
- package/lib/typescript/shareables.d.ts.map +1 -0
- package/lib/typescript/specs/NativeWorkletsModule.d.ts +7 -0
- package/lib/typescript/specs/NativeWorkletsModule.d.ts.map +1 -0
- package/lib/typescript/specs/index.d.ts +3 -0
- package/lib/typescript/specs/index.d.ts.map +1 -0
- package/lib/typescript/threads.d.ts +49 -0
- package/lib/typescript/threads.d.ts.map +1 -0
- package/lib/typescript/valueUnpacker.d.ts +2 -0
- package/lib/typescript/valueUnpacker.d.ts.map +1 -0
- package/lib/typescript/workletFunction.d.ts +27 -0
- package/lib/typescript/workletFunction.d.ts.map +1 -0
- package/lib/typescript/workletTypes.d.ts +49 -0
- package/lib/typescript/workletTypes.d.ts.map +1 -0
- package/package.json +106 -8
- package/plugin/index.js +3 -0
- package/scripts/worklets_utils.rb +53 -0
- package/src/PlatformChecker.ts +43 -0
- package/src/WorkletsError.ts +13 -0
- package/src/WorkletsModule/JSWorklets.ts +57 -0
- package/src/WorkletsModule/NativeWorklets.ts +68 -0
- package/src/WorkletsModule/index.ts +7 -0
- package/src/WorkletsModule/workletsModuleInstance.ts +9 -0
- package/src/WorkletsModule/workletsModuleInstance.web.ts +5 -0
- package/src/WorkletsModule/workletsModuleProxy.ts +30 -0
- package/src/animationFrameQueue/mockedRequestAnimationFrame.ts +11 -0
- package/src/animationFrameQueue/requestAnimationFrame.ts +41 -0
- package/src/errors.ts +103 -0
- package/src/index.ts +42 -0
- package/src/initializers.ts +175 -0
- package/src/logger/LogBox.ts +55 -0
- package/src/logger/index.ts +3 -0
- package/src/logger/logger.ts +155 -0
- package/src/privateGlobals.d.ts +41 -0
- package/src/runtimes.ts +92 -0
- package/src/shareableMappingCache.ts +44 -0
- package/src/shareables.ts +577 -0
- package/src/specs/NativeWorkletsModule.ts +9 -0
- package/src/specs/index.ts +5 -0
- package/src/threads.ts +275 -0
- package/src/valueUnpacker.ts +110 -0
- package/src/workletFunction.ts +47 -0
- package/src/workletTypes.ts +76 -0
- package/Animated.js +0 -13
- package/AnimatedEvent.js +0 -167
- package/AnimatedImplementation.js +0 -666
- package/CoreAnimated.js +0 -43
- package/Easing.js +0 -236
- package/NativeAnimatedHelper.js +0 -226
- package/SpringConfig.js +0 -79
- package/animations/Animation.js +0 -36
- package/animations/DecayAnimation.js +0 -70
- package/animations/SpringAnimation.js +0 -125
- package/animations/TimingAnimation.js +0 -70
- package/bezier.js +0 -128
- package/createAnimatedComponent.js +0 -188
- package/nodes/AnimatedBlock.js +0 -19
- package/nodes/AnimatedClock.js +0 -76
- package/nodes/AnimatedCond.js +0 -23
- package/nodes/AnimatedDetach.js +0 -15
- package/nodes/AnimatedInterpolation.js +0 -338
- package/nodes/AnimatedNode.js +0 -97
- package/nodes/AnimatedOnChange.js +0 -28
- package/nodes/AnimatedOp.js +0 -17
- package/nodes/AnimatedProps.js +0 -154
- package/nodes/AnimatedSet.js +0 -19
- package/nodes/AnimatedStartClock.js +0 -21
- package/nodes/AnimatedStopClock.js +0 -21
- package/nodes/AnimatedStyle.js +0 -89
- package/nodes/AnimatedTracking.js +0 -36
- package/nodes/AnimatedTransform.js +0 -93
- package/nodes/AnimatedValue.js +0 -271
- package/nodes/AnimatedWithInput.js +0 -21
- package/nodes/SpringNode.js +0 -106
- package/nodes/TimingStep.js +0 -44
- package/utils.js +0 -28
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["registerWorkletStackDetails","logger","shouldBeUseWeb","shareableMappingCache","shareableMappingFlag","isWorkletFunction","WorkletsError","WorkletsModule","SHOULD_BE_USE_WEB","MAGIC_KEY","isHostObject","value","isPlainJSObject","object","Object","getPrototypeOf","prototype","getFromCache","cached","get","INACCESSIBLE_OBJECT","__init","Proxy","_","prop","String","set","VALID_ARRAY_VIEWS_NAMES","DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD","processedObjectAtThresholdDepth","makeShareableCloneRecursiveWeb","makeShareableCloneRecursiveNative","shouldPersistRemote","depth","detectCyclicObject","isObject","isFunction","clonePrimitive","undefined","Array","isArray","cloneArray","cloneRemoteFunction","cloneHostObject","__workletContextObjectFactory","cloneContextObject","cloneWorklet","clonePlainJSObject","RegExp","cloneRegExp","Error","cloneError","ArrayBuffer","cloneArrayBuffer","isView","cloneArrayBufferView","inaccessibleObject","makeShareableCloneRecursive","makeShareableClone","clonedElements","map","element","clone","freezeObjectInDev","__DEV__","__workletHash","__stackDetails","clonedProps","__initData","key","entries","workletContextObjectFactory","handle","pattern","source","flags","name","message","stack","error","buffer","typeName","constructor","includes","global","WORKLET_CODE_THRESHOLD","getWorkletCode","code","length","substring","isRemoteFunction","__remoteFunction","forEach","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","warn","preventExtensions","makeShareableCloneOnUIRecursive","cloneRecursive","_makeShareableClone","toAdapt","makeShareableJS","makeShareableNative","makeShareable"],"sourceRoot":"../../src","sources":["shareables.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeWorkletsModule.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,mBAAmB,QAAQ,cAAc;AAMlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WorkletsTurboModule"],"sourceRoot":"../../../src","sources":["specs/index.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,mBAAmB,MAAM,2BAAwB;AAExD,SAASA,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { isJest, shouldBeUseWeb } from "./PlatformChecker.js";
|
|
4
|
+
import { makeShareableCloneOnUIRecursive, makeShareableCloneRecursive } from "./shareables.js";
|
|
5
|
+
import { isWorkletFunction } from "./workletFunction.js";
|
|
6
|
+
import { WorkletsError } from "./WorkletsError.js";
|
|
7
|
+
import { WorkletsModule } from "./WorkletsModule/index.js";
|
|
8
|
+
const IS_JEST = isJest();
|
|
9
|
+
const SHOULD_BE_USE_WEB = shouldBeUseWeb();
|
|
10
|
+
|
|
11
|
+
/** An array of [worklet, args] pairs. */
|
|
12
|
+
let _runOnUIQueue = [];
|
|
13
|
+
export function setupMicrotasks() {
|
|
14
|
+
'worklet';
|
|
15
|
+
|
|
16
|
+
let microtasksQueue = [];
|
|
17
|
+
let isExecutingMicrotasksQueue = false;
|
|
18
|
+
global.queueMicrotask = callback => {
|
|
19
|
+
microtasksQueue.push(callback);
|
|
20
|
+
};
|
|
21
|
+
global._microtaskQueueFinalizers = [];
|
|
22
|
+
global.__callMicrotasks = () => {
|
|
23
|
+
if (isExecutingMicrotasksQueue) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
isExecutingMicrotasksQueue = true;
|
|
28
|
+
for (let index = 0; index < microtasksQueue.length; index += 1) {
|
|
29
|
+
// we use classic 'for' loop because the size of the currentTasks array may change while executing some of the callbacks due to queueMicrotask calls
|
|
30
|
+
microtasksQueue[index]();
|
|
31
|
+
}
|
|
32
|
+
microtasksQueue = [];
|
|
33
|
+
global._microtaskQueueFinalizers.forEach(finalizer => finalizer());
|
|
34
|
+
} finally {
|
|
35
|
+
isExecutingMicrotasksQueue = false;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function callMicrotasksOnUIThread() {
|
|
40
|
+
'worklet';
|
|
41
|
+
|
|
42
|
+
global.__callMicrotasks();
|
|
43
|
+
}
|
|
44
|
+
export const callMicrotasks = SHOULD_BE_USE_WEB ? () => {
|
|
45
|
+
// on web flushing is a noop as immediates are handled by the browser
|
|
46
|
+
} : callMicrotasksOnUIThread;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Lets you asynchronously run
|
|
50
|
+
* [workletized](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#to-workletize)
|
|
51
|
+
* functions on the [UI
|
|
52
|
+
* thread](https://docs.swmansion.com/react-native-reanimated/docs/threading/runOnUI).
|
|
53
|
+
*
|
|
54
|
+
* This method does not schedule the work immediately but instead waits for
|
|
55
|
+
* other worklets to be scheduled within the same JS loop. It uses
|
|
56
|
+
* queueMicrotask to schedule all the worklets at once making sure they will run
|
|
57
|
+
* within the same frame boundaries on the UI thread.
|
|
58
|
+
*
|
|
59
|
+
* @param fun - A reference to a function you want to execute on the [UI
|
|
60
|
+
* thread](https://docs.swmansion.com/react-native-reanimated/docs/threading/runOnUI)
|
|
61
|
+
* from the [JavaScript
|
|
62
|
+
* thread](https://docs.swmansion.com/react-native-reanimated/docs/threading/runOnUI).
|
|
63
|
+
* @returns A function that accepts arguments for the function passed as the
|
|
64
|
+
* first argument.
|
|
65
|
+
* @see https://docs.swmansion.com/react-native-reanimated/docs/threading/runOnUI
|
|
66
|
+
*/
|
|
67
|
+
// @ts-expect-error This overload is correct since it's what user sees in his code
|
|
68
|
+
// before it's transformed by Reanimated Babel plugin.
|
|
69
|
+
|
|
70
|
+
export function runOnUI(worklet) {
|
|
71
|
+
'worklet';
|
|
72
|
+
|
|
73
|
+
if (__DEV__ && !SHOULD_BE_USE_WEB && _WORKLET) {
|
|
74
|
+
throw new WorkletsError('`runOnUI` cannot be called on the UI runtime. Please call the function synchronously or use `queueMicrotask` or `requestAnimationFrame` instead.');
|
|
75
|
+
}
|
|
76
|
+
if (__DEV__ && !SHOULD_BE_USE_WEB && !isWorkletFunction(worklet)) {
|
|
77
|
+
throw new WorkletsError('`runOnUI` can only be used with worklets.');
|
|
78
|
+
}
|
|
79
|
+
return (...args) => {
|
|
80
|
+
if (IS_JEST) {
|
|
81
|
+
// Mocking time in Jest is tricky as both requestAnimationFrame and queueMicrotask
|
|
82
|
+
// callbacks run on the same queue and can be interleaved. There is no way
|
|
83
|
+
// to flush particular queue in Jest and the only control over mocked timers
|
|
84
|
+
// is by using jest.advanceTimersByTime() method which advances all types
|
|
85
|
+
// of timers including immediate and animation callbacks. Ideally we'd like
|
|
86
|
+
// to have some way here to schedule work along with React updates, but
|
|
87
|
+
// that's not possible, and hence in Jest environment instead of using scheduling
|
|
88
|
+
// mechanism we just schedule the work ommiting the queue. This is ok for the
|
|
89
|
+
// uses that we currently have but may not be ok for future tests that we write.
|
|
90
|
+
WorkletsModule.scheduleOnUI(makeShareableCloneRecursive(() => {
|
|
91
|
+
'worklet';
|
|
92
|
+
|
|
93
|
+
worklet(...args);
|
|
94
|
+
}));
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (__DEV__) {
|
|
98
|
+
// in DEV mode we call shareable conversion here because in case the object
|
|
99
|
+
// can't be converted, we will get a meaningful stack-trace as opposed to the
|
|
100
|
+
// situation when conversion is only done via microtask queue. This does not
|
|
101
|
+
// make the app particularily less efficient as converted objects are cached
|
|
102
|
+
// and for a given worklet the conversion only happens once.
|
|
103
|
+
makeShareableCloneRecursive(worklet);
|
|
104
|
+
makeShareableCloneRecursive(args);
|
|
105
|
+
}
|
|
106
|
+
_runOnUIQueue.push([worklet, args]);
|
|
107
|
+
if (_runOnUIQueue.length === 1) {
|
|
108
|
+
queueMicrotask(() => {
|
|
109
|
+
const queue = _runOnUIQueue;
|
|
110
|
+
_runOnUIQueue = [];
|
|
111
|
+
WorkletsModule.scheduleOnUI(makeShareableCloneRecursive(() => {
|
|
112
|
+
'worklet';
|
|
113
|
+
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
115
|
+
queue.forEach(([worklet, args]) => {
|
|
116
|
+
worklet(...args);
|
|
117
|
+
});
|
|
118
|
+
callMicrotasks();
|
|
119
|
+
}));
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// @ts-expect-error Check `executeOnUIRuntimeSync` overload above.
|
|
126
|
+
|
|
127
|
+
export function executeOnUIRuntimeSync(worklet) {
|
|
128
|
+
return (...args) => {
|
|
129
|
+
return WorkletsModule.executeOnUIRuntimeSync(makeShareableCloneRecursive(() => {
|
|
130
|
+
'worklet';
|
|
131
|
+
|
|
132
|
+
const result = worklet(...args);
|
|
133
|
+
return makeShareableCloneOnUIRecursive(result);
|
|
134
|
+
}));
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// @ts-expect-error Check `runOnUI` overload above.
|
|
139
|
+
|
|
140
|
+
/** Schedule a worklet to execute on the UI runtime skipping batching mechanism. */
|
|
141
|
+
export function runOnUIImmediately(worklet) {
|
|
142
|
+
'worklet';
|
|
143
|
+
|
|
144
|
+
if (__DEV__ && !SHOULD_BE_USE_WEB && _WORKLET) {
|
|
145
|
+
throw new WorkletsError('`runOnUIImmediately` cannot be called on the UI runtime. Please call the function synchronously or use `queueMicrotask` or `requestAnimationFrame` instead.');
|
|
146
|
+
}
|
|
147
|
+
if (__DEV__ && !SHOULD_BE_USE_WEB && !isWorkletFunction(worklet)) {
|
|
148
|
+
throw new WorkletsError('`runOnUIImmediately` can only be used with worklets.');
|
|
149
|
+
}
|
|
150
|
+
return (...args) => {
|
|
151
|
+
WorkletsModule.scheduleOnUI(makeShareableCloneRecursive(() => {
|
|
152
|
+
'worklet';
|
|
153
|
+
|
|
154
|
+
worklet(...args);
|
|
155
|
+
}));
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function runWorkletOnJS(worklet, ...args) {
|
|
159
|
+
// remote function that calls a worklet synchronously on the JS runtime
|
|
160
|
+
worklet(...args);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Lets you asynchronously run
|
|
165
|
+
* non-[workletized](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#to-workletize)
|
|
166
|
+
* functions that couldn't otherwise run on the [UI
|
|
167
|
+
* thread](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#ui-thread).
|
|
168
|
+
* This applies to most external libraries as they don't have their functions
|
|
169
|
+
* marked with "worklet"; directive.
|
|
170
|
+
*
|
|
171
|
+
* @param fun - A reference to a function you want to execute on the JavaScript
|
|
172
|
+
* thread from the UI thread.
|
|
173
|
+
* @returns A function that accepts arguments for the function passed as the
|
|
174
|
+
* first argument.
|
|
175
|
+
* @see https://docs.swmansion.com/react-native-reanimated/docs/threading/runOnJS
|
|
176
|
+
*/
|
|
177
|
+
export function runOnJS(fun) {
|
|
178
|
+
'worklet';
|
|
179
|
+
|
|
180
|
+
if (SHOULD_BE_USE_WEB || !_WORKLET) {
|
|
181
|
+
// if we are already on the JS thread, we just schedule the worklet on the JS queue
|
|
182
|
+
return (...args) => queueMicrotask(args.length ? () => fun(...args) : fun);
|
|
183
|
+
}
|
|
184
|
+
if (isWorkletFunction(fun)) {
|
|
185
|
+
// If `fun` is a worklet, we schedule a call of a remote function `runWorkletOnJS`
|
|
186
|
+
// and pass the worklet as a first argument followed by original arguments.
|
|
187
|
+
|
|
188
|
+
return (...args) => runOnJS(runWorkletOnJS)(fun, ...args);
|
|
189
|
+
}
|
|
190
|
+
if (fun.__remoteFunction) {
|
|
191
|
+
// In development mode the function provided as `fun` throws an error message
|
|
192
|
+
// such that when someone accidentally calls it directly on the UI runtime, they
|
|
193
|
+
// see that they should use `runOnJS` instead. To facilitate that we put the
|
|
194
|
+
// reference to the original remote function in the `__remoteFunction` property.
|
|
195
|
+
fun = fun.__remoteFunction;
|
|
196
|
+
}
|
|
197
|
+
const scheduleOnJS = typeof fun === 'function' ? global._scheduleHostFunctionOnJS : global._scheduleRemoteFunctionOnJS;
|
|
198
|
+
return (...args) => {
|
|
199
|
+
scheduleOnJS(fun, args.length > 0 ?
|
|
200
|
+
// TODO TYPESCRIPT this cast is terrible but will be fixed
|
|
201
|
+
makeShareableCloneOnUIRecursive(args) : undefined);
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=threads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isJest","shouldBeUseWeb","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","isWorkletFunction","WorkletsError","WorkletsModule","IS_JEST","SHOULD_BE_USE_WEB","_runOnUIQueue","setupMicrotasks","microtasksQueue","isExecutingMicrotasksQueue","global","queueMicrotask","callback","push","_microtaskQueueFinalizers","__callMicrotasks","index","length","forEach","finalizer","callMicrotasksOnUIThread","callMicrotasks","runOnUI","worklet","__DEV__","_WORKLET","args","scheduleOnUI","queue","executeOnUIRuntimeSync","result","runOnUIImmediately","runWorkletOnJS","runOnJS","fun","__remoteFunction","scheduleOnJS","_scheduleHostFunctionOnJS","_scheduleRemoteFunctionOnJS","undefined"],"sourceRoot":"../../src","sources":["threads.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* eslint-disable reanimated/use-worklets-error */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
import { shouldBeUseWeb } from "./PlatformChecker.js";
|
|
5
|
+
import { isWorkletFunction } from "./workletFunction.js";
|
|
6
|
+
function valueUnpacker(objectToUnpack, category, remoteFunctionName) {
|
|
7
|
+
'worklet';
|
|
8
|
+
|
|
9
|
+
let workletsCache = global.__workletsCache;
|
|
10
|
+
let handleCache = global.__handleCache;
|
|
11
|
+
if (workletsCache === undefined) {
|
|
12
|
+
// init
|
|
13
|
+
workletsCache = global.__workletsCache = new Map();
|
|
14
|
+
handleCache = global.__handleCache = new WeakMap();
|
|
15
|
+
}
|
|
16
|
+
const workletHash = objectToUnpack.__workletHash;
|
|
17
|
+
if (workletHash !== undefined) {
|
|
18
|
+
let workletFun = workletsCache.get(workletHash);
|
|
19
|
+
if (workletFun === undefined) {
|
|
20
|
+
const initData = objectToUnpack.__initData;
|
|
21
|
+
if (global.evalWithSourceMap) {
|
|
22
|
+
// if the runtime (hermes only for now) supports loading source maps
|
|
23
|
+
// we want to use the proper filename for the location as it guarantees
|
|
24
|
+
// that debugger understands and loads the source code of the file where
|
|
25
|
+
// the worklet is defined.
|
|
26
|
+
workletFun = global.evalWithSourceMap('(' + initData.code + '\n)', initData.location, initData.sourceMap);
|
|
27
|
+
} else if (global.evalWithSourceUrl) {
|
|
28
|
+
// if the runtime doesn't support loading source maps, in dev mode we
|
|
29
|
+
// can pass source url when evaluating the worklet. Now, instead of using
|
|
30
|
+
// the actual file location we use worklet hash, as it the allows us to
|
|
31
|
+
// properly symbolicate traces (see errors.ts for details)
|
|
32
|
+
workletFun = global.evalWithSourceUrl('(' + initData.code + '\n)', `worklet_${workletHash}`);
|
|
33
|
+
} else {
|
|
34
|
+
// in release we use the regular eval to save on JSI calls
|
|
35
|
+
// eslint-disable-next-line no-eval
|
|
36
|
+
workletFun = eval('(' + initData.code + '\n)');
|
|
37
|
+
}
|
|
38
|
+
workletsCache.set(workletHash, workletFun);
|
|
39
|
+
}
|
|
40
|
+
const functionInstance = workletFun.bind(objectToUnpack);
|
|
41
|
+
objectToUnpack._recur = functionInstance;
|
|
42
|
+
return functionInstance;
|
|
43
|
+
} else if (objectToUnpack.__init !== undefined) {
|
|
44
|
+
let value = handleCache.get(objectToUnpack);
|
|
45
|
+
if (value === undefined) {
|
|
46
|
+
value = objectToUnpack.__init();
|
|
47
|
+
handleCache.set(objectToUnpack, value);
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
} else if (category === 'RemoteFunction') {
|
|
51
|
+
const fun = () => {
|
|
52
|
+
const label = remoteFunctionName ? `function \`${remoteFunctionName}\`` : 'anonymous function';
|
|
53
|
+
throw new Error(`[Worklets] Tried to synchronously call a non-worklet ${label} on the UI thread.
|
|
54
|
+
See https://docs.swmansion.com/react-native-reanimated/docs/guides/troubleshooting#tried-to-synchronously-call-a-non-worklet-function-on-the-ui-thread for more details.`);
|
|
55
|
+
};
|
|
56
|
+
fun.__remoteFunction = objectToUnpack;
|
|
57
|
+
return fun;
|
|
58
|
+
} else {
|
|
59
|
+
throw new Error(`[Worklets] Data type in category "${category}" not recognized by value unpacker: "${_toString(objectToUnpack)}".`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (__DEV__ && !shouldBeUseWeb()) {
|
|
63
|
+
const testWorklet = () => {
|
|
64
|
+
'worklet';
|
|
65
|
+
};
|
|
66
|
+
if (!isWorkletFunction(testWorklet)) {
|
|
67
|
+
throw new Error(`[Worklets] Failed to create a worklet. See https://docs.swmansion.com/react-native-reanimated/docs/guides/troubleshooting#failed-to-create-a-worklet for more details.`);
|
|
68
|
+
}
|
|
69
|
+
if (!isWorkletFunction(valueUnpacker)) {
|
|
70
|
+
throw new Error('[Worklets] `valueUnpacker` is not a worklet');
|
|
71
|
+
}
|
|
72
|
+
const closure = valueUnpacker.__closure;
|
|
73
|
+
if (closure === undefined) {
|
|
74
|
+
throw new Error('[Worklets] `valueUnpacker` closure is undefined');
|
|
75
|
+
}
|
|
76
|
+
if (Object.keys(closure).length !== 0) {
|
|
77
|
+
throw new Error('[Worklets] `valueUnpacker` must have empty closure');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export function getValueUnpackerCode() {
|
|
81
|
+
return valueUnpacker.__initData.code;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=valueUnpacker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["shouldBeUseWeb","isWorkletFunction","valueUnpacker","objectToUnpack","category","remoteFunctionName","workletsCache","global","__workletsCache","handleCache","__handleCache","undefined","Map","WeakMap","workletHash","__workletHash","workletFun","get","initData","__initData","evalWithSourceMap","code","location","sourceMap","evalWithSourceUrl","eval","set","functionInstance","bind","_recur","__init","value","fun","label","Error","__remoteFunction","_toString","__DEV__","testWorklet","closure","__closure","Object","keys","length","getValueUnpackerCode"],"sourceRoot":"../../src","sources":["valueUnpacker.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This function allows you to determine if a given function is a worklet. It
|
|
5
|
+
* only works with Reanimated Babel plugin enabled. Unless you are doing
|
|
6
|
+
* something with internals of Reanimated you shouldn't need to use this
|
|
7
|
+
* function.
|
|
8
|
+
*
|
|
9
|
+
* ### Note
|
|
10
|
+
*
|
|
11
|
+
* Do not call it before the worklet is declared, as it will always return false
|
|
12
|
+
* then. E.g.:
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* isWorkletFunction(myWorklet); // Will always return false.
|
|
16
|
+
*
|
|
17
|
+
* function myWorklet() {
|
|
18
|
+
* 'worklet';
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* ### Maintainer note
|
|
23
|
+
*
|
|
24
|
+
* This function is supposed to be used only in the React Runtime. It always
|
|
25
|
+
* returns `false` in Worklet Runtimes.
|
|
26
|
+
*/
|
|
27
|
+
export function isWorkletFunction(value) {
|
|
28
|
+
'worklet';
|
|
29
|
+
|
|
30
|
+
// Since host objects always return true for `in` operator, we have to use dot notation to check if the property exists.
|
|
31
|
+
// See https://github.com/facebook/hermes/blob/340726ef8cf666a7cce75bc60b02fa56b3e54560/lib/VM/JSObject.cpp#L1276.
|
|
32
|
+
return (
|
|
33
|
+
// `__workletHash` isn't extracted in Worklet Runtimes.
|
|
34
|
+
typeof value === 'function' && !!value.__workletHash
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=workletFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isWorkletFunction","value","__workletHash"],"sourceRoot":"../../src","sources":["workletFunction.ts"],"mappings":"AAAA,YAAY;;AAQZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAI/BC,KAAc,EAA2D;EACzE,SAAS;;EACT;EACA;EAEA;IACE;IACA,OAAOA,KAAK,KAAK,UAAU,IAC3B,CAAC,CAAEA,KAAK,CAAwCC;EAAa;AAEjE","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The below type is used for HostObjects returned by the JSI API that don't
|
|
5
|
+
* have any accessible fields or methods but can carry data that is accessed
|
|
6
|
+
* from the c++ side. We add a field to the type to make it possible for
|
|
7
|
+
* typescript to recognize which JSI methods accept those types as arguments and
|
|
8
|
+
* to be able to correctly type check other methods that may use them. However,
|
|
9
|
+
* this field is not actually defined nor should be used for anything else as
|
|
10
|
+
* assigning any data to those objects will throw an error.
|
|
11
|
+
*/
|
|
12
|
+
//# sourceMappingURL=workletTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["workletTypes.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function isJest(): boolean;
|
|
2
|
+
export declare function isChromeDebugger(): boolean;
|
|
3
|
+
export declare function isWeb(): boolean;
|
|
4
|
+
export declare function isAndroid(): boolean;
|
|
5
|
+
export declare function shouldBeUseWeb(): boolean;
|
|
6
|
+
export declare function isWindowAvailable(): boolean;
|
|
7
|
+
//# sourceMappingURL=PlatformChecker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformChecker.d.ts","sourceRoot":"","sources":["../../src/PlatformChecker.ts"],"names":[],"mappings":"AAOA,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAGD,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAMD,wBAAgB,cAAc,YAE7B;AAED,wBAAgB,iBAAiB,YAMhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkletsError.d.ts","sourceRoot":"","sources":["../../src/WorkletsError.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,uDAAgC,CAAC;AAK3D,wBAAgB,qBAAqB,SAGpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSWorklets.d.ts","sourceRoot":"","sources":["../../../src/WorkletsModule/JSWorklets.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,wBAAgB,sBAAsB,IAAI,eAAe,CAExD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeWorklets.d.ts","sourceRoot":"","sources":["../../../src/WorkletsModule/NativeWorklets.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAE/D,wBAAgB,0BAA0B,IAAI,eAAe,CAE5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/WorkletsModule/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EACV,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workletsModuleInstance.d.ts","sourceRoot":"","sources":["../../../src/WorkletsModule/workletsModuleInstance.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,iDAEK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workletsModuleInstance.web.d.ts","sourceRoot":"","sources":["../../../src/WorkletsModule/workletsModuleInstance.web.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,iDAA2B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ShareableRef, WorkletRuntime } from '../workletTypes';
|
|
2
|
+
/** Type of `__workletsModuleProxy` injected with JSI. */
|
|
3
|
+
export interface WorkletsModuleProxy {
|
|
4
|
+
makeShareableClone<TValue>(value: TValue, shouldPersistRemote: boolean, nativeStateSource?: object): ShareableRef<TValue>;
|
|
5
|
+
scheduleOnUI<TValue>(shareable: ShareableRef<TValue>): void;
|
|
6
|
+
executeOnUIRuntimeSync<TValue, TReturn>(shareable: ShareableRef<TValue>): TReturn;
|
|
7
|
+
createWorkletRuntime(name: string, initializer: ShareableRef<() => void>): WorkletRuntime;
|
|
8
|
+
scheduleOnRuntime<TValue>(workletRuntime: WorkletRuntime, worklet: ShareableRef<TValue>): void;
|
|
9
|
+
}
|
|
10
|
+
export interface IWorkletsModule extends WorkletsModuleProxy {
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=workletsModuleProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workletsModuleProxy.d.ts","sourceRoot":"","sources":["../../../src/WorkletsModule/workletsModuleProxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEpE,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,OAAO,EAC5B,iBAAiB,CAAC,EAAE,MAAM,GACzB,YAAY,CAAC,MAAM,CAAC,CAAC;IAExB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAE5D,sBAAsB,CAAC,MAAM,EAAE,OAAO,EACpC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC;IAEX,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,GACpC,cAAc,CAAC;IAElB,iBAAiB,CAAC,MAAM,EACtB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,GAC5B,IAAI,CAAC;CACT;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is Jest implementation of `requestAnimationFrame` that is required by
|
|
3
|
+
* React Native for test purposes.
|
|
4
|
+
*/
|
|
5
|
+
export declare function mockedRequestAnimationFrame(callback: (timestamp: number) => void): ReturnType<typeof setTimeout>;
|
|
6
|
+
//# sourceMappingURL=mockedRequestAnimationFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockedRequestAnimationFrame.d.ts","sourceRoot":"","sources":["../../../src/animationFrameQueue/mockedRequestAnimationFrame.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACpC,UAAU,CAAC,OAAO,UAAU,CAAC,CAE/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestAnimationFrame.d.ts","sourceRoot":"","sources":["../../../src/animationFrameQueue/requestAnimationFrame.ts"],"names":[],"mappings":"AAIA,wBAAgB,0BAA0B,SAoCzC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WorkletStackDetails } from './workletTypes';
|
|
2
|
+
export type CustomError<TName extends string> = Error & {
|
|
3
|
+
name: TName;
|
|
4
|
+
};
|
|
5
|
+
export interface CustomErrorConstructor<TName extends string> extends Error {
|
|
6
|
+
new (message?: string): CustomError<TName>;
|
|
7
|
+
(message?: string): CustomError<TName>;
|
|
8
|
+
readonly prototype: CustomError<TName>;
|
|
9
|
+
}
|
|
10
|
+
export declare function createCustomError<TName extends string>(name: TName): CustomErrorConstructor<TName>;
|
|
11
|
+
/** Registers custom errors in global scope. Use it only for Worklet runtimes. */
|
|
12
|
+
export declare function registerCustomError<TName extends string>(constructor: CustomErrorConstructor<TName>, name: TName): void;
|
|
13
|
+
export declare function registerWorkletStackDetails(hash: number, stackDetails: WorkletStackDetails): void;
|
|
14
|
+
export declare function reportFatalErrorOnJS({ message, stack, moduleName, }: {
|
|
15
|
+
message: string;
|
|
16
|
+
stack?: string;
|
|
17
|
+
moduleName: string;
|
|
18
|
+
}): void;
|
|
19
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAExE,MAAM,WAAW,sBAAsB,CAAC,KAAK,SAAS,MAAM,CAAE,SAAQ,KAAK;IACzE,KAAK,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CACxC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,EACpD,IAAI,EAAE,KAAK,GACV,sBAAsB,CAAC,KAAK,CAAC,CAa/B;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,MAAM,EACtD,WAAW,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAC1C,IAAI,EAAE,KAAK,QAUZ;AAID,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,mBAAmB,QAGlC;AAiCD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,UAAU,GACX,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,QAUA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type { CustomError } from './errors';
|
|
2
|
+
export { createCustomError, registerCustomError } from './errors';
|
|
3
|
+
export type { LoggerConfig } from './logger';
|
|
4
|
+
export { logger, LogLevel, registerLoggerConfig, updateLoggerConfig, } from './logger';
|
|
5
|
+
export { createWorkletRuntime, runOnRuntime } from './runtimes';
|
|
6
|
+
export { shareableMappingCache } from './shareableMappingCache';
|
|
7
|
+
export { makeShareable, makeShareableCloneOnUIRecursive, makeShareableCloneRecursive, } from './shareables';
|
|
8
|
+
export { callMicrotasks, executeOnUIRuntimeSync, runOnJS, runOnUI, runOnUIImmediately, } from './threads';
|
|
9
|
+
export { isWorkletFunction } from './workletFunction';
|
|
10
|
+
export type { IWorkletsModule, WorkletsModuleProxy } from './WorkletsModule';
|
|
11
|
+
export { WorkletsModule } from './WorkletsModule';
|
|
12
|
+
export type { ShareableRef, WorkletFunction, WorkletFunctionDev, WorkletRuntime, WorkletStackDetails, } from './workletTypes';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,aAAa,EACb,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IWorkletsModule } from './WorkletsModule';
|
|
2
|
+
export declare function callGuardDEV<Args extends unknown[], ReturnValue>(fn: (...args: Args) => ReturnValue, ...args: Args): ReturnValue | void;
|
|
3
|
+
export declare function setupCallGuard(): void;
|
|
4
|
+
export declare function setupConsole(): void;
|
|
5
|
+
export declare function initializeUIRuntime(WorkletsModule: IWorkletsModule): void;
|
|
6
|
+
//# sourceMappingURL=initializers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../src/initializers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAqCxD,wBAAgB,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EAC9D,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EAClC,GAAG,IAAI,EAAE,IAAI,GACZ,WAAW,GAAG,IAAI,CAWpB;AAED,wBAAgB,cAAc,SAY7B;AA6CD,wBAAgB,YAAY,SAe3B;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,eAAe,QA4BlE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type LogBoxLogLevel = 'warn' | 'error' | 'fatal' | 'syntax';
|
|
2
|
+
type Message = {
|
|
3
|
+
content: string;
|
|
4
|
+
substitutions: {
|
|
5
|
+
length: number;
|
|
6
|
+
offset: number;
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
type Category = string;
|
|
10
|
+
interface Location {
|
|
11
|
+
row: number;
|
|
12
|
+
column: number;
|
|
13
|
+
}
|
|
14
|
+
interface CodeFrame {
|
|
15
|
+
content: string;
|
|
16
|
+
location?: Location | null;
|
|
17
|
+
fileName: string;
|
|
18
|
+
collapse?: boolean;
|
|
19
|
+
}
|
|
20
|
+
type ComponentStack = CodeFrame[];
|
|
21
|
+
type ComponentStackType = 'legacy' | 'stack';
|
|
22
|
+
export type LogData = {
|
|
23
|
+
level: LogBoxLogLevel;
|
|
24
|
+
message: Message;
|
|
25
|
+
category: Category;
|
|
26
|
+
componentStack: ComponentStack;
|
|
27
|
+
componentStackType: ComponentStackType | null;
|
|
28
|
+
stack?: string;
|
|
29
|
+
};
|
|
30
|
+
export declare const addLogBoxLog: (data: LogData) => void;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=LogBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogBox.d.ts","sourceRoot":"","sources":["../../../src/logger/LogBox.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnE,KAAK,OAAO,GAAG;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrD,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,cAAc,GAAG,SAAS,EAAE,CAAC;AAElC,KAAK,kBAAkB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAaF,eAAO,MAAM,YAAY,SAVV,OAAO,KAAG,IAUuC,CAAC"}
|