@amazon-devices/react-native-worklets 1.0.0-rn-83
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/JSIWorkletsModuleProxy.cpp +712 -0
- package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.h +88 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +89 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +80 -0
- package/Common/cpp/worklets/Public/AsyncQueue.h +14 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +94 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.h +51 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +8 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +40 -0
- package/Common/cpp/worklets/Resources/SynchronizableUnpacker.cpp +49 -0
- package/Common/cpp/worklets/Resources/Unpackers.h +6 -0
- package/Common/cpp/worklets/Resources/ValueUnpacker.cpp +53 -0
- package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +62 -0
- package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.h +46 -0
- package/Common/cpp/worklets/RunLoop/EventLoop.cpp +112 -0
- package/Common/cpp/worklets/RunLoop/EventLoop.h +52 -0
- package/Common/cpp/worklets/SharedItems/Serializable.cpp +545 -0
- package/Common/cpp/worklets/SharedItems/Serializable.h +473 -0
- package/Common/cpp/worklets/SharedItems/Synchronizable.cpp +67 -0
- package/Common/cpp/worklets/SharedItems/Synchronizable.h +59 -0
- package/Common/cpp/worklets/SharedItems/SynchronizableAccess.cpp +81 -0
- package/Common/cpp/worklets/SharedItems/SynchronizableAccess.h +45 -0
- package/Common/cpp/worklets/Tools/Defs.h +10 -0
- package/Common/cpp/worklets/Tools/FeatureFlags.cpp +15 -0
- package/Common/cpp/worklets/Tools/FeatureFlags.h +44 -0
- package/Common/cpp/worklets/Tools/JSISerializer.cpp +342 -0
- package/Common/cpp/worklets/Tools/JSISerializer.h +51 -0
- package/Common/cpp/worklets/Tools/JSLogger.cpp +68 -0
- package/Common/cpp/worklets/Tools/JSLogger.h +37 -0
- package/Common/cpp/worklets/Tools/JSScheduler.cpp +24 -0
- package/Common/cpp/worklets/Tools/JSScheduler.h +39 -0
- package/Common/cpp/worklets/Tools/PlatformLogger.h +16 -0
- package/Common/cpp/worklets/Tools/SingleInstanceChecker.h +82 -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 +26 -0
- package/Common/cpp/worklets/Tools/VersionUtils.cpp +75 -0
- package/Common/cpp/worklets/Tools/VersionUtils.h +28 -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 +46 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +208 -0
- package/Common/cpp/worklets/Tools/WorkletsSystraceSection.h +161 -0
- package/Common/cpp/worklets/Tools/WorkletsVersion.cpp +54 -0
- package/Common/cpp/worklets/Tools/WorkletsVersion.h +20 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +38 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +21 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeData.cpp +3 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeData.h +12 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +191 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeKind.h +16 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +105 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +63 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.cpp +23 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.h +16 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.cpp +119 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.h +134 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +244 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +102 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +36 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +308 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +26 -0
- package/LICENSE +7 -0
- package/README.md +31 -0
- package/RNWorklets.podspec +94 -0
- package/SystemBundles/cc12deac6e91c435b76698c8445aed85612f2f88e733218d14f88a35d06fb0f4.bundle +10512 -0
- package/SystemBundles/cc12deac6e91c435b76698c8445aed85612f2f88e733218d14f88a35d06fb0f4.map +3771 -0
- package/SystemModules/amzn__react-native-worklets-1.modules.txt +39 -0
- package/SystemModules/amzn__react-native-worklets-1.private.modules.txt +61 -0
- package/SystemModules/keplerscript-system-bundle-config.json +7 -0
- package/android/CMakeLists.txt +124 -0
- package/android/build.gradle +350 -0
- package/android/gradle.properties +5 -0
- package/android/proguard-rules.pro +3 -0
- package/android/spotless.gradle +9 -0
- package/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java +149 -0
- package/android/src/legacyBundling/com/swmansion/worklets/WorkletsModule.java +122 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.cpp +63 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.h +43 -0
- package/android/src/main/cpp/worklets/android/AnimationFrameCallback.h +34 -0
- package/android/src/main/cpp/worklets/android/PlatformLogger.cpp +29 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +115 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.h +78 -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/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 +73 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsPackage.java +48 -0
- package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameCallback.java +19 -0
- package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameQueue.java +113 -0
- package/apple/worklets/apple/AnimationFrameQueue.h +15 -0
- package/apple/worklets/apple/AnimationFrameQueue.mm +135 -0
- package/apple/worklets/apple/AssertJavaScriptQueue.h +14 -0
- package/apple/worklets/apple/AssertTurboModuleManagerQueue.h +16 -0
- package/apple/worklets/apple/IOSUIScheduler.h +15 -0
- package/apple/worklets/apple/IOSUIScheduler.mm +29 -0
- package/apple/worklets/apple/PlatformLogger.mm +31 -0
- package/apple/worklets/apple/SlowAnimations.h +8 -0
- package/apple/worklets/apple/SlowAnimations.mm +45 -0
- package/apple/worklets/apple/WorkletsDisplayLink.h +21 -0
- package/apple/worklets/apple/WorkletsMessageThread.h +16 -0
- package/apple/worklets/apple/WorkletsMessageThread.mm +31 -0
- package/apple/worklets/apple/WorkletsModule.h +28 -0
- package/apple/worklets/apple/WorkletsModule.mm +121 -0
- package/bundleMode/index.d.ts +3 -0
- package/bundleMode/index.js +59 -0
- package/compatibility.json +11 -0
- package/kepler-compatibility.json +5 -0
- package/kepler-transformed-package-info.json +3 -0
- package/lib/module/PlatformChecker/PlatformChecker.js +8 -0
- package/lib/module/PlatformChecker/PlatformChecker.js.map +1 -0
- package/lib/module/PlatformChecker/index.js +18 -0
- package/lib/module/PlatformChecker/index.js.map +1 -0
- package/lib/module/WorkletsError.js +29 -0
- package/lib/module/WorkletsError.js.map +1 -0
- package/lib/module/WorkletsModule/JSWorklets.js +111 -0
- package/lib/module/WorkletsModule/JSWorklets.js.map +1 -0
- package/lib/module/WorkletsModule/NativeWorklets.js +126 -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/bundleUnpacker.js +47 -0
- package/lib/module/bundleUnpacker.js.map +1 -0
- package/lib/module/callGuard.js +30 -0
- package/lib/module/callGuard.js.map +1 -0
- package/lib/module/deprecated.js +20 -0
- package/lib/module/deprecated.js.map +1 -0
- package/lib/module/errors.js +69 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/featureFlags/index.js +48 -0
- package/lib/module/featureFlags/index.js.map +1 -0
- package/lib/module/featureFlags/staticFlags.json +4 -0
- package/lib/module/index.js +26 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/initializers.js +221 -0
- package/lib/module/initializers.js.map +1 -0
- package/lib/module/isSynchronizable.js +6 -0
- package/lib/module/isSynchronizable.js.map +1 -0
- package/lib/module/logger.js +15 -0
- package/lib/module/logger.js.map +1 -0
- package/lib/module/privateGlobals.d.js +7 -0
- package/lib/module/privateGlobals.d.js.map +1 -0
- package/lib/module/publicGlobals.js +6 -0
- package/lib/module/publicGlobals.js.map +1 -0
- package/lib/module/runLoop/common/setImmediatePolyfill.js +15 -0
- package/lib/module/runLoop/common/setImmediatePolyfill.js.map +1 -0
- package/lib/module/runLoop/common/setIntervalPolyfill.js +26 -0
- package/lib/module/runLoop/common/setIntervalPolyfill.js.map +1 -0
- package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js +10 -0
- package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js.map +1 -0
- package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js +52 -0
- package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js.map +1 -0
- package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js +32 -0
- package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/index.js +19 -0
- package/lib/module/runLoop/workletRuntime/index.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/queueMicrotask.js +11 -0
- package/lib/module/runLoop/workletRuntime/queueMicrotask.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js +48 -0
- package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/setTimeout.js +28 -0
- package/lib/module/runLoop/workletRuntime/setTimeout.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/taskQueue.js +37 -0
- package/lib/module/runLoop/workletRuntime/taskQueue.js.map +1 -0
- package/lib/module/runtimeKind.js +39 -0
- package/lib/module/runtimeKind.js.map +1 -0
- package/lib/module/runtimes.js +100 -0
- package/lib/module/runtimes.js.map +1 -0
- package/lib/module/serializable.js +568 -0
- package/lib/module/serializable.js.map +1 -0
- package/lib/module/serializableMappingCache.js +37 -0
- package/lib/module/serializableMappingCache.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/NativeWorkletsModule.kepler.js +7 -0
- package/lib/module/specs/NativeWorkletsModule.kepler.js.map +1 -0
- package/lib/module/specs/index.js +10 -0
- package/lib/module/specs/index.js.map +1 -0
- package/lib/module/synchronizable.js +9 -0
- package/lib/module/synchronizable.js.map +1 -0
- package/lib/module/synchronizableUnpacker.js +42 -0
- package/lib/module/synchronizableUnpacker.js.map +1 -0
- package/lib/module/threads.js +347 -0
- package/lib/module/threads.js.map +1 -0
- package/lib/module/utils/checkCppVersion.js +30 -0
- package/lib/module/utils/checkCppVersion.js.map +1 -0
- package/lib/module/utils/jsVersion.js +9 -0
- package/lib/module/utils/jsVersion.js.map +1 -0
- package/lib/module/valueUnpacker.js +60 -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/workletRuntimeEntry.js +32 -0
- package/lib/module/workletRuntimeEntry.js.map +1 -0
- package/lib/module/workletTypes.js +12 -0
- package/lib/module/workletTypes.js.map +1 -0
- package/lib/typescript/PlatformChecker/PlatformChecker.d.ts +5 -0
- package/lib/typescript/PlatformChecker/PlatformChecker.d.ts.map +1 -0
- package/lib/typescript/PlatformChecker/index.d.ts +10 -0
- package/lib/typescript/PlatformChecker/index.d.ts.map +1 -0
- package/lib/typescript/WorkletsError.d.ts +15 -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 +3 -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 +37 -0
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -0
- package/lib/typescript/bundleUnpacker.d.ts +7 -0
- package/lib/typescript/bundleUnpacker.d.ts.map +1 -0
- package/lib/typescript/callGuard.d.ts +4 -0
- package/lib/typescript/callGuard.d.ts.map +1 -0
- package/lib/typescript/deprecated.d.ts +20 -0
- package/lib/typescript/deprecated.d.ts.map +1 -0
- package/lib/typescript/errors.d.ts +16 -0
- package/lib/typescript/errors.d.ts.map +1 -0
- package/lib/typescript/featureFlags/index.d.ts +23 -0
- package/lib/typescript/featureFlags/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +17 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/initializers.d.ts +17 -0
- package/lib/typescript/initializers.d.ts.map +1 -0
- package/lib/typescript/isSynchronizable.d.ts +3 -0
- package/lib/typescript/isSynchronizable.d.ts.map +1 -0
- package/lib/typescript/logger.d.ts +5 -0
- package/lib/typescript/logger.d.ts.map +1 -0
- package/lib/typescript/publicGlobals.d.ts +31 -0
- package/lib/typescript/publicGlobals.d.ts.map +1 -0
- package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts +6 -0
- package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts.map +1 -0
- package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts +2 -0
- package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts.map +1 -0
- package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/index.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/index.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts +10 -0
- package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts.map +1 -0
- package/lib/typescript/runtimeKind.d.ts +25 -0
- package/lib/typescript/runtimeKind.d.ts.map +1 -0
- package/lib/typescript/runtimes.d.ts +77 -0
- package/lib/typescript/runtimes.d.ts.map +1 -0
- package/lib/typescript/serializable.d.ts +20 -0
- package/lib/typescript/serializable.d.ts.map +1 -0
- package/lib/typescript/serializableMappingCache.d.ts +16 -0
- package/lib/typescript/serializableMappingCache.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/NativeWorkletsModule.kepler.d.ts +7 -0
- package/lib/typescript/specs/NativeWorkletsModule.kepler.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/synchronizable.d.ts +15 -0
- package/lib/typescript/synchronizable.d.ts.map +1 -0
- package/lib/typescript/synchronizableUnpacker.d.ts +4 -0
- package/lib/typescript/synchronizableUnpacker.d.ts.map +1 -0
- package/lib/typescript/threads.d.ts +138 -0
- package/lib/typescript/threads.d.ts.map +1 -0
- package/lib/typescript/utils/checkCppVersion.d.ts +3 -0
- package/lib/typescript/utils/checkCppVersion.d.ts.map +1 -0
- package/lib/typescript/utils/jsVersion.d.ts +7 -0
- package/lib/typescript/utils/jsVersion.d.ts.map +1 -0
- package/lib/typescript/valueUnpacker.d.ts +6 -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/workletRuntimeEntry.d.ts +14 -0
- package/lib/typescript/workletRuntimeEntry.d.ts.map +1 -0
- package/lib/typescript/workletTypes.d.ts +61 -0
- package/lib/typescript/workletTypes.d.ts.map +1 -0
- package/package.json +153 -0
- package/plugin/index.js +1761 -0
- package/react-native.config.js +21 -0
- package/scripts/validate-react-native-version.js +43 -0
- package/scripts/worklets_utils.rb +94 -0
- package/src/PlatformChecker/PlatformChecker.ts +7 -0
- package/src/PlatformChecker/index.ts +30 -0
- package/src/WorkletsError.ts +36 -0
- package/src/WorkletsModule/JSWorklets.ts +200 -0
- package/src/WorkletsModule/NativeWorklets.ts +256 -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 +126 -0
- package/src/bundleUnpacker.ts +75 -0
- package/src/callGuard.ts +33 -0
- package/src/deprecated.ts +32 -0
- package/src/errors.ts +80 -0
- package/src/featureFlags/index.ts +72 -0
- package/src/featureFlags/staticFlags.json +4 -0
- package/src/index.ts +53 -0
- package/src/initializers.ts +262 -0
- package/src/isSynchronizable.ts +13 -0
- package/src/logger.ts +16 -0
- package/src/privateGlobals.d.ts +79 -0
- package/src/publicGlobals.ts +39 -0
- package/src/runLoop/common/setImmediatePolyfill.ts +20 -0
- package/src/runLoop/common/setIntervalPolyfill.ts +38 -0
- package/src/runLoop/uiRuntime/mockedRequestAnimationFrame.ts +11 -0
- package/src/runLoop/uiRuntime/requestAnimationFrame.ts +66 -0
- package/src/runLoop/uiRuntime/setTimeoutPolyfill.ts +40 -0
- package/src/runLoop/workletRuntime/index.ts +18 -0
- package/src/runLoop/workletRuntime/queueMicrotask.ts +13 -0
- package/src/runLoop/workletRuntime/requestAnimationFramePolyfill.ts +61 -0
- package/src/runLoop/workletRuntime/setTimeout.ts +37 -0
- package/src/runLoop/workletRuntime/taskQueue.ts +44 -0
- package/src/runtimeKind.ts +37 -0
- package/src/runtimes.ts +193 -0
- package/src/serializable.ts +801 -0
- package/src/serializableMappingCache.ts +42 -0
- package/src/specs/NativeWorkletsModule.kepler.ts +11 -0
- package/src/specs/NativeWorkletsModule.ts +9 -0
- package/src/specs/index.ts +13 -0
- package/src/synchronizable.ts +32 -0
- package/src/synchronizableUnpacker.ts +67 -0
- package/src/threads.ts +452 -0
- package/src/utils/checkCppVersion.ts +34 -0
- package/src/utils/jsVersion.ts +7 -0
- package/src/valueUnpacker.ts +90 -0
- package/src/workletFunction.ts +42 -0
- package/src/workletRuntimeEntry.ts +35 -0
- package/src/workletTypes.ts +81 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { SHOULD_BE_USE_WEB } from '../PlatformChecker';
|
|
4
|
+
import { createJSWorkletsModule } from './JSWorklets';
|
|
5
|
+
import { createNativeWorkletsModule } from './NativeWorklets';
|
|
6
|
+
|
|
7
|
+
export const WorkletsModule = SHOULD_BE_USE_WEB
|
|
8
|
+
? createJSWorkletsModule()
|
|
9
|
+
: createNativeWorkletsModule();
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import type { SynchronizableRef } from '../synchronizable';
|
|
4
|
+
import type { SerializableRef, WorkletRuntime } from '../workletTypes';
|
|
5
|
+
|
|
6
|
+
/** Type of `__workletsModuleProxy` injected with JSI. */
|
|
7
|
+
export interface WorkletsModuleProxy {
|
|
8
|
+
createSerializable<TValue>(
|
|
9
|
+
value: TValue,
|
|
10
|
+
shouldPersistRemote: boolean,
|
|
11
|
+
nativeStateSource?: object
|
|
12
|
+
): SerializableRef<TValue>;
|
|
13
|
+
|
|
14
|
+
createSerializableImport<TValue>(
|
|
15
|
+
source: string,
|
|
16
|
+
imported: string
|
|
17
|
+
): SerializableRef<TValue>;
|
|
18
|
+
|
|
19
|
+
createSerializableString(str: string): SerializableRef<string>;
|
|
20
|
+
|
|
21
|
+
createSerializableNumber(num: number): SerializableRef<number>;
|
|
22
|
+
|
|
23
|
+
createSerializableBoolean(bool: boolean): SerializableRef<boolean>;
|
|
24
|
+
|
|
25
|
+
createSerializableBigInt(bigInt: bigint): SerializableRef<bigint>;
|
|
26
|
+
|
|
27
|
+
createSerializableUndefined(): SerializableRef<undefined>;
|
|
28
|
+
|
|
29
|
+
createSerializableNull(): SerializableRef<null>;
|
|
30
|
+
|
|
31
|
+
createSerializableTurboModuleLike<
|
|
32
|
+
TProps extends object,
|
|
33
|
+
TProto extends object,
|
|
34
|
+
>(
|
|
35
|
+
props: TProps,
|
|
36
|
+
proto: TProto
|
|
37
|
+
): SerializableRef<TProps>;
|
|
38
|
+
|
|
39
|
+
createSerializableObject<T extends object>(
|
|
40
|
+
obj: T,
|
|
41
|
+
shouldRetainRemote: boolean,
|
|
42
|
+
nativeStateSource?: object
|
|
43
|
+
): SerializableRef<T>;
|
|
44
|
+
|
|
45
|
+
createSerializableHostObject<T extends object>(obj: T): SerializableRef<T>;
|
|
46
|
+
|
|
47
|
+
createSerializableArray(
|
|
48
|
+
array: unknown[],
|
|
49
|
+
shouldRetainRemote: boolean
|
|
50
|
+
): SerializableRef<unknown[]>;
|
|
51
|
+
|
|
52
|
+
createSerializableMap<TKey, TValue>(
|
|
53
|
+
keys: TKey[],
|
|
54
|
+
values: TValue[]
|
|
55
|
+
): SerializableRef<Map<TKey, TValue>>;
|
|
56
|
+
|
|
57
|
+
createSerializableSet<TValues>(
|
|
58
|
+
values: TValues[]
|
|
59
|
+
): SerializableRef<Set<TValues>>;
|
|
60
|
+
|
|
61
|
+
createSerializableInitializer(obj: object): SerializableRef<object>;
|
|
62
|
+
|
|
63
|
+
createSerializableFunction<TArgs extends unknown[], TReturn>(
|
|
64
|
+
func: (...args: TArgs) => TReturn
|
|
65
|
+
): SerializableRef<TReturn>;
|
|
66
|
+
|
|
67
|
+
createSerializableWorklet(
|
|
68
|
+
worklet: object,
|
|
69
|
+
shouldPersistRemote: boolean
|
|
70
|
+
): SerializableRef<object>;
|
|
71
|
+
|
|
72
|
+
scheduleOnUI<TValue>(serializable: SerializableRef<TValue>): void;
|
|
73
|
+
|
|
74
|
+
executeOnUIRuntimeSync<TValue, TReturn>(
|
|
75
|
+
serializable: SerializableRef<TValue>
|
|
76
|
+
): TReturn;
|
|
77
|
+
|
|
78
|
+
createWorkletRuntime(
|
|
79
|
+
name: string,
|
|
80
|
+
initializer: SerializableRef<() => void>,
|
|
81
|
+
useDefaultQueue: boolean,
|
|
82
|
+
customQueue: object | undefined,
|
|
83
|
+
enableEventLoop: boolean
|
|
84
|
+
): WorkletRuntime;
|
|
85
|
+
|
|
86
|
+
scheduleOnRuntime<TValue>(
|
|
87
|
+
workletRuntime: WorkletRuntime,
|
|
88
|
+
worklet: SerializableRef<TValue>
|
|
89
|
+
): void;
|
|
90
|
+
|
|
91
|
+
reportFatalErrorOnJS(
|
|
92
|
+
message: string,
|
|
93
|
+
stack: string,
|
|
94
|
+
name: string,
|
|
95
|
+
jsEngine: string
|
|
96
|
+
): void;
|
|
97
|
+
|
|
98
|
+
createSynchronizable<TValue>(value: TValue): SynchronizableRef<TValue>;
|
|
99
|
+
|
|
100
|
+
synchronizableGetDirty<TValue>(
|
|
101
|
+
synchronizableRef: SynchronizableRef<TValue>
|
|
102
|
+
): TValue;
|
|
103
|
+
|
|
104
|
+
synchronizableGetBlocking<TValue>(
|
|
105
|
+
synchronizableRef: SynchronizableRef<TValue>
|
|
106
|
+
): TValue;
|
|
107
|
+
|
|
108
|
+
synchronizableSetBlocking<TValue>(
|
|
109
|
+
synchronizableRef: SynchronizableRef<TValue>,
|
|
110
|
+
value: SerializableRef<TValue>
|
|
111
|
+
): void;
|
|
112
|
+
|
|
113
|
+
synchronizableLock<TValue>(
|
|
114
|
+
synchronizableRef: SynchronizableRef<TValue>
|
|
115
|
+
): void;
|
|
116
|
+
|
|
117
|
+
synchronizableUnlock<TValue>(
|
|
118
|
+
synchronizableRef: SynchronizableRef<TValue>
|
|
119
|
+
): void;
|
|
120
|
+
|
|
121
|
+
getStaticFeatureFlag(name: string): boolean;
|
|
122
|
+
|
|
123
|
+
setDynamicFeatureFlag(name: string, value: boolean): void;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export type IWorkletsModule = WorkletsModuleProxy;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
import { logger } from './logger';
|
|
3
|
+
import { WorkletsError } from './WorkletsError';
|
|
4
|
+
import type { WorkletFactory, WorkletFunction } from './workletTypes';
|
|
5
|
+
|
|
6
|
+
const handleCache = new WeakMap<WorkletFunction, unknown>();
|
|
7
|
+
|
|
8
|
+
export function bundleValueUnpacker(
|
|
9
|
+
objectToUnpack: ObjectToUnpack,
|
|
10
|
+
category?: string,
|
|
11
|
+
remoteFunctionName?: string
|
|
12
|
+
): unknown {
|
|
13
|
+
const workletHash = objectToUnpack.__workletHash;
|
|
14
|
+
if (workletHash !== undefined) {
|
|
15
|
+
return getWorklet(workletHash, objectToUnpack.__closure);
|
|
16
|
+
} else if (objectToUnpack.__init !== undefined) {
|
|
17
|
+
let value = handleCache.get(objectToUnpack);
|
|
18
|
+
if (value === undefined) {
|
|
19
|
+
value = objectToUnpack.__init();
|
|
20
|
+
handleCache.set(objectToUnpack, value);
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
} else if (category === 'RemoteFunction') {
|
|
24
|
+
const remoteFunctionHolder = () => {
|
|
25
|
+
const label = remoteFunctionName
|
|
26
|
+
? `function \`${remoteFunctionName}\``
|
|
27
|
+
: 'anonymous function';
|
|
28
|
+
throw new WorkletsError(`Tried to synchronously call a non-worklet ${label} on the UI thread.
|
|
29
|
+
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.`);
|
|
30
|
+
};
|
|
31
|
+
remoteFunctionHolder.__remoteFunction = objectToUnpack;
|
|
32
|
+
return remoteFunctionHolder;
|
|
33
|
+
} else {
|
|
34
|
+
throw new WorkletsError(
|
|
35
|
+
`Data type in category "${category}" not recognized by value unpacker: "${globalThis._toString(
|
|
36
|
+
objectToUnpack
|
|
37
|
+
)}".`
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getWorklet(
|
|
43
|
+
workletHash: number,
|
|
44
|
+
closureVariables: Record<string, unknown>
|
|
45
|
+
): WorkletFunction | undefined {
|
|
46
|
+
let worklet;
|
|
47
|
+
if (__DEV__) {
|
|
48
|
+
try {
|
|
49
|
+
worklet = getWorkletFromMetroRequire(workletHash, closureVariables);
|
|
50
|
+
} catch (_e) {
|
|
51
|
+
logger.error(
|
|
52
|
+
'Unable to resolve worklet with hash ' +
|
|
53
|
+
workletHash +
|
|
54
|
+
'. Try reloading the app.'
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
worklet = getWorkletFromMetroRequire(workletHash, closureVariables);
|
|
59
|
+
}
|
|
60
|
+
return worklet;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const metroRequire = globalThis.__r;
|
|
64
|
+
|
|
65
|
+
function getWorkletFromMetroRequire(
|
|
66
|
+
workletHash: number,
|
|
67
|
+
closureVariables: Record<string, unknown>
|
|
68
|
+
): WorkletFunction {
|
|
69
|
+
const factory = metroRequire(workletHash).default as WorkletFactory;
|
|
70
|
+
return factory(closureVariables);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
interface ObjectToUnpack extends WorkletFunction {
|
|
74
|
+
_recur: unknown;
|
|
75
|
+
}
|
package/src/callGuard.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import type { RNError } from './errors';
|
|
4
|
+
|
|
5
|
+
/** Used only with debug builds. */
|
|
6
|
+
export function callGuardDEV<Args extends unknown[], ReturnValue>(
|
|
7
|
+
fn: (...args: Args) => ReturnValue,
|
|
8
|
+
...args: Args
|
|
9
|
+
): ReturnValue | void {
|
|
10
|
+
'worklet';
|
|
11
|
+
try {
|
|
12
|
+
return fn(...args);
|
|
13
|
+
} catch (error) {
|
|
14
|
+
if (globalThis.__workletsModuleProxy) {
|
|
15
|
+
const { message, stack, name, jsEngine } = error as RNError;
|
|
16
|
+
globalThis.__workletsModuleProxy.reportFatalErrorOnJS(
|
|
17
|
+
message,
|
|
18
|
+
stack ?? '',
|
|
19
|
+
name ?? 'WorkletsError',
|
|
20
|
+
jsEngine ?? 'Worklets'
|
|
21
|
+
);
|
|
22
|
+
} else {
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function setupCallGuard() {
|
|
29
|
+
'worklet';
|
|
30
|
+
if (!globalThis.__callGuardDEV) {
|
|
31
|
+
globalThis.__callGuardDEV = callGuardDEV;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
createSerializable,
|
|
5
|
+
isSerializableRef,
|
|
6
|
+
makeShareable,
|
|
7
|
+
makeShareableCloneOnUIRecursive,
|
|
8
|
+
} from './serializable';
|
|
9
|
+
import { serializableMappingCache } from './serializableMappingCache';
|
|
10
|
+
import type { SerializableRef } from './workletTypes';
|
|
11
|
+
|
|
12
|
+
/** @deprecated Use {@link SerializableRef} instead. */
|
|
13
|
+
export type ShareableRef<T> = SerializableRef<T>;
|
|
14
|
+
|
|
15
|
+
export { makeShareable, makeShareableCloneOnUIRecursive };
|
|
16
|
+
|
|
17
|
+
/** @deprecated It will be removed in the next major version. */
|
|
18
|
+
export type MakeShareableClone = <T>(
|
|
19
|
+
value: T,
|
|
20
|
+
shouldPersistRemote?: boolean,
|
|
21
|
+
depth?: number
|
|
22
|
+
) => ShareableRef<T>;
|
|
23
|
+
|
|
24
|
+
/** @deprecated Use {@link createSerializable} instead. */
|
|
25
|
+
export const makeShareableCloneRecursive: MakeShareableClone =
|
|
26
|
+
createSerializable;
|
|
27
|
+
|
|
28
|
+
/** @deprecated Use {@link isSerializableRef} instead. */
|
|
29
|
+
export const isShareableRef = isSerializableRef;
|
|
30
|
+
|
|
31
|
+
/** @deprecated Use {@link serializableMappingCache} instead. */
|
|
32
|
+
export const shareableMappingCache = serializableMappingCache;
|
package/src/errors.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { WorkletsError } from './WorkletsError';
|
|
4
|
+
import type { WorkletStackDetails } from './workletTypes';
|
|
5
|
+
|
|
6
|
+
const _workletStackDetails = new Map<number, WorkletStackDetails>();
|
|
7
|
+
|
|
8
|
+
export function registerWorkletStackDetails(
|
|
9
|
+
hash: number,
|
|
10
|
+
stackDetails: WorkletStackDetails
|
|
11
|
+
) {
|
|
12
|
+
_workletStackDetails.set(hash, stackDetails);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function getBundleOffset(error: Error): [string, number, number] {
|
|
16
|
+
const frame = error.stack?.split('\n')?.[0];
|
|
17
|
+
if (frame) {
|
|
18
|
+
const parsedFrame = /@([^@]+):(\d+):(\d+)/.exec(frame);
|
|
19
|
+
if (parsedFrame) {
|
|
20
|
+
const [, file, line, col] = parsedFrame;
|
|
21
|
+
return [file, Number(line), Number(col)];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return ['unknown', 0, 0];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function processStack(stack?: string): string | undefined {
|
|
28
|
+
if (stack === '' || stack === undefined) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const workletStackEntries = stack.match(/worklet_(\d+):(\d+):(\d+)/g);
|
|
32
|
+
let result = stack;
|
|
33
|
+
workletStackEntries?.forEach((match) => {
|
|
34
|
+
const [, hash, origLine, origCol] = match.split(/:|_/).map(Number);
|
|
35
|
+
const errorDetails = _workletStackDetails.get(hash);
|
|
36
|
+
if (!errorDetails) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const [error, lineOffset, colOffset] = errorDetails;
|
|
40
|
+
const [bundleFile, bundleLine, bundleCol] = getBundleOffset(error);
|
|
41
|
+
const line = origLine + bundleLine + lineOffset;
|
|
42
|
+
const col = origCol + bundleCol + colOffset;
|
|
43
|
+
|
|
44
|
+
result = result.replace(match, `${bundleFile}:${line}:${col}`);
|
|
45
|
+
});
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface RNError extends Error {
|
|
50
|
+
jsEngine: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Remote error is an error coming from a Worklet Runtime that we bubble up to
|
|
55
|
+
* the RN Runtime.
|
|
56
|
+
*/
|
|
57
|
+
export function reportFatalRemoteError(
|
|
58
|
+
{ message, stack, name, jsEngine }: RNError,
|
|
59
|
+
force: boolean
|
|
60
|
+
): void {
|
|
61
|
+
const error = new WorkletsError() as RNError;
|
|
62
|
+
error.message = message;
|
|
63
|
+
error.stack = processStack(stack);
|
|
64
|
+
error.name = name;
|
|
65
|
+
error.jsEngine = jsEngine;
|
|
66
|
+
if (force) {
|
|
67
|
+
throw error;
|
|
68
|
+
} else {
|
|
69
|
+
// @ts-expect-error React Native's `ErrorUtils` are hidden from the global scope.
|
|
70
|
+
globalThis.ErrorUtils.reportFatalError(error);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Registers `reportFatalRemoteError` function in global scope to allow to
|
|
76
|
+
* invoke it from C++.
|
|
77
|
+
*/
|
|
78
|
+
export function registerReportFatalRemoteError() {
|
|
79
|
+
globalThis.__reportFatalRemoteError = reportFatalRemoteError;
|
|
80
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
import { logger } from '../logger';
|
|
3
|
+
import { WorkletsModule } from '../WorkletsModule';
|
|
4
|
+
import type StaticFeatureFlagsJSON from './staticFlags.json';
|
|
5
|
+
|
|
6
|
+
type DynamicFlagsType = {
|
|
7
|
+
EXAMPLE_DYNAMIC_FLAG: boolean;
|
|
8
|
+
init(): void;
|
|
9
|
+
setFlag(name: DynamicFlagName, value: boolean): void;
|
|
10
|
+
};
|
|
11
|
+
type DynamicFlagName = keyof Omit<Omit<DynamicFlagsType, 'setFlag'>, 'init'>;
|
|
12
|
+
|
|
13
|
+
export const DynamicFlags: DynamicFlagsType = {
|
|
14
|
+
EXAMPLE_DYNAMIC_FLAG: true,
|
|
15
|
+
|
|
16
|
+
init() {
|
|
17
|
+
Object.keys(DynamicFlags).forEach((key) => {
|
|
18
|
+
if (key !== 'init' && key !== 'setFlag') {
|
|
19
|
+
WorkletsModule.setDynamicFeatureFlag(
|
|
20
|
+
key,
|
|
21
|
+
DynamicFlags[key as DynamicFlagName]
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
setFlag(name, value) {
|
|
27
|
+
if (name in DynamicFlags) {
|
|
28
|
+
DynamicFlags[name] = value;
|
|
29
|
+
WorkletsModule.setDynamicFeatureFlag(name, value);
|
|
30
|
+
} else {
|
|
31
|
+
logger.warn(
|
|
32
|
+
`The feature flag: '${name}' no longer exists, you can safely remove invocation of \`setDynamicFeatureFlag('${name}')\` from your code.`
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
DynamicFlags.init();
|
|
38
|
+
// Public API function to update a feature flag
|
|
39
|
+
export function setDynamicFeatureFlag(
|
|
40
|
+
name: DynamicFlagName,
|
|
41
|
+
value: boolean
|
|
42
|
+
): void {
|
|
43
|
+
DynamicFlags.setFlag(name, value);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* This constant is needed for typechecking and preserving static typechecks in
|
|
48
|
+
* generated .d.ts files. Without it, the static flags resolve to an object
|
|
49
|
+
* without specific keys.
|
|
50
|
+
*/
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
52
|
+
const DefaultStaticFeatureFlags = {
|
|
53
|
+
RUNTIME_TEST_FLAG: false,
|
|
54
|
+
IOS_DYNAMIC_FRAMERATE_ENABLED: false,
|
|
55
|
+
} as const satisfies typeof StaticFeatureFlagsJSON;
|
|
56
|
+
|
|
57
|
+
type StaticFeatureFlagsSchema = {
|
|
58
|
+
-readonly [K in keyof typeof DefaultStaticFeatureFlags]: boolean;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const staticFeatureFlags: Partial<StaticFeatureFlagsSchema> = {};
|
|
62
|
+
|
|
63
|
+
export function getStaticFeatureFlag(
|
|
64
|
+
name: keyof StaticFeatureFlagsSchema
|
|
65
|
+
): boolean {
|
|
66
|
+
if (name in staticFeatureFlags) {
|
|
67
|
+
return staticFeatureFlags[name]!;
|
|
68
|
+
}
|
|
69
|
+
const featureFlagValue = WorkletsModule.getStaticFeatureFlag(name);
|
|
70
|
+
staticFeatureFlags[name] = featureFlagValue;
|
|
71
|
+
return featureFlagValue;
|
|
72
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import './publicGlobals';
|
|
4
|
+
|
|
5
|
+
import { init } from './initializers';
|
|
6
|
+
import { bundleModeInit } from './workletRuntimeEntry';
|
|
7
|
+
|
|
8
|
+
init();
|
|
9
|
+
|
|
10
|
+
export type { MakeShareableClone, ShareableRef } from './deprecated';
|
|
11
|
+
export {
|
|
12
|
+
isShareableRef,
|
|
13
|
+
makeShareable,
|
|
14
|
+
makeShareableCloneOnUIRecursive,
|
|
15
|
+
makeShareableCloneRecursive,
|
|
16
|
+
shareableMappingCache,
|
|
17
|
+
} from './deprecated';
|
|
18
|
+
export { getStaticFeatureFlag, setDynamicFeatureFlag } from './featureFlags';
|
|
19
|
+
export { isSynchronizable } from './isSynchronizable';
|
|
20
|
+
export { getRuntimeKind, RuntimeKind } from './runtimeKind';
|
|
21
|
+
export { createWorkletRuntime, runOnRuntime } from './runtimes';
|
|
22
|
+
export { createSerializable, isSerializableRef } from './serializable';
|
|
23
|
+
export { serializableMappingCache } from './serializableMappingCache';
|
|
24
|
+
export type { Synchronizable } from './synchronizable';
|
|
25
|
+
export { createSynchronizable } from './synchronizable';
|
|
26
|
+
export {
|
|
27
|
+
callMicrotasks,
|
|
28
|
+
executeOnUIRuntimeSync,
|
|
29
|
+
runOnJS,
|
|
30
|
+
runOnUI,
|
|
31
|
+
runOnUIAsync,
|
|
32
|
+
runOnUISync,
|
|
33
|
+
scheduleOnRN,
|
|
34
|
+
scheduleOnUI,
|
|
35
|
+
// eslint-disable-next-line camelcase
|
|
36
|
+
unstable_eventLoopTask,
|
|
37
|
+
} from './threads';
|
|
38
|
+
export { isWorkletFunction } from './workletFunction';
|
|
39
|
+
export type { IWorkletsModule, WorkletsModuleProxy } from './WorkletsModule';
|
|
40
|
+
export { WorkletsModule } from './WorkletsModule';
|
|
41
|
+
export type {
|
|
42
|
+
SerializableRef,
|
|
43
|
+
WorkletFunction,
|
|
44
|
+
WorkletRuntime,
|
|
45
|
+
WorkletStackDetails,
|
|
46
|
+
} from './workletTypes';
|
|
47
|
+
|
|
48
|
+
// @ts-expect-error We must trick the bundler to include
|
|
49
|
+
// the `workletRuntimeEntry` file the way it cannot optimize it out.
|
|
50
|
+
if (globalThis._ALWAYS_FALSE) {
|
|
51
|
+
// Bundle mode.
|
|
52
|
+
bundleModeInit();
|
|
53
|
+
}
|