@depup/react-native-worklets 0.11.3-depup.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/.worklets/dummy.md +1 -0
- package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.cpp +64 -0
- package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.h +38 -0
- package/Common/cpp/worklets/Compat/Holders.h +25 -0
- package/Common/cpp/worklets/Compat/StableApi.cpp +145 -0
- package/Common/cpp/worklets/Compat/StableApi.h +128 -0
- package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +729 -0
- package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.h +126 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +81 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +76 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +95 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.h +44 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +10 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +43 -0
- package/Common/cpp/worklets/RunLoop/AsyncQueue.h +14 -0
- package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +69 -0
- package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.h +48 -0
- package/Common/cpp/worklets/RunLoop/EventLoop.cpp +103 -0
- package/Common/cpp/worklets/RunLoop/EventLoop.h +52 -0
- package/Common/cpp/worklets/SharedItems/MemoryManager.cpp +60 -0
- package/Common/cpp/worklets/SharedItems/MemoryManager.h +29 -0
- package/Common/cpp/worklets/SharedItems/Serializable.cpp +373 -0
- package/Common/cpp/worklets/SharedItems/Serializable.h +413 -0
- package/Common/cpp/worklets/SharedItems/SerializableFactory.cpp +172 -0
- package/Common/cpp/worklets/SharedItems/SerializableFactory.h +85 -0
- package/Common/cpp/worklets/SharedItems/SerializableRemoteFunction.cpp +71 -0
- package/Common/cpp/worklets/SharedItems/SerializableRemoteFunction.h +75 -0
- package/Common/cpp/worklets/SharedItems/Shareable.cpp +84 -0
- package/Common/cpp/worklets/SharedItems/Shareable.h +43 -0
- package/Common/cpp/worklets/SharedItems/Synchronizable.cpp +59 -0
- package/Common/cpp/worklets/SharedItems/Synchronizable.h +57 -0
- package/Common/cpp/worklets/SharedItems/SynchronizableAccess.cpp +78 -0
- package/Common/cpp/worklets/SharedItems/SynchronizableAccess.h +45 -0
- package/Common/cpp/worklets/SharedItems/UnpackerLoader.h +78 -0
- package/Common/cpp/worklets/Tools/FeatureFlags.cpp +18 -0
- package/Common/cpp/worklets/Tools/FeatureFlags.h +44 -0
- package/Common/cpp/worklets/Tools/JSISerializer.cpp +312 -0
- package/Common/cpp/worklets/Tools/JSISerializer.h +42 -0
- package/Common/cpp/worklets/Tools/JSLogger.cpp +92 -0
- package/Common/cpp/worklets/Tools/JSLogger.h +48 -0
- package/Common/cpp/worklets/Tools/JSScheduler.cpp +21 -0
- package/Common/cpp/worklets/Tools/JSScheduler.h +35 -0
- package/Common/cpp/worklets/Tools/PlatformLogger.h +16 -0
- package/Common/cpp/worklets/Tools/RNRuntimeStatus.h +27 -0
- package/Common/cpp/worklets/Tools/ScriptBuffer.h +56 -0
- package/Common/cpp/worklets/Tools/SingleInstanceChecker.h +75 -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/VersionUtils.cpp +61 -0
- package/Common/cpp/worklets/Tools/VersionUtils.h +24 -0
- package/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +34 -0
- package/Common/cpp/worklets/Tools/WorkletEventHandler.h +44 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.cpp +30 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +222 -0
- package/Common/cpp/worklets/Tools/WorkletsSystraceSection.h +116 -0
- package/Common/cpp/worklets/Tools/WorkletsVersion.cpp +46 -0
- package/Common/cpp/worklets/Tools/WorkletsVersion.h +18 -0
- package/Common/cpp/worklets/WorkletRuntime/BundleModeConfig.h +17 -0
- package/Common/cpp/worklets/WorkletRuntime/HermesProfiling.cpp +45 -0
- package/Common/cpp/worklets/WorkletRuntime/HermesProfiling.h +12 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +68 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +24 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeBindings.h +59 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeData.h +38 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeHolder.h +19 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +122 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +75 -0
- package/Common/cpp/worklets/WorkletRuntime/ScriptLoader.h +116 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.cpp +14 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.h +15 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.cpp +58 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.h +100 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +327 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +256 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +36 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +320 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +36 -0
- package/LICENSE +20 -0
- package/README.md +43 -0
- package/RNWorklets.podspec +94 -0
- package/android/CMakeLists.txt +108 -0
- package/android/build.gradle.kts +369 -0
- package/android/fix-prefab.gradle.kts +56 -0
- package/android/generate-stub-pch.gradle.kts +84 -0
- package/android/gradle.properties +25 -0
- package/android/proguard-rules.pro +3 -0
- package/android/settings.gradle.kts +21 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/WorkletsPCH.h +26 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.cpp +66 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.h +38 -0
- package/android/src/main/cpp/worklets/android/AnimationFrameCallback.h +30 -0
- package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.cpp +66 -0
- package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.h +48 -0
- package/android/src/main/cpp/worklets/android/JWorkletRuntimeWrapper.cpp +51 -0
- package/android/src/main/cpp/worklets/android/JWorkletRuntimeWrapper.h +43 -0
- package/android/src/main/cpp/worklets/android/PlatformLogger.cpp +31 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +203 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.h +75 -0
- package/android/src/main/cpp/worklets/android/WorkletsOnLoad.cpp +19 -0
- package/android/src/main/java/com/swmansion/worklets/AndroidUIScheduler.kt +56 -0
- package/android/src/main/java/com/swmansion/worklets/ScriptBufferWrapper.kt +103 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsPackage.kt +42 -0
- package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameCallback.kt +14 -0
- package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameQueue.kt +112 -0
- package/android/src/networking/com/swmansion/worklets/WorkletRuntimeWrapper.kt +27 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsHeaderUtil.kt +30 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsModule.kt +187 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsNetworkEventUtil.kt +272 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsNetworking.kt +1124 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsOkHttpCallUtil.kt +40 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsProgressListener.kt +13 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsProgressRequestBody.kt +98 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsProgressResponseBody.kt +60 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsProgressiveStringDecoder.kt +87 -0
- package/android/src/networking/com/swmansion/worklets/WorkletsRequestBodyUtil.kt +181 -0
- package/android/src/no-networking/com/swmansion/worklets/WorkletsModule.kt +143 -0
- package/apple/worklets/apple/AnimationFrameQueue.h +15 -0
- package/apple/worklets/apple/AnimationFrameQueue.mm +145 -0
- package/apple/worklets/apple/AssertJavaScriptQueue.h +14 -0
- package/apple/worklets/apple/AssertTurboModuleManagerQueue.h +12 -0
- package/apple/worklets/apple/IOSUIScheduler.h +14 -0
- package/apple/worklets/apple/IOSUIScheduler.mm +29 -0
- package/apple/worklets/apple/Networking/WorkletsNetworking.h +25 -0
- package/apple/worklets/apple/Networking/WorkletsNetworking.mm +707 -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/WorkletsModule.h +28 -0
- package/apple/worklets/apple/WorkletsModule.mm +177 -0
- package/bundleMode/index.d.ts +6 -0
- package/bundleMode/index.js +182 -0
- package/bundleMode/shims/reactNativeShim.js +21 -0
- package/bundleMode/shims/turboModuleRegistryShim.js +47 -0
- package/changes.json +58 -0
- package/compatibility.json +29 -0
- package/jest/pluginTestUtils.ts +16 -0
- package/jest/resolver.js +18 -0
- package/lib/module/WorkletsModule/NativeWorklets.js +4 -0
- package/lib/module/WorkletsModule/NativeWorklets.js.map +1 -0
- package/lib/module/WorkletsModule/NativeWorklets.native.js +199 -0
- package/lib/module/WorkletsModule/NativeWorklets.native.js.map +1 -0
- package/lib/module/WorkletsModule/workletsModuleProxy.js +4 -0
- package/lib/module/WorkletsModule/workletsModuleProxy.js.map +1 -0
- package/lib/module/bundleMode/metroOverrides.native.js +26 -0
- package/lib/module/bundleMode/metroOverrides.native.js.map +1 -0
- package/lib/module/bundleMode/network.native.js +44 -0
- package/lib/module/bundleMode/network.native.js.map +1 -0
- package/lib/module/debug/bundleMode.js +6 -0
- package/lib/module/debug/bundleMode.js.map +1 -0
- package/lib/module/debug/bundleMode.native.js +11 -0
- package/lib/module/debug/bundleMode.native.js.map +1 -0
- package/lib/module/debug/checkCppVersion.js +29 -0
- package/lib/module/debug/checkCppVersion.js.map +1 -0
- package/lib/module/debug/errors.native.js +67 -0
- package/lib/module/debug/errors.native.js.map +1 -0
- package/lib/module/debug/jsVersion.js +9 -0
- package/lib/module/debug/jsVersion.js.map +1 -0
- package/lib/module/debug/logger.js +15 -0
- package/lib/module/debug/logger.js.map +1 -0
- package/lib/module/debug/slowAnimations.js +7 -0
- package/lib/module/debug/slowAnimations.js.map +1 -0
- package/lib/module/debug/slowAnimations.native.js +17 -0
- package/lib/module/debug/slowAnimations.native.js.map +1 -0
- package/lib/module/deprecated.js +27 -0
- package/lib/module/deprecated.js.map +1 -0
- package/lib/module/featureFlags/featureFlags.js +12 -0
- package/lib/module/featureFlags/featureFlags.js.map +1 -0
- package/lib/module/featureFlags/featureFlags.native.js +51 -0
- package/lib/module/featureFlags/featureFlags.native.js.map +1 -0
- package/lib/module/featureFlags/staticFlags.json +6 -0
- package/lib/module/featureFlags/types.js +16 -0
- package/lib/module/featureFlags/types.js.map +1 -0
- package/lib/module/guardImplementation.native.js +17 -0
- package/lib/module/guardImplementation.native.js.map +1 -0
- package/lib/module/index.js +26 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/initializers/initializers.js +24 -0
- package/lib/module/initializers/initializers.js.map +1 -0
- package/lib/module/initializers/initializers.native.js +195 -0
- package/lib/module/initializers/initializers.native.js.map +1 -0
- package/lib/module/memory/bundleUnpacker.native.js +38 -0
- package/lib/module/memory/bundleUnpacker.native.js.map +1 -0
- package/lib/module/memory/customSerializableUnpacker.native.js +20 -0
- package/lib/module/memory/customSerializableUnpacker.native.js.map +1 -0
- package/lib/module/memory/isShareable.js +8 -0
- package/lib/module/memory/isShareable.js.map +1 -0
- package/lib/module/memory/isSynchronizable.js +8 -0
- package/lib/module/memory/isSynchronizable.js.map +1 -0
- package/lib/module/memory/remoteFunctionUnpacker.native.js +18 -0
- package/lib/module/memory/remoteFunctionUnpacker.native.js.map +1 -0
- package/lib/module/memory/serializable.js +18 -0
- package/lib/module/memory/serializable.js.map +1 -0
- package/lib/module/memory/serializable.native.js +619 -0
- package/lib/module/memory/serializable.native.js.map +1 -0
- package/lib/module/memory/serializableMappingCache.js +11 -0
- package/lib/module/memory/serializableMappingCache.js.map +1 -0
- package/lib/module/memory/serializableMappingCache.native.js +29 -0
- package/lib/module/memory/serializableMappingCache.native.js.map +1 -0
- package/lib/module/memory/shareable.js +18 -0
- package/lib/module/memory/shareable.js.map +1 -0
- package/lib/module/memory/shareable.native.js +42 -0
- package/lib/module/memory/shareable.native.js.map +1 -0
- package/lib/module/memory/shareableGuestUnpacker.native.js +105 -0
- package/lib/module/memory/shareableGuestUnpacker.native.js.map +1 -0
- package/lib/module/memory/shareableHostUnpacker.native.js +20 -0
- package/lib/module/memory/shareableHostUnpacker.native.js.map +1 -0
- package/lib/module/memory/synchronizable.js +6 -0
- package/lib/module/memory/synchronizable.js.map +1 -0
- package/lib/module/memory/synchronizable.native.js +9 -0
- package/lib/module/memory/synchronizable.native.js.map +1 -0
- package/lib/module/memory/synchronizableUnpacker.native.js +47 -0
- package/lib/module/memory/synchronizableUnpacker.native.js.map +1 -0
- package/lib/module/memory/types.js +12 -0
- package/lib/module/memory/types.js.map +1 -0
- package/lib/module/memory/valueUnpacker.native.js +52 -0
- package/lib/module/memory/valueUnpacker.native.js.map +1 -0
- package/lib/module/mock.js +85 -0
- package/lib/module/mock.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/platformChecker.js +4 -0
- package/lib/module/platformChecker.js.map +1 -0
- package/lib/module/platformChecker.native.js +4 -0
- package/lib/module/platformChecker.native.js.map +1 -0
- package/lib/module/privateGlobals.d.js +7 -0
- package/lib/module/privateGlobals.d.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 +71 -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 +92 -0
- package/lib/module/runtimeKind.js.map +1 -0
- package/lib/module/runtimes.js +36 -0
- package/lib/module/runtimes.js.map +1 -0
- package/lib/module/runtimes.native.js +379 -0
- package/lib/module/runtimes.native.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 +10 -0
- package/lib/module/specs/index.js.map +1 -0
- package/lib/module/threads.js +60 -0
- package/lib/module/threads.js.map +1 -0
- package/lib/module/threads.native.js +295 -0
- package/lib/module/threads.native.js.map +1 -0
- package/lib/module/types.js +5 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/workletFunction.js +36 -0
- package/lib/module/workletFunction.js.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/NativeWorklets.native.d.ts +3 -0
- package/lib/typescript/WorkletsModule/NativeWorklets.native.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +59 -0
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -0
- package/lib/typescript/bundleMode/metroOverrides.native.d.ts +9 -0
- package/lib/typescript/bundleMode/metroOverrides.native.d.ts.map +1 -0
- package/lib/typescript/bundleMode/network.native.d.ts +7 -0
- package/lib/typescript/bundleMode/network.native.d.ts.map +1 -0
- package/lib/typescript/debug/bundleMode.d.ts +2 -0
- package/lib/typescript/debug/bundleMode.d.ts.map +1 -0
- package/lib/typescript/debug/bundleMode.native.d.ts +2 -0
- package/lib/typescript/debug/bundleMode.native.d.ts.map +1 -0
- package/lib/typescript/debug/checkCppVersion.d.ts +3 -0
- package/lib/typescript/debug/checkCppVersion.d.ts.map +1 -0
- package/lib/typescript/debug/errors.native.d.ts +13 -0
- package/lib/typescript/debug/errors.native.d.ts.map +1 -0
- package/lib/typescript/debug/jsVersion.d.ts +7 -0
- package/lib/typescript/debug/jsVersion.d.ts.map +1 -0
- package/lib/typescript/debug/logger.d.ts +5 -0
- package/lib/typescript/debug/logger.d.ts.map +1 -0
- package/lib/typescript/debug/slowAnimations.d.ts +2 -0
- package/lib/typescript/debug/slowAnimations.d.ts.map +1 -0
- package/lib/typescript/debug/slowAnimations.native.d.ts +11 -0
- package/lib/typescript/debug/slowAnimations.native.d.ts.map +1 -0
- package/lib/typescript/deprecated.d.ts +19 -0
- package/lib/typescript/deprecated.d.ts.map +1 -0
- package/lib/typescript/featureFlags/featureFlags.d.ts +5 -0
- package/lib/typescript/featureFlags/featureFlags.d.ts.map +1 -0
- package/lib/typescript/featureFlags/featureFlags.native.d.ts +6 -0
- package/lib/typescript/featureFlags/featureFlags.native.d.ts.map +1 -0
- package/lib/typescript/featureFlags/types.d.ts +23 -0
- package/lib/typescript/featureFlags/types.d.ts.map +1 -0
- package/lib/typescript/guardImplementation.native.d.ts +3 -0
- package/lib/typescript/guardImplementation.native.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +19 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/initializers/initializers.d.ts +2 -0
- package/lib/typescript/initializers/initializers.d.ts.map +1 -0
- package/lib/typescript/initializers/initializers.native.d.ts +19 -0
- package/lib/typescript/initializers/initializers.native.d.ts.map +1 -0
- package/lib/typescript/memory/bundleUnpacker.native.d.ts +7 -0
- package/lib/typescript/memory/bundleUnpacker.native.d.ts.map +1 -0
- package/lib/typescript/memory/customSerializableUnpacker.native.d.ts +3 -0
- package/lib/typescript/memory/customSerializableUnpacker.native.d.ts.map +1 -0
- package/lib/typescript/memory/isShareable.d.ts +3 -0
- package/lib/typescript/memory/isShareable.d.ts.map +1 -0
- package/lib/typescript/memory/isSynchronizable.d.ts +3 -0
- package/lib/typescript/memory/isSynchronizable.d.ts.map +1 -0
- package/lib/typescript/memory/remoteFunctionUnpacker.native.d.ts +3 -0
- package/lib/typescript/memory/remoteFunctionUnpacker.native.d.ts.map +1 -0
- package/lib/typescript/memory/serializable.d.ts +7 -0
- package/lib/typescript/memory/serializable.d.ts.map +1 -0
- package/lib/typescript/memory/serializable.native.d.ts +37 -0
- package/lib/typescript/memory/serializable.native.d.ts.map +1 -0
- package/lib/typescript/memory/serializableMappingCache.d.ts +6 -0
- package/lib/typescript/memory/serializableMappingCache.d.ts.map +1 -0
- package/lib/typescript/memory/serializableMappingCache.native.d.ts +13 -0
- package/lib/typescript/memory/serializableMappingCache.native.d.ts.map +1 -0
- package/lib/typescript/memory/shareable.d.ts +15 -0
- package/lib/typescript/memory/shareable.d.ts.map +1 -0
- package/lib/typescript/memory/shareable.native.d.ts +15 -0
- package/lib/typescript/memory/shareable.native.d.ts.map +1 -0
- package/lib/typescript/memory/shareableGuestUnpacker.native.d.ts +4 -0
- package/lib/typescript/memory/shareableGuestUnpacker.native.d.ts.map +1 -0
- package/lib/typescript/memory/shareableHostUnpacker.native.d.ts +4 -0
- package/lib/typescript/memory/shareableHostUnpacker.native.d.ts.map +1 -0
- package/lib/typescript/memory/synchronizable.d.ts +3 -0
- package/lib/typescript/memory/synchronizable.d.ts.map +1 -0
- package/lib/typescript/memory/synchronizable.native.d.ts +3 -0
- package/lib/typescript/memory/synchronizable.native.d.ts.map +1 -0
- package/lib/typescript/memory/synchronizableUnpacker.native.d.ts +4 -0
- package/lib/typescript/memory/synchronizableUnpacker.native.d.ts.map +1 -0
- package/lib/typescript/memory/types.d.ts +136 -0
- package/lib/typescript/memory/types.d.ts.map +1 -0
- package/lib/typescript/memory/valueUnpacker.native.d.ts +7 -0
- package/lib/typescript/memory/valueUnpacker.native.d.ts.map +1 -0
- package/lib/typescript/mock.d.ts +2 -0
- package/lib/typescript/mock.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/platformChecker.d.ts +2 -0
- package/lib/typescript/platformChecker.d.ts.map +1 -0
- package/lib/typescript/platformChecker.native.d.ts +2 -0
- package/lib/typescript/platformChecker.native.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 +56 -0
- package/lib/typescript/runtimeKind.d.ts.map +1 -0
- package/lib/typescript/runtimes.d.ts +15 -0
- package/lib/typescript/runtimes.d.ts.map +1 -0
- package/lib/typescript/runtimes.native.d.ts +155 -0
- package/lib/typescript/runtimes.native.d.ts.map +1 -0
- package/lib/typescript/specs/NativeWorkletsModule.d.ts +9 -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 +8 -0
- package/lib/typescript/threads.d.ts.map +1 -0
- package/lib/typescript/threads.native.d.ts +125 -0
- package/lib/typescript/threads.native.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +136 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/workletFunction.d.ts +26 -0
- package/lib/typescript/workletFunction.d.ts.map +1 -0
- package/package.json +220 -0
- package/plugin/index.d.ts +168 -0
- package/plugin/index.js +2188 -0
- package/scripts/validate-react-native-version.js +43 -0
- package/scripts/worklets_utils.rb +94 -0
- package/src/WorkletsModule/NativeWorklets.native.ts +461 -0
- package/src/WorkletsModule/NativeWorklets.ts +5 -0
- package/src/WorkletsModule/workletsModuleProxy.ts +247 -0
- package/src/bundleMode/metroOverrides.native.ts +33 -0
- package/src/bundleMode/network.native.ts +63 -0
- package/src/debug/bundleMode.native.ts +18 -0
- package/src/debug/bundleMode.ts +5 -0
- package/src/debug/checkCppVersion.ts +34 -0
- package/src/debug/errors.native.ts +74 -0
- package/src/debug/jsVersion.ts +8 -0
- package/src/debug/logger.ts +16 -0
- package/src/debug/slowAnimations.native.ts +15 -0
- package/src/debug/slowAnimations.ts +6 -0
- package/src/deprecated.ts +38 -0
- package/src/featureFlags/featureFlags.native.ts +70 -0
- package/src/featureFlags/featureFlags.ts +20 -0
- package/src/featureFlags/staticFlags.json +6 -0
- package/src/featureFlags/types.ts +32 -0
- package/src/guardImplementation.native.ts +26 -0
- package/src/index.ts +95 -0
- package/src/initializers/initializers.native.ts +218 -0
- package/src/initializers/initializers.ts +24 -0
- package/src/memory/bundleUnpacker.native.ts +59 -0
- package/src/memory/customSerializableUnpacker.native.ts +30 -0
- package/src/memory/isShareable.ts +16 -0
- package/src/memory/isSynchronizable.ts +14 -0
- package/src/memory/remoteFunctionUnpacker.native.ts +27 -0
- package/src/memory/serializable.native.ts +889 -0
- package/src/memory/serializable.ts +36 -0
- package/src/memory/serializableMappingCache.native.ts +37 -0
- package/src/memory/serializableMappingCache.ts +12 -0
- package/src/memory/shareable.native.ts +68 -0
- package/src/memory/shareable.ts +27 -0
- package/src/memory/shareableGuestUnpacker.native.ts +168 -0
- package/src/memory/shareableHostUnpacker.native.ts +31 -0
- package/src/memory/synchronizable.native.ts +17 -0
- package/src/memory/synchronizable.ts +9 -0
- package/src/memory/synchronizableUnpacker.native.ts +65 -0
- package/src/memory/types.ts +191 -0
- package/src/memory/valueUnpacker.native.ts +79 -0
- package/src/mock.ts +111 -0
- package/src/platformChecker.native.ts +3 -0
- package/src/platformChecker.ts +4 -0
- package/src/privateGlobals.d.ts +127 -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 +87 -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 +85 -0
- package/src/runtimes.native.ts +572 -0
- package/src/runtimes.ts +107 -0
- package/src/specs/NativeWorkletsModule.ts +11 -0
- package/src/specs/index.ts +13 -0
- package/src/threads.native.ts +408 -0
- package/src/threads.ts +110 -0
- package/src/types.ts +164 -0
- package/src/workletFunction.ts +41 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This symbol is used to represent a mapping from the value to itself.
|
|
5
|
+
*
|
|
6
|
+
* It's used to prevent converting a serializable that's already converted - for
|
|
7
|
+
* example a Shared Value that's in worklet's closure.
|
|
8
|
+
*/
|
|
9
|
+
export const serializableMappingFlag = Symbol('serializable flag');
|
|
10
|
+
|
|
11
|
+
/*
|
|
12
|
+
During a fast refresh, React holds the same instance of a Mutable
|
|
13
|
+
(that's guaranteed by `useRef`) but `serializableCache` gets regenerated and thus
|
|
14
|
+
becoming empty. This happens when editing the file that contains the definition of this cache.
|
|
15
|
+
|
|
16
|
+
Because of it, `createSerializable` can't find given mapping
|
|
17
|
+
in `serializableCache` for the Mutable and tries to clone it as if it was a regular JS object.
|
|
18
|
+
During cloning we use `Object.entries` to iterate over the keys which throws an error on accessing `_value`.
|
|
19
|
+
For convenience we moved this cache to a separate file so it doesn't scare us with red squiggles.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
const cache = new WeakMap();
|
|
23
|
+
export const serializableMappingCache = {
|
|
24
|
+
set(serializable, serializableRef) {
|
|
25
|
+
cache.set(serializable, serializableRef || serializableMappingFlag);
|
|
26
|
+
},
|
|
27
|
+
get: cache.get.bind(cache)
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=serializableMappingCache.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["serializableMappingFlag","Symbol","cache","WeakMap","serializableMappingCache","set","serializable","serializableRef","get","bind"],"sourceRoot":"../../../src","sources":["memory/serializableMappingCache.native.ts"],"mappings":"AAAA,YAAY;;AAIZ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,uBAAuB,GAAGC,MAAM,CAAC,mBAAmB,CAAC;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,KAAK,GAAG,IAAIC,OAAO,CAGvB,CAAC;AAEH,OAAO,MAAMC,wBAAwB,GAAG;EACtCC,GAAGA,CACDC,YAAoB,EACpBC,eAA4D,EACtD;IACNL,KAAK,CAACG,GAAG,CAACC,YAAY,EAAEC,eAAe,IAAIP,uBAAuB,CAAC;EACrE,CAAC;EACDQ,GAAG,EAAEN,KAAK,CAACM,GAAG,CAACC,IAAI,CAACP,KAAK;AAC3B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates a new {@link Shareable} holding the provided initial value. You must
|
|
5
|
+
* explicitly declare which Worklet Runtime will host the Shareable by passing
|
|
6
|
+
* its `runtimeId`. To host on the UI Runtime, pass {@link UIRuntimeId}.
|
|
7
|
+
*
|
|
8
|
+
* @param hostRuntimeId - The `runtimeId` of the Worklet Runtime that will host
|
|
9
|
+
* the Shareable.
|
|
10
|
+
* @param initial - The initial value of the Shareable.
|
|
11
|
+
* @param config - Optional advanced configuration.
|
|
12
|
+
* @returns The created {@link Shareable}.
|
|
13
|
+
* @see {@link https://docs.swmansion.com/react-native-worklets/docs/memory/createShareable | createShareable docs}
|
|
14
|
+
*/
|
|
15
|
+
export function createShareable(_hostRuntimeId, _initial, _config) {
|
|
16
|
+
throw new Error('[Worklets] `createShareable` is not supported on web.');
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=shareable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createShareable","_hostRuntimeId","_initial","_config","Error"],"sourceRoot":"../../../src","sources":["memory/shareable.ts"],"mappings":"AAAA,YAAY;;AAIZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAK7BC,cAAsB,EACtBC,QAAgB,EAChBC,OAAkE,EACd;EACpD,MAAM,IAAIC,KAAK,CAAC,uDAAuD,CAAC;AAC1E","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { isBundleModeEnabled } from '../debug/bundleMode';
|
|
4
|
+
import { addNoBundleModeGuardImplementation } from '../guardImplementation';
|
|
5
|
+
import { isWorkletFunction } from "../workletFunction.js";
|
|
6
|
+
import { WorkletsModule } from '../WorkletsModule/NativeWorklets';
|
|
7
|
+
import { createSerializable } from './serializable';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new {@link Shareable} holding the provided initial value. You must
|
|
11
|
+
* explicitly declare which Worklet Runtime will host the Shareable by passing
|
|
12
|
+
* its `runtimeId`. To host on the UI Runtime, pass {@link UIRuntimeId}.
|
|
13
|
+
*
|
|
14
|
+
* @param hostRuntimeId - The `runtimeId` of the Worklet Runtime that will host
|
|
15
|
+
* the Shareable.
|
|
16
|
+
* @param initial - The initial value of the Shareable.
|
|
17
|
+
* @param config - Optional advanced configuration.
|
|
18
|
+
* @returns The created {@link Shareable}.
|
|
19
|
+
* @see {@link https://docs.swmansion.com/react-native-worklets/docs/memory/createShareable | createShareable docs}
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export function createShareable(hostRuntimeId, initial, config) {
|
|
23
|
+
const {
|
|
24
|
+
hostDecorator,
|
|
25
|
+
guestDecorator,
|
|
26
|
+
initSynchronously
|
|
27
|
+
} = config || {};
|
|
28
|
+
if (__DEV__) {
|
|
29
|
+
if (hostDecorator && !isWorkletFunction(hostDecorator)) {
|
|
30
|
+
throw new Error('[Worklets] hostDecorator must be a worklet function');
|
|
31
|
+
}
|
|
32
|
+
if (guestDecorator && !isWorkletFunction(guestDecorator)) {
|
|
33
|
+
throw new Error('[Worklets] guestDecorator must be a worklet function');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const shareableRef = WorkletsModule.createShareable(hostRuntimeId, createSerializable(initial), !!initSynchronously, createSerializable(hostDecorator), createSerializable(guestDecorator));
|
|
37
|
+
return globalThis.__shareableGuestUnpacker(hostRuntimeId, shareableRef, guestDecorator);
|
|
38
|
+
}
|
|
39
|
+
if (__DEV__ && !isBundleModeEnabled()) {
|
|
40
|
+
addNoBundleModeGuardImplementation(createShareable);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=shareable.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isBundleModeEnabled","addNoBundleModeGuardImplementation","isWorkletFunction","WorkletsModule","createSerializable","createShareable","hostRuntimeId","initial","config","hostDecorator","guestDecorator","initSynchronously","__DEV__","Error","shareableRef","globalThis","__shareableGuestUnpacker"],"sourceRoot":"../../../src","sources":["memory/shareable.native.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,mBAAmB,QAAQ,qBAAqB;AACzD,SAASC,kCAAkC,QAAQ,wBAAwB;AAC3E,SAASC,iBAAiB,QAAQ,uBAAoB;AACtD,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,kBAAkB,QAAQ,gBAAgB;;AAGnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,OAAO,SAASC,eAAeA,CAK7BC,aAAqB,EACrBC,OAAe,EACfC,MAAiE,EACb;EACpD,MAAM;IAAEC,aAAa;IAAEC,cAAc;IAAEC;EAAkB,CAAC,GAAGH,MAAM,IAAI,CAAC,CAAC;EACzE,IAAII,OAAO,EAAE;IACX,IAAIH,aAAa,IAAI,CAACP,iBAAiB,CAACO,aAAa,CAAC,EAAE;MACtD,MAAM,IAAII,KAAK,CAAC,qDAAqD,CAAC;IACxE;IACA,IAAIH,cAAc,IAAI,CAACR,iBAAiB,CAACQ,cAAc,CAAC,EAAE;MACxD,MAAM,IAAIG,KAAK,CAAC,sDAAsD,CAAC;IACzE;EACF;EAEA,MAAMC,YAAY,GAAGX,cAAc,CAACE,eAAe,CACjDC,aAAa,EACbF,kBAAkB,CAACG,OAAO,CAAC,EAC3B,CAAC,CAACI,iBAAiB,EACnBP,kBAAkB,CAACK,aAAa,CAAC,EACjCL,kBAAkB,CAACM,cAAc,CACnC,CAAC;EAED,OAAOK,UAAU,CAACC,wBAAwB,CACxCV,aAAa,EACbQ,YAAY,EACZJ,cACF,CAAC;AACH;AAEA,IAAIE,OAAO,IAAI,CAACZ,mBAAmB,CAAC,CAAC,EAAE;EACrCC,kCAAkC,CAACI,eAAe,CAAC;AACrD","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* eslint-disable n/no-missing-require */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
export function installShareableGuestUnpacker() {
|
|
7
|
+
'worklet';
|
|
8
|
+
'no-worklet-closure';
|
|
9
|
+
|
|
10
|
+
let runOnRuntimeSyncFromId;
|
|
11
|
+
let runOnRuntimeAsyncFromId;
|
|
12
|
+
let memoize;
|
|
13
|
+
let scheduleOnRuntimeFromId;
|
|
14
|
+
let serializer;
|
|
15
|
+
if (globalThis.__RUNTIME_KIND === 1 || globalThis._WORKLETS_BUNDLE_MODE_ENABLED) {
|
|
16
|
+
serializer = require('./serializable').createSerializable;
|
|
17
|
+
const {
|
|
18
|
+
serializableMappingCache
|
|
19
|
+
} = require('./serializableMappingCache');
|
|
20
|
+
memoize = serializableMappingCache.set.bind(serializableMappingCache);
|
|
21
|
+
runOnRuntimeSyncFromId = require('../runtimes').runOnRuntimeSyncWithId;
|
|
22
|
+
runOnRuntimeAsyncFromId = require('../runtimes').runOnRuntimeAsyncWithId;
|
|
23
|
+
scheduleOnRuntimeFromId = require('../runtimes').scheduleOnRuntimeWithId;
|
|
24
|
+
} else {
|
|
25
|
+
// Serializer can't be inlined here because it might be yet undefined
|
|
26
|
+
// when the unpacker is installed.
|
|
27
|
+
serializer = value => globalThis.__serializer(value);
|
|
28
|
+
memoize = () => {
|
|
29
|
+
// No-op on Worklet Runtimes outside of Bundle Mode.
|
|
30
|
+
};
|
|
31
|
+
const proxy = globalThis.__workletsModuleProxy;
|
|
32
|
+
runOnRuntimeSyncFromId = (hostId, worklet, ...args) => {
|
|
33
|
+
const serializedWorklet = serializer(() => {
|
|
34
|
+
'worklet';
|
|
35
|
+
'limit-init-data-hoisting';
|
|
36
|
+
|
|
37
|
+
return globalThis.__serializer(worklet(...args));
|
|
38
|
+
});
|
|
39
|
+
return proxy.runOnRuntimeSyncWithId(hostId, serializedWorklet);
|
|
40
|
+
};
|
|
41
|
+
scheduleOnRuntimeFromId = (hostId, worklet, ...args) => {
|
|
42
|
+
proxy.scheduleOnRuntimeWithId(hostId, serializer(() => {
|
|
43
|
+
'worklet';
|
|
44
|
+
'limit-init-data-hoisting';
|
|
45
|
+
|
|
46
|
+
return globalThis.__serializer(worklet(...args));
|
|
47
|
+
}));
|
|
48
|
+
};
|
|
49
|
+
runOnRuntimeAsyncFromId = () => {
|
|
50
|
+
throw new Error('[Worklets] `Shareable.getAsync` can only be called on the RN Runtime.');
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function shareableGuestUnpacker(hostId, shareableRef, guestDecorator) {
|
|
54
|
+
let shareableGuest = shareableRef;
|
|
55
|
+
shareableGuest.isHost = false;
|
|
56
|
+
shareableGuest.__shareableRef = true;
|
|
57
|
+
const get = () => {
|
|
58
|
+
'worklet';
|
|
59
|
+
'limit-init-data-hoisting';
|
|
60
|
+
|
|
61
|
+
return shareableGuest.value;
|
|
62
|
+
};
|
|
63
|
+
const setWithValue = value => {
|
|
64
|
+
'worklet';
|
|
65
|
+
'limit-init-data-hoisting';
|
|
66
|
+
|
|
67
|
+
shareableGuest.value = value;
|
|
68
|
+
};
|
|
69
|
+
const setWithSetter = setter => {
|
|
70
|
+
'worklet';
|
|
71
|
+
'limit-init-data-hoisting';
|
|
72
|
+
|
|
73
|
+
const currentValue = shareableGuest.value;
|
|
74
|
+
const newValue = setter(currentValue);
|
|
75
|
+
shareableGuest.value = newValue;
|
|
76
|
+
};
|
|
77
|
+
shareableGuest.getAsync = () => {
|
|
78
|
+
return runOnRuntimeAsyncFromId(hostId, get);
|
|
79
|
+
};
|
|
80
|
+
shareableGuest.getSync = () => {
|
|
81
|
+
return runOnRuntimeSyncFromId(hostId, get);
|
|
82
|
+
};
|
|
83
|
+
shareableGuest.setAsync = value => {
|
|
84
|
+
if (typeof value === 'function') {
|
|
85
|
+
scheduleOnRuntimeFromId(hostId, setWithSetter, value);
|
|
86
|
+
} else {
|
|
87
|
+
scheduleOnRuntimeFromId(hostId, setWithValue, value);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
shareableGuest.setSync = value => {
|
|
91
|
+
if (typeof value === 'function') {
|
|
92
|
+
runOnRuntimeSyncFromId(hostId, setWithSetter, value);
|
|
93
|
+
} else {
|
|
94
|
+
runOnRuntimeSyncFromId(hostId, setWithValue, value);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
if (guestDecorator) {
|
|
98
|
+
shareableGuest = guestDecorator(shareableGuest);
|
|
99
|
+
}
|
|
100
|
+
memoize(shareableGuest, shareableRef);
|
|
101
|
+
return shareableGuest;
|
|
102
|
+
}
|
|
103
|
+
globalThis.__shareableGuestUnpacker = shareableGuestUnpacker;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=shareableGuestUnpacker.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["installShareableGuestUnpacker","runOnRuntimeSyncFromId","runOnRuntimeAsyncFromId","memoize","scheduleOnRuntimeFromId","serializer","globalThis","__RUNTIME_KIND","_WORKLETS_BUNDLE_MODE_ENABLED","require","createSerializable","serializableMappingCache","set","bind","runOnRuntimeSyncWithId","runOnRuntimeAsyncWithId","scheduleOnRuntimeWithId","value","__serializer","proxy","__workletsModuleProxy","hostId","worklet","args","serializedWorklet","Error","shareableGuestUnpacker","shareableRef","guestDecorator","shareableGuest","isHost","__shareableRef","get","setWithValue","setWithSetter","setter","currentValue","newValue","getAsync","getSync","setAsync","setSync","__shareableGuestUnpacker"],"sourceRoot":"../../../src","sources":["memory/shareableGuestUnpacker.native.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function installShareableHostUnpacker() {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
function shareableHostUnpacker(initial, hostDecorator) {
|
|
7
|
+
let hostShareable = {
|
|
8
|
+
isHost: true,
|
|
9
|
+
__shareableRef: true,
|
|
10
|
+
value: initial
|
|
11
|
+
};
|
|
12
|
+
if (hostDecorator) {
|
|
13
|
+
hostShareable = hostDecorator(hostShareable);
|
|
14
|
+
}
|
|
15
|
+
const shareable = hostShareable;
|
|
16
|
+
return shareable;
|
|
17
|
+
}
|
|
18
|
+
globalThis.__shareableHostUnpacker = shareableHostUnpacker;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=shareableHostUnpacker.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["installShareableHostUnpacker","shareableHostUnpacker","initial","hostDecorator","hostShareable","isHost","__shareableRef","value","shareable","globalThis","__shareableHostUnpacker"],"sourceRoot":"../../../src","sources":["memory/shareableHostUnpacker.native.ts"],"mappings":"AAAA,YAAY;;AAIZ,OAAO,SAASA,4BAA4BA,CAAA,EAAG;EAC7C,SAAS;;EACT,SAASC,qBAAqBA,CAC5BC,OAAe,EACfC,aAA8C,EAC3B;IACnB,IAAIC,aAAa,GAAG;MAClBC,MAAM,EAAE,IAAI;MACZC,cAAc,EAAE,IAAI;MACpBC,KAAK,EAAEL;IACT,CAA0B;IAE1B,IAAIC,aAAa,EAAE;MACjBC,aAAa,GAAGD,aAAa,CAACC,aAAa,CAAC;IAC9C;IAEA,MAAMI,SAAS,GAAGJ,aAAa;IAC/B,OAAOI,SAAS;EAClB;EAEAC,UAAU,CAACC,uBAAuB,GAAGT,qBAAqB;AAC5D","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSynchronizable","_value","Error"],"sourceRoot":"../../../src","sources":["memory/synchronizable.ts"],"mappings":"AAAA,YAAY;;AAIZ,OAAO,SAASA,oBAAoBA,CAClCC,MAAc,EACU;EACxB,MAAM,IAAIC,KAAK,CAAC,4DAA4D,CAAC;AAC/E","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { WorkletsModule } from '../WorkletsModule/NativeWorklets';
|
|
4
|
+
import { createSerializable } from './serializable';
|
|
5
|
+
export function createSynchronizable(initialValue) {
|
|
6
|
+
const synchronizableRef = WorkletsModule.createSynchronizable(createSerializable(initialValue));
|
|
7
|
+
return globalThis.__synchronizableUnpacker(synchronizableRef);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=synchronizable.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WorkletsModule","createSerializable","createSynchronizable","initialValue","synchronizableRef","globalThis","__synchronizableUnpacker"],"sourceRoot":"../../../src","sources":["memory/synchronizable.native.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,cAAc,QAAQ,kCAAkC;AACjE,SAASC,kBAAkB,QAAQ,gBAAgB;AAGnD,OAAO,SAASC,oBAAoBA,CAClCC,YAAoB,EACI;EACxB,MAAMC,iBAAiB,GAAGJ,cAAc,CAACE,oBAAoB,CAC3DD,kBAAkB,CAACE,YAAY,CACjC,CAAC;EAED,OAAOE,UAAU,CAACC,wBAAwB,CACxCF,iBACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* eslint-disable n/no-missing-require */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
export function installSynchronizableUnpacker() {
|
|
7
|
+
'worklet';
|
|
8
|
+
'no-worklet-closure';
|
|
9
|
+
|
|
10
|
+
// TODO: Add cache for synchronizables.
|
|
11
|
+
const serializer = globalThis.__RUNTIME_KIND === 1 || globalThis._WORKLETS_BUNDLE_MODE_ENABLED ? require('./serializable').createSerializable : value => globalThis.__serializer(value);
|
|
12
|
+
function synchronizableUnpacker(synchronizableRef) {
|
|
13
|
+
const synchronizable = synchronizableRef;
|
|
14
|
+
const proxy = globalThis.__workletsModuleProxy;
|
|
15
|
+
synchronizable.__synchronizableRef = true;
|
|
16
|
+
synchronizable.getDirty = () => {
|
|
17
|
+
return proxy.synchronizableGetDirty(synchronizable);
|
|
18
|
+
};
|
|
19
|
+
synchronizable.getBlocking = () => {
|
|
20
|
+
return proxy.synchronizableGetBlocking(synchronizable);
|
|
21
|
+
};
|
|
22
|
+
synchronizable.setBlocking = valueOrFunction => {
|
|
23
|
+
let newValue;
|
|
24
|
+
if (typeof valueOrFunction === 'function') {
|
|
25
|
+
const func = valueOrFunction;
|
|
26
|
+
synchronizable.lock();
|
|
27
|
+
const prev = synchronizable.getBlocking();
|
|
28
|
+
newValue = func(prev);
|
|
29
|
+
proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
|
|
30
|
+
synchronizable.unlock();
|
|
31
|
+
} else {
|
|
32
|
+
const value = valueOrFunction;
|
|
33
|
+
newValue = value;
|
|
34
|
+
proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
synchronizable.lock = () => {
|
|
38
|
+
proxy.synchronizableLock(synchronizable);
|
|
39
|
+
};
|
|
40
|
+
synchronizable.unlock = () => {
|
|
41
|
+
proxy.synchronizableUnlock(synchronizable);
|
|
42
|
+
};
|
|
43
|
+
return synchronizable;
|
|
44
|
+
}
|
|
45
|
+
globalThis.__synchronizableUnpacker = synchronizableUnpacker;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=synchronizableUnpacker.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["installSynchronizableUnpacker","serializer","globalThis","__RUNTIME_KIND","_WORKLETS_BUNDLE_MODE_ENABLED","require","createSerializable","value","__serializer","synchronizableUnpacker","synchronizableRef","synchronizable","proxy","__workletsModuleProxy","__synchronizableRef","getDirty","synchronizableGetDirty","getBlocking","synchronizableGetBlocking","setBlocking","valueOrFunction","newValue","func","lock","prev","synchronizableSetBlocking","unlock","synchronizableLock","synchronizableUnlock","__synchronizableUnpacker"],"sourceRoot":"../../../src","sources":["memory/synchronizableUnpacker.native.ts"],"mappings":"AAAA;AACA;AACA;AACA,YAAY;;AAIZ,OAAO,SAASA,6BAA6BA,CAAA,EAAG;EAC9C,SAAS;EACT,oBAAoB;;EACpB;EACA,MAAMC,UAAU,GACdC,UAAU,CAACC,cAAc,KAAK,CAAC,IAAID,UAAU,CAACE,6BAA6B,GACvEC,OAAO,CAAC,gBAAgB,CAAC,CAACC,kBAAkB,GAC3CC,KAAc,IAAKL,UAAU,CAACM,YAAY,CAACD,KAAK,CAAC;EAExD,SAASE,sBAAsBA,CAC7BC,iBAA4C,EACpB;IACxB,MAAMC,cAAc,GAClBD,iBAAsD;IACxD,MAAME,KAAK,GAAGV,UAAU,CAACW,qBAAqB;IAE9CF,cAAc,CAACG,mBAAmB,GAAG,IAAI;IACzCH,cAAc,CAACI,QAAQ,GAAG,MAAM;MAC9B,OAAOH,KAAK,CAACI,sBAAsB,CAACL,cAAc,CAAC;IACrD,CAAC;IACDA,cAAc,CAACM,WAAW,GAAG,MAAM;MACjC,OAAOL,KAAK,CAACM,yBAAyB,CAACP,cAAc,CAAC;IACxD,CAAC;IACDA,cAAc,CAACQ,WAAW,GACxBC,eAAoD,IACjD;MACH,IAAIC,QAAgB;MACpB,IAAI,OAAOD,eAAe,KAAK,UAAU,EAAE;QACzC,MAAME,IAAI,GAAGF,eAA2C;QACxDT,cAAc,CAACY,IAAI,CAAC,CAAC;QACrB,MAAMC,IAAI,GAAGb,cAAc,CAACM,WAAW,CAAC,CAAC;QACzCI,QAAQ,GAAGC,IAAI,CAACE,IAAI,CAAC;QAErBZ,KAAK,CAACa,yBAAyB,CAACd,cAAc,EAAEV,UAAU,CAACoB,QAAQ,CAAC,CAAC;QAErEV,cAAc,CAACe,MAAM,CAAC,CAAC;MACzB,CAAC,MAAM;QACL,MAAMnB,KAAK,GAAGa,eAAe;QAC7BC,QAAQ,GAAGd,KAAK;QAChBK,KAAK,CAACa,yBAAyB,CAACd,cAAc,EAAEV,UAAU,CAACoB,QAAQ,CAAC,CAAC;MACvE;IACF,CAAC;IACDV,cAAc,CAACY,IAAI,GAAG,MAAM;MAC1BX,KAAK,CAACe,kBAAkB,CAAChB,cAAc,CAAC;IAC1C,CAAC;IACDA,cAAc,CAACe,MAAM,GAAG,MAAM;MAC5Bd,KAAK,CAACgB,oBAAoB,CAACjB,cAAc,CAAC;IAC5C,CAAC;IAED,OAAOA,cAAc;EACvB;EAEAT,UAAU,CAAC2B,wBAAwB,GAAGpB,sBAAsB;AAC9D","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=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["memory/types.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function installValueUnpacker() {
|
|
4
|
+
'worklet';
|
|
5
|
+
'no-worklet-closure';
|
|
6
|
+
|
|
7
|
+
const workletsCache = new Map();
|
|
8
|
+
const handleCache = new WeakMap();
|
|
9
|
+
function valueUnpacker(objectToUnpack) {
|
|
10
|
+
const workletHash = objectToUnpack.__workletHash;
|
|
11
|
+
if (workletHash !== undefined) {
|
|
12
|
+
let workletFun = workletsCache.get(workletHash);
|
|
13
|
+
if (workletFun === undefined) {
|
|
14
|
+
const initData = objectToUnpack.__initData;
|
|
15
|
+
if (initData.bytecode !== undefined) {
|
|
16
|
+
workletFun = globalThis.evalBytecode(initData.bytecode);
|
|
17
|
+
} else if (globalThis.evalWithSourceMap && initData.sourceMap) {
|
|
18
|
+
// if the runtime (hermes only for now) supports loading source maps
|
|
19
|
+
// we want to use the proper filename for the location as it guarantees
|
|
20
|
+
// that debugger understands and loads the source code of the file where
|
|
21
|
+
// the worklet is defined.
|
|
22
|
+
workletFun = globalThis.evalWithSourceMap(initData.code, initData.location, initData.sourceMap);
|
|
23
|
+
} else if (globalThis.evalWithSourceUrl) {
|
|
24
|
+
// if the runtime doesn't support loading source maps, in dev mode we
|
|
25
|
+
// can pass source url when evaluating the worklet. Now, instead of using
|
|
26
|
+
// the actual file location we use worklet hash, as it the allows us to
|
|
27
|
+
// properly symbolicate traces (see errors.ts for details)
|
|
28
|
+
workletFun = globalThis.evalWithSourceUrl(initData.code, `worklet_${workletHash}`);
|
|
29
|
+
} else {
|
|
30
|
+
// in release we use the regular eval to save on JSI calls
|
|
31
|
+
// eslint-disable-next-line no-eval
|
|
32
|
+
workletFun = eval(initData.code);
|
|
33
|
+
}
|
|
34
|
+
workletsCache.set(workletHash, workletFun);
|
|
35
|
+
}
|
|
36
|
+
const functionInstance = workletFun.bind(objectToUnpack);
|
|
37
|
+
objectToUnpack._recur = functionInstance;
|
|
38
|
+
return functionInstance;
|
|
39
|
+
} else if (objectToUnpack.__init !== undefined) {
|
|
40
|
+
let value = handleCache.get(objectToUnpack);
|
|
41
|
+
if (value === undefined) {
|
|
42
|
+
value = objectToUnpack.__init();
|
|
43
|
+
handleCache.set(objectToUnpack, value);
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
} else {
|
|
47
|
+
throw new Error(`[Worklets] Data type not recognized by value unpacker: "${globalThis._toString(objectToUnpack)}".`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
globalThis.__valueUnpacker = valueUnpacker;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=valueUnpacker.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["installValueUnpacker","workletsCache","Map","handleCache","WeakMap","valueUnpacker","objectToUnpack","workletHash","__workletHash","undefined","workletFun","get","initData","__initData","bytecode","globalThis","evalBytecode","evalWithSourceMap","sourceMap","code","location","evalWithSourceUrl","eval","set","functionInstance","bind","_recur","__init","value","Error","_toString","__valueUnpacker"],"sourceRoot":"../../../src","sources":["memory/valueUnpacker.native.ts"],"mappings":"AAAA,YAAY;;AAcZ,OAAO,SAASA,oBAAoBA,CAAA,EAAG;EACrC,SAAS;EACT,oBAAoB;;EACpB,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAwB,CAAC;EACtD,MAAMC,WAAW,GAAG,IAAIC,OAAO,CAAkB,CAAC;EAElD,SAASC,aAAaA,CAACC,cAA8B,EAAW;IAC9D,MAAMC,WAAW,GAAGD,cAAc,CAACE,aAAa;IAChD,IAAID,WAAW,KAAKE,SAAS,EAAE;MAC7B,IAAIC,UAAU,GAAGT,aAAa,CAACU,GAAG,CAACJ,WAAW,CAAC;MAC/C,IAAIG,UAAU,KAAKD,SAAS,EAAE;QAC5B,MAAMG,QAAQ,GAAGN,cAAc,CAACO,UAAU;QAC1C,IAAID,QAAQ,CAAEE,QAAQ,KAAKL,SAAS,EAAE;UACpCC,UAAU,GAAGK,UAAU,CAACC,YAAY,CAAEJ,QAAQ,CAAEE,QAAQ,CAAC;QAC3D,CAAC,MAAM,IAAIC,UAAU,CAACE,iBAAiB,IAAIL,QAAQ,CAAEM,SAAS,EAAE;UAC9D;UACA;UACA;UACA;UACAR,UAAU,GAAGK,UAAU,CAACE,iBAAiB,CACvCL,QAAQ,CAAEO,IAAI,EACdP,QAAQ,CAAEQ,QAAQ,EAClBR,QAAQ,CAAEM,SACZ,CAAC;QACH,CAAC,MAAM,IAAIH,UAAU,CAACM,iBAAiB,EAAE;UACvC;UACA;UACA;UACA;UACAX,UAAU,GAAGK,UAAU,CAACM,iBAAiB,CACvCT,QAAQ,CAAEO,IAAI,EACd,WAAWZ,WAAW,EACxB,CAAC;QACH,CAAC,MAAM;UACL;UACA;UACAG,UAAU,GAAGY,IAAI,CAACV,QAAQ,CAAEO,IAAK,CAAC;QACpC;QACAlB,aAAa,CAACsB,GAAG,CAAChB,WAAW,EAAEG,UAAW,CAAC;MAC7C;MACA,MAAMc,gBAAgB,GAAGd,UAAU,CAAEe,IAAI,CAACnB,cAAc,CAAC;MACzDA,cAAc,CAACoB,MAAM,GAAGF,gBAAgB;MACxC,OAAOA,gBAAgB;IACzB,CAAC,MAAM,IAAIlB,cAAc,CAACqB,MAAM,KAAKlB,SAAS,EAAE;MAC9C,IAAImB,KAAK,GAAGzB,WAAW,CAACQ,GAAG,CAACL,cAAc,CAAC;MAC3C,IAAIsB,KAAK,KAAKnB,SAAS,EAAE;QACvBmB,KAAK,GAAGtB,cAAc,CAACqB,MAAM,CAAC,CAAC;QAC/BxB,WAAW,CAACoB,GAAG,CAACjB,cAAc,EAAEsB,KAAK,CAAC;MACxC;MACA,OAAOA,KAAK;IACd,CAAC,MAAM;MACL,MAAM,IAAIC,KAAK,CACb,2DAA2Dd,UAAU,CAACe,SAAS,CAC7ExB,cACF,CAAC,IACH,CAAC;IACH;EACF;EAEAS,UAAU,CAACgB,eAAe,GAAG1B,aAA8B;AAC7D","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { mockedRequestAnimationFrame } from "./runLoop/uiRuntime/mockedRequestAnimationFrame.js";
|
|
4
|
+
import { RuntimeKind } from "./runtimeKind.js";
|
|
5
|
+
import { isWorkletFunction } from "./workletFunction.js";
|
|
6
|
+
const NOOP = () => {};
|
|
7
|
+
const NOOP_FACTORY = () => NOOP;
|
|
8
|
+
const ID = value => value;
|
|
9
|
+
const IMMEDIATE_CALLBACK_INVOCATION = callback => callback();
|
|
10
|
+
globalThis._WORKLET = false;
|
|
11
|
+
globalThis.__RUNTIME_KIND = RuntimeKind.ReactNative;
|
|
12
|
+
globalThis._log = console.log;
|
|
13
|
+
globalThis._getAnimationTimestamp = () => performance.now();
|
|
14
|
+
// requestAnimationFrame react-native jest's setup is incorrect as it polyfills
|
|
15
|
+
// the method directly using setTimeout, therefore the callback doesn't get the
|
|
16
|
+
// expected timestamp as the only argument.
|
|
17
|
+
// We override this setup here to make sure that callbacks get the proper timestamps
|
|
18
|
+
// when executed. For non-jest environments we define requestAnimationFrame in setupRequestAnimationFrame
|
|
19
|
+
// @ts-ignore TypeScript uses Node definition for rAF, setTimeout, etc which returns a Timeout object rather than a number
|
|
20
|
+
globalThis.requestAnimationFrame = mockedRequestAnimationFrame;
|
|
21
|
+
const WorkletAPI = {
|
|
22
|
+
isShareableRef: () => true,
|
|
23
|
+
makeShareable: ID,
|
|
24
|
+
makeShareableCloneOnUIRecursive: ID,
|
|
25
|
+
makeShareableCloneRecursive: ID,
|
|
26
|
+
shareableMappingCache: new Map(),
|
|
27
|
+
getStaticFeatureFlag: () => false,
|
|
28
|
+
setDynamicFeatureFlag: NOOP,
|
|
29
|
+
isSynchronizable: () => false,
|
|
30
|
+
getRuntimeKind: () => RuntimeKind.ReactNative,
|
|
31
|
+
RuntimeKind: RuntimeKind,
|
|
32
|
+
createWorkletRuntime: NOOP_FACTORY,
|
|
33
|
+
runOnRuntime: ID,
|
|
34
|
+
runOnRuntimeAsync(_workletRuntime, worklet, ...args) {
|
|
35
|
+
return WorkletAPI.runOnUIAsync(worklet, ...args);
|
|
36
|
+
},
|
|
37
|
+
scheduleOnRuntime: IMMEDIATE_CALLBACK_INVOCATION,
|
|
38
|
+
createSerializable: ID,
|
|
39
|
+
isSerializableRef: ID,
|
|
40
|
+
serializableMappingCache: new Map(),
|
|
41
|
+
createSynchronizable: ID,
|
|
42
|
+
callMicrotasks: NOOP,
|
|
43
|
+
executeOnUIRuntimeSync: ID,
|
|
44
|
+
runOnJS(fun) {
|
|
45
|
+
return (...args) => queueMicrotask(args.length ? () => fun(...args) : fun);
|
|
46
|
+
},
|
|
47
|
+
runOnUI(worklet) {
|
|
48
|
+
return (...args) => {
|
|
49
|
+
// Mocking time in Jest is tricky as both requestAnimationFrame and queueMicrotask
|
|
50
|
+
// callbacks run on the same queue and can be interleaved. There is no way
|
|
51
|
+
// to flush particular queue in Jest and the only control over mocked timers
|
|
52
|
+
// is by using jest.advanceTimersByTime() method which advances all types
|
|
53
|
+
// of timers including immediate and animation callbacks. Ideally we'd like
|
|
54
|
+
// to have some way here to schedule work along with React updates, but
|
|
55
|
+
// that's not possible, and hence in Jest environment instead of using scheduling
|
|
56
|
+
// mechanism we just schedule the work ommiting the queue. This is ok for the
|
|
57
|
+
// uses that we currently have but may not be ok for future tests that we write.
|
|
58
|
+
mockedRequestAnimationFrame(() => {
|
|
59
|
+
worklet(...args);
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
runOnUIAsync(worklet, ...args) {
|
|
64
|
+
return new Promise(resolve => {
|
|
65
|
+
mockedRequestAnimationFrame(() => {
|
|
66
|
+
const result = worklet(...args);
|
|
67
|
+
resolve(result);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
runOnUISync: IMMEDIATE_CALLBACK_INVOCATION,
|
|
72
|
+
scheduleOnRN(fun, ...args) {
|
|
73
|
+
WorkletAPI.runOnJS(fun)(...args);
|
|
74
|
+
},
|
|
75
|
+
scheduleOnUI(worklet, ...args) {
|
|
76
|
+
WorkletAPI.runOnUI(worklet)(...args);
|
|
77
|
+
},
|
|
78
|
+
isWorkletFunction: isWorkletFunction,
|
|
79
|
+
WorkletsModule: {}
|
|
80
|
+
};
|
|
81
|
+
module.exports = {
|
|
82
|
+
__esModule: true,
|
|
83
|
+
...WorkletAPI
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mockedRequestAnimationFrame","RuntimeKind","isWorkletFunction","NOOP","NOOP_FACTORY","ID","value","IMMEDIATE_CALLBACK_INVOCATION","callback","globalThis","_WORKLET","__RUNTIME_KIND","ReactNative","_log","console","log","_getAnimationTimestamp","performance","now","requestAnimationFrame","WorkletAPI","isShareableRef","makeShareable","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","shareableMappingCache","Map","getStaticFeatureFlag","setDynamicFeatureFlag","isSynchronizable","getRuntimeKind","createWorkletRuntime","runOnRuntime","runOnRuntimeAsync","_workletRuntime","worklet","args","runOnUIAsync","scheduleOnRuntime","createSerializable","isSerializableRef","serializableMappingCache","createSynchronizable","callMicrotasks","executeOnUIRuntimeSync","runOnJS","fun","queueMicrotask","length","runOnUI","Promise","resolve","result","runOnUISync","scheduleOnRN","scheduleOnUI","WorkletsModule","module","exports","__esModule"],"sourceRoot":"../../src","sources":["mock.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IS_JEST","globalThis","jest","process","env","NODE_ENV"],"sourceRoot":"../../src","sources":["platformChecker.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,MAAMA,OAAgB,GAC3B,OAAOC,UAAU,CAACC,IAAI,KAAK,WAAW,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IS_JEST"],"sourceRoot":"../../src","sources":["platformChecker.native.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,MAAMA,OAAO,GAAG,KAAK","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-function-type */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// This file works by accident - currently Builder Bob doesn't move `.d.ts` files to output types.
|
|
5
|
+
// If it ever breaks, we should address it so we'd not pollute the user's global namespace.
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=privateGlobals.d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["privateGlobals.d.ts"],"mappings":"AAAA;AACA,YAAY;;AAEZ;AACA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function setupSetImmediate() {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
const setImmediatePolyfill = (callback, ...args) => {
|
|
7
|
+
return setTimeout(callback, 0, ...args);
|
|
8
|
+
};
|
|
9
|
+
const clearImmediatePolyfill = immediateHandle => {
|
|
10
|
+
clearTimeout(immediateHandle);
|
|
11
|
+
};
|
|
12
|
+
globalThis.setImmediate = setImmediatePolyfill;
|
|
13
|
+
globalThis.clearImmediate = clearImmediatePolyfill;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=setImmediatePolyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupSetImmediate","setImmediatePolyfill","callback","args","setTimeout","clearImmediatePolyfill","immediateHandle","clearTimeout","globalThis","setImmediate","clearImmediate"],"sourceRoot":"../../../../src","sources":["runLoop/common/setImmediatePolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,iBAAiBA,CAAA,EAAG;EAClC,SAAS;;EAET,MAAMC,oBAAoB,GAAGA,CAC3BC,QAAsC,EACtC,GAAGC,IAAe,KACf;IACH,OAAOC,UAAU,CAACF,QAAQ,EAAE,CAAC,EAAE,GAAGC,IAAI,CAAC;EACzC,CAAC;EAED,MAAME,sBAAsB,GAAIC,eAAuB,IAAK;IAC1DC,YAAY,CAACD,eAAe,CAAC;EAC/B,CAAC;EAEDE,UAAU,CAACC,YAAY,GACrBR,oBAAsD;EACxDO,UAAU,CAACE,cAAc,GAAGL,sBAA+C;AAC7E","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function setupSetInterval() {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
const intervalHandleToTimeoutHandle = new Map();
|
|
7
|
+
const setIntervalPolyfill = (callback, delay = 0, ...args) => {
|
|
8
|
+
let intervalHandle = 0;
|
|
9
|
+
const repeatingCallback = () => {
|
|
10
|
+
const timeoutHandle = setTimeout(repeatingCallback, delay);
|
|
11
|
+
intervalHandleToTimeoutHandle.set(intervalHandle, timeoutHandle);
|
|
12
|
+
callback(...args);
|
|
13
|
+
};
|
|
14
|
+
intervalHandle = setTimeout(repeatingCallback, delay);
|
|
15
|
+
intervalHandleToTimeoutHandle.set(intervalHandle, intervalHandle);
|
|
16
|
+
return intervalHandle;
|
|
17
|
+
};
|
|
18
|
+
const clearIntervalPolyfill = intervalHandle => {
|
|
19
|
+
const timeoutHandle = intervalHandleToTimeoutHandle.get(intervalHandle);
|
|
20
|
+
clearTimeout(timeoutHandle);
|
|
21
|
+
intervalHandleToTimeoutHandle.delete(intervalHandle);
|
|
22
|
+
};
|
|
23
|
+
globalThis.setInterval = setIntervalPolyfill;
|
|
24
|
+
globalThis.clearInterval = clearIntervalPolyfill;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=setIntervalPolyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupSetInterval","intervalHandleToTimeoutHandle","Map","setIntervalPolyfill","callback","delay","args","intervalHandle","repeatingCallback","timeoutHandle","setTimeout","set","clearIntervalPolyfill","get","clearTimeout","delete","globalThis","setInterval","clearInterval"],"sourceRoot":"../../../../src","sources":["runLoop/common/setIntervalPolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,gBAAgBA,CAAA,EAAG;EACjC,SAAS;;EAET,MAAMC,6BAAkD,GAAG,IAAIC,GAAG,CAAC,CAAC;EAEpE,MAAMC,mBAAmB,GAAGA,CAC1BC,QAAsC,EACtCC,KAAa,GAAG,CAAC,EACjB,GAAGC,IAAe,KACf;IACH,IAAIC,cAAc,GAAG,CAAC;IAEtB,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;MAC9B,MAAMC,aAAa,GAAGC,UAAU,CAC9BF,iBAAiB,EACjBH,KACF,CAAsB;MACtBJ,6BAA6B,CAACU,GAAG,CAACJ,cAAc,EAAEE,aAAa,CAAC;MAChEL,QAAQ,CAAC,GAAGE,IAAI,CAAC;IACnB,CAAC;IAEDC,cAAc,GAAGG,UAAU,CAACF,iBAAiB,EAAEH,KAAK,CAAsB;IAC1EJ,6BAA6B,CAACU,GAAG,CAACJ,cAAc,EAAEA,cAAc,CAAC;IAEjE,OAAOA,cAAc;EACvB,CAAC;EAED,MAAMK,qBAAqB,GAAIL,cAAsB,IAAK;IACxD,MAAME,aAAa,GAAGR,6BAA6B,CAACY,GAAG,CAACN,cAAc,CAAC;IACvEO,YAAY,CAACL,aAAa,CAAC;IAC3BR,6BAA6B,CAACc,MAAM,CAACR,cAAc,CAAC;EACtD,CAAC;EAEDS,UAAU,CAACC,WAAW,GAAGd,mBAAyC;EAClEa,UAAU,CAACE,aAAa,GAAGN,qBAA6C;AAC1E","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This is Jest implementation of `requestAnimationFrame` that is required by
|
|
5
|
+
* React Native for test purposes.
|
|
6
|
+
*/
|
|
7
|
+
export function mockedRequestAnimationFrame(callback) {
|
|
8
|
+
return setTimeout(() => callback(performance.now()), 0);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=mockedRequestAnimationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mockedRequestAnimationFrame","callback","setTimeout","performance","now"],"sourceRoot":"../../../../src","sources":["runLoop/uiRuntime/mockedRequestAnimationFrame.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,OAAO,SAASA,2BAA2BA,CACzCC,QAAqC,EACN;EAC/B,OAAOC,UAAU,CAAC,MAAMD,QAAQ,CAACE,WAAW,CAACC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD","ignoreList":[]}
|