@depup/react-native-worklets 0.11.3-depup.0 → 0.12.1-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/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.cpp +6 -3
- package/Common/cpp/worklets/Compat/StableApi.cpp +4 -0
- package/Common/cpp/worklets/Compat/StableApi.h +3 -1
- package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +26 -43
- package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +32 -0
- package/Common/cpp/worklets/RunLoop/EventLoop.cpp +16 -7
- package/Common/cpp/worklets/RunLoop/EventLoop.h +4 -2
- package/Common/cpp/worklets/SharedItems/MemoryManager.cpp +2 -2
- package/Common/cpp/worklets/SharedItems/Serializable.h +14 -16
- package/Common/cpp/worklets/Tools/UIScheduler.cpp +10 -0
- package/Common/cpp/worklets/Tools/UIScheduler.h +3 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +23 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +7 -4
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +2 -1
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +60 -88
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +335 -122
- package/README.md +2 -2
- package/android/build.gradle.kts +20 -6
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.cpp +10 -8
- package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.cpp +2 -11
- package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.h +1 -4
- package/android/src/main/java/com/swmansion/worklets/AndroidUIScheduler.kt +3 -0
- package/android/src/main/java/com/swmansion/worklets/ScriptBufferWrapper.kt +87 -43
- package/android/src/networking/com/swmansion/worklets/WorkletsModule.kt +25 -9
- package/android/src/no-networking/com/swmansion/worklets/WorkletsModule.kt +25 -9
- package/apple/worklets/apple/IOSUIScheduler.h +3 -0
- package/apple/worklets/apple/IOSUIScheduler.mm +6 -1
- package/apple/worklets/apple/ScriptLoader.h +11 -0
- package/apple/worklets/apple/ScriptLoader.mm +124 -0
- package/apple/worklets/apple/WorkletsModule.h +1 -16
- package/apple/worklets/apple/WorkletsModule.mm +4 -16
- package/changes.json +1 -1
- package/compatibility.json +4 -1
- package/lib/module/WorkletsModule/NativeWorklets.native.js +2 -2
- package/lib/module/WorkletsModule/NativeWorklets.native.js.map +1 -1
- package/lib/module/debug/jsVersion.js +1 -1
- package/lib/module/memory/serializable.native.js +59 -21
- package/lib/module/memory/serializable.native.js.map +1 -1
- package/lib/module/mock.js +58 -17
- package/lib/module/mock.js.map +1 -1
- package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js +1 -2
- package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js.map +1 -1
- package/lib/module/runLoop/workletRuntime/taskQueue.js +0 -1
- package/lib/module/runLoop/workletRuntime/taskQueue.js.map +1 -1
- package/lib/module/runtimes.native.js +7 -8
- package/lib/module/runtimes.native.js.map +1 -1
- package/lib/module/threads.js +35 -24
- package/lib/module/threads.js.map +1 -1
- package/lib/typescript/WorkletsModule/NativeWorklets.native.d.ts.map +1 -1
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +1 -1
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -1
- package/lib/typescript/debug/jsVersion.d.ts +1 -1
- package/lib/typescript/memory/serializable.native.d.ts.map +1 -1
- package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts.map +1 -1
- package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts.map +1 -1
- package/lib/typescript/runtimes.native.d.ts.map +1 -1
- package/lib/typescript/specs/NativeWorkletsModule.d.ts +1 -1
- package/lib/typescript/threads.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +38 -8
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +14 -15
- package/plugin/index.js +1625 -1572
- package/src/WorkletsModule/NativeWorklets.native.ts +4 -2
- package/src/WorkletsModule/workletsModuleProxy.ts +2 -1
- package/src/debug/jsVersion.ts +1 -1
- package/src/memory/serializable.native.ts +103 -36
- package/src/mock.ts +85 -23
- package/src/runLoop/uiRuntime/requestAnimationFrame.ts +1 -2
- package/src/runLoop/workletRuntime/taskQueue.ts +0 -1
- package/src/runtimes.native.ts +12 -8
- package/src/threads.ts +38 -26
- package/src/types.ts +42 -8
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -95
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -44
- package/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -34
- package/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -44
- package/jest/pluginTestUtils.ts +0 -16
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
// EventHandlerRegistry was fully moved to Reanimated.
|
|
2
|
-
// This file is kept only for backwards compatibility with older versions of Reanimated.
|
|
3
|
-
|
|
4
|
-
#include <worklets/Registries/EventHandlerRegistry.h>
|
|
5
|
-
#include <worklets/Tools/WorkletEventHandler.h>
|
|
6
|
-
|
|
7
|
-
#include <memory>
|
|
8
|
-
#include <string>
|
|
9
|
-
#include <utility>
|
|
10
|
-
#include <vector>
|
|
11
|
-
|
|
12
|
-
namespace worklets {
|
|
13
|
-
|
|
14
|
-
void EventHandlerRegistry::registerEventHandler(const std::shared_ptr<WorkletEventHandler> &eventHandler) {
|
|
15
|
-
const std::lock_guard<std::mutex> lock(instanceMutex);
|
|
16
|
-
const auto &eventName = eventHandler->getEventName();
|
|
17
|
-
auto handlerId = eventHandler->getHandlerId();
|
|
18
|
-
|
|
19
|
-
if (eventHandler->shouldIgnoreEmitterReactTag()) {
|
|
20
|
-
eventMappingsWithoutTag[eventName][handlerId] = eventHandler;
|
|
21
|
-
} else {
|
|
22
|
-
const auto emitterReactTag = eventHandler->getEmitterReactTag();
|
|
23
|
-
const auto eventHash = std::make_pair(emitterReactTag, eventName);
|
|
24
|
-
eventMappingsWithTag[eventHash][handlerId] = eventHandler;
|
|
25
|
-
}
|
|
26
|
-
eventHandlers[handlerId] = eventHandler;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
void EventHandlerRegistry::unregisterEventHandler(const uint64_t id) {
|
|
30
|
-
const std::lock_guard<std::mutex> lock(instanceMutex);
|
|
31
|
-
auto handlerIt = eventHandlers.find(id);
|
|
32
|
-
if (handlerIt != eventHandlers.end()) {
|
|
33
|
-
const auto &eventHandler = handlerIt->second;
|
|
34
|
-
const auto &eventName = eventHandler->getEventName();
|
|
35
|
-
|
|
36
|
-
if (eventHandler->shouldIgnoreEmitterReactTag()) {
|
|
37
|
-
const auto eventMappingIt = eventMappingsWithoutTag.find(eventName);
|
|
38
|
-
auto &handlersMap = eventMappingIt->second;
|
|
39
|
-
handlersMap.erase(id);
|
|
40
|
-
if (handlersMap.empty()) {
|
|
41
|
-
eventMappingsWithoutTag.erase(eventMappingIt);
|
|
42
|
-
}
|
|
43
|
-
} else {
|
|
44
|
-
const auto emitterReactTag = eventHandler->getEmitterReactTag();
|
|
45
|
-
const auto eventHash = std::make_pair(emitterReactTag, eventName);
|
|
46
|
-
const auto eventMappingIt = eventMappingsWithTag.find(eventHash);
|
|
47
|
-
auto &handlersMap = eventMappingIt->second;
|
|
48
|
-
handlersMap.erase(id);
|
|
49
|
-
if (handlersMap.empty()) {
|
|
50
|
-
eventMappingsWithTag.erase(eventMappingIt);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
eventHandlers.erase(handlerIt);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
void EventHandlerRegistry::processEvent(
|
|
58
|
-
const std::shared_ptr<WorkletRuntime> &uiWorkletRuntime,
|
|
59
|
-
const double eventTimestamp,
|
|
60
|
-
const std::string &eventName,
|
|
61
|
-
const int emitterReactTag,
|
|
62
|
-
const jsi::Value &eventPayload) {
|
|
63
|
-
std::vector<std::shared_ptr<WorkletEventHandler>> handlersForEvent;
|
|
64
|
-
{
|
|
65
|
-
const std::lock_guard<std::mutex> lock(instanceMutex);
|
|
66
|
-
auto handlersIt = eventMappingsWithoutTag.find(eventName);
|
|
67
|
-
if (handlersIt != eventMappingsWithoutTag.end()) {
|
|
68
|
-
for (const auto &handler : handlersIt->second) {
|
|
69
|
-
handlersForEvent.push_back(handler.second);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const auto eventHash = std::make_pair(emitterReactTag, eventName);
|
|
73
|
-
auto handlersWithTagIt = eventMappingsWithTag.find(eventHash);
|
|
74
|
-
if (handlersWithTagIt != eventMappingsWithTag.end()) {
|
|
75
|
-
for (const auto &handler : handlersWithTagIt->second) {
|
|
76
|
-
handlersForEvent.push_back(handler.second);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
jsi::Runtime &rt = uiWorkletRuntime->getJSIRuntime();
|
|
82
|
-
eventPayload.asObject(rt).setProperty(rt, "eventName", jsi::String::createFromUtf8(rt, eventName));
|
|
83
|
-
for (const auto &handler : handlersForEvent) {
|
|
84
|
-
handler->process(uiWorkletRuntime, eventTimestamp, eventPayload);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
bool EventHandlerRegistry::isAnyHandlerWaitingForEvent(const std::string &eventName, const int emitterReactTag) {
|
|
89
|
-
const std::lock_guard<std::mutex> lock(instanceMutex);
|
|
90
|
-
const auto eventHash = std::make_pair(emitterReactTag, eventName);
|
|
91
|
-
auto it = eventMappingsWithTag.find(eventHash);
|
|
92
|
-
return it != eventMappingsWithTag.end() && !it->second.empty();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
} // namespace worklets
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// EventHandlerRegistry was fully moved to Reanimated.
|
|
2
|
-
// This file is kept only for backwards compatibility with older versions of Reanimated.
|
|
3
|
-
|
|
4
|
-
#pragma once
|
|
5
|
-
|
|
6
|
-
#include <worklets/WorkletRuntime/WorkletRuntime.h>
|
|
7
|
-
|
|
8
|
-
#include <jsi/jsi.h>
|
|
9
|
-
|
|
10
|
-
#include <map>
|
|
11
|
-
#include <memory>
|
|
12
|
-
#include <mutex>
|
|
13
|
-
#include <string>
|
|
14
|
-
#include <unordered_map>
|
|
15
|
-
#include <utility>
|
|
16
|
-
|
|
17
|
-
using namespace facebook;
|
|
18
|
-
|
|
19
|
-
namespace worklets {
|
|
20
|
-
|
|
21
|
-
class WorkletEventHandler;
|
|
22
|
-
|
|
23
|
-
class EventHandlerRegistry {
|
|
24
|
-
std::map<std::pair<int, std::string>, std::unordered_map<uint64_t, std::shared_ptr<WorkletEventHandler>>>
|
|
25
|
-
eventMappingsWithTag;
|
|
26
|
-
std::map<std::string, std::unordered_map<uint64_t, std::shared_ptr<WorkletEventHandler>>> eventMappingsWithoutTag;
|
|
27
|
-
std::map<uint64_t, std::shared_ptr<WorkletEventHandler>> eventHandlers;
|
|
28
|
-
std::mutex instanceMutex;
|
|
29
|
-
|
|
30
|
-
public:
|
|
31
|
-
void registerEventHandler(const std::shared_ptr<WorkletEventHandler> &eventHandler);
|
|
32
|
-
void unregisterEventHandler(const uint64_t id);
|
|
33
|
-
|
|
34
|
-
void processEvent(
|
|
35
|
-
const std::shared_ptr<WorkletRuntime> &uiWorkletRuntime,
|
|
36
|
-
const double eventTimestamp,
|
|
37
|
-
const std::string &eventName,
|
|
38
|
-
const int emitterReactTag,
|
|
39
|
-
const jsi::Value &eventPayload);
|
|
40
|
-
|
|
41
|
-
bool isAnyHandlerWaitingForEvent(const std::string &eventName, const int emitterReactTag);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
} // namespace worklets
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// WorkletEventHandler was fully moved to Reanimated.
|
|
2
|
-
// This file is kept only for backwards compatibility with older versions of Reanimated.
|
|
3
|
-
|
|
4
|
-
#include <worklets/Tools/WorkletEventHandler.h>
|
|
5
|
-
|
|
6
|
-
#include <memory>
|
|
7
|
-
#include <string>
|
|
8
|
-
|
|
9
|
-
namespace worklets {
|
|
10
|
-
|
|
11
|
-
void WorkletEventHandler::process(
|
|
12
|
-
const std::shared_ptr<WorkletRuntime> &workletRuntime,
|
|
13
|
-
const double eventTimestamp,
|
|
14
|
-
const jsi::Value &eventValue) const {
|
|
15
|
-
workletRuntime->runSync(handlerFunction_, jsi::Value(eventTimestamp), eventValue);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
uint64_t WorkletEventHandler::getHandlerId() const {
|
|
19
|
-
return handlerId_;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const std::string &WorkletEventHandler::getEventName() const {
|
|
23
|
-
return eventName_;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
uint64_t WorkletEventHandler::getEmitterReactTag() const {
|
|
27
|
-
return emitterReactTag_;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
bool WorkletEventHandler::shouldIgnoreEmitterReactTag() const {
|
|
31
|
-
return emitterReactTag_ == -1;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
} // namespace worklets
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// WorkletEventHandler was fully moved to Reanimated.
|
|
2
|
-
// This file is kept only for backwards compatibility with older versions of Reanimated.
|
|
3
|
-
|
|
4
|
-
#pragma once
|
|
5
|
-
|
|
6
|
-
#include <worklets/SharedItems/Serializable.h>
|
|
7
|
-
#include <worklets/WorkletRuntime/WorkletRuntime.h>
|
|
8
|
-
|
|
9
|
-
#include <jsi/jsi.h>
|
|
10
|
-
|
|
11
|
-
#include <memory>
|
|
12
|
-
#include <string>
|
|
13
|
-
|
|
14
|
-
using namespace facebook;
|
|
15
|
-
|
|
16
|
-
namespace worklets {
|
|
17
|
-
|
|
18
|
-
class WorkletEventHandler {
|
|
19
|
-
const uint64_t handlerId_;
|
|
20
|
-
const uint64_t emitterReactTag_;
|
|
21
|
-
const std::string eventName_;
|
|
22
|
-
const std::shared_ptr<SerializableWorklet> handlerFunction_;
|
|
23
|
-
|
|
24
|
-
public:
|
|
25
|
-
WorkletEventHandler(
|
|
26
|
-
const uint64_t handlerId,
|
|
27
|
-
const std::string &eventName,
|
|
28
|
-
const uint64_t emitterReactTag,
|
|
29
|
-
const std::shared_ptr<SerializableWorklet> &handlerFunction)
|
|
30
|
-
: handlerId_(handlerId),
|
|
31
|
-
emitterReactTag_(emitterReactTag),
|
|
32
|
-
eventName_(eventName),
|
|
33
|
-
handlerFunction_(handlerFunction) {}
|
|
34
|
-
void process(
|
|
35
|
-
const std::shared_ptr<WorkletRuntime> &workletRuntime,
|
|
36
|
-
double eventTimestamp,
|
|
37
|
-
const jsi::Value &eventValue) const;
|
|
38
|
-
uint64_t getHandlerId() const;
|
|
39
|
-
const std::string &getEventName() const;
|
|
40
|
-
uint64_t getEmitterReactTag() const;
|
|
41
|
-
bool shouldIgnoreEmitterReactTag() const;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
} // namespace worklets
|
package/jest/pluginTestUtils.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function countOccurrences(haystack: string, needle: string): number {
|
|
2
|
-
if (!needle) {
|
|
3
|
-
return 0;
|
|
4
|
-
}
|
|
5
|
-
let count = 0;
|
|
6
|
-
let from = 0;
|
|
7
|
-
while (true) {
|
|
8
|
-
const idx = haystack.indexOf(needle, from);
|
|
9
|
-
if (idx === -1) {
|
|
10
|
-
break;
|
|
11
|
-
}
|
|
12
|
-
count++;
|
|
13
|
-
from = idx + needle.length;
|
|
14
|
-
}
|
|
15
|
-
return count;
|
|
16
|
-
}
|