expo-modules-core 55.0.2 → 55.0.4
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/CHANGELOG.md +12 -0
- package/android/build.gradle +2 -2
- package/android/src/main/cpp/JSIContext.cpp +14 -2
- package/android/src/main/cpp/JSIContext.h +5 -14
- package/android/src/main/cpp/JavaScriptArrayBuffer.cpp +11 -12
- package/android/src/main/cpp/JavaScriptArrayBuffer.h +2 -7
- package/android/src/main/cpp/JavaScriptFunction.cpp +9 -13
- package/android/src/main/cpp/JavaScriptFunction.h +1 -7
- package/android/src/main/cpp/JavaScriptObject.cpp +78 -44
- package/android/src/main/cpp/JavaScriptObject.h +12 -17
- package/android/src/main/cpp/JavaScriptRuntime.cpp +1 -5
- package/android/src/main/cpp/JavaScriptRuntime.h +7 -1
- package/android/src/main/cpp/JavaScriptTypedArray.cpp +16 -18
- package/android/src/main/cpp/JavaScriptTypedArray.h +0 -6
- package/android/src/main/cpp/JavaScriptValue.cpp +48 -32
- package/android/src/main/cpp/JavaScriptValue.h +1 -7
- package/android/src/main/cpp/JavaScriptWeakObject.cpp +21 -15
- package/android/src/main/cpp/JavaScriptWeakObject.h +13 -10
- package/android/src/main/java/expo/modules/kotlin/AppContext.kt +13 -4
- package/android/src/main/java/expo/modules/kotlin/jni/JNIDeallocator.kt +10 -9
- package/android/src/main/java/expo/modules/kotlin/jni/JSIContext.kt +4 -4
- package/android/src/main/java/expo/modules/kotlin/jni/JavaCallback.kt +3 -3
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptArrayBuffer.kt +3 -3
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptFunction.kt +3 -3
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptModuleObject.kt +4 -4
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptObject.kt +3 -3
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptValue.kt +3 -3
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptWeakObject.kt +4 -3
- package/android/src/main/java/expo/modules/kotlin/jni/NativeArrayBuffer.kt +3 -3
- package/android/src/main/java/expo/modules/kotlin/jni/PromiseImpl.kt +5 -5
- package/android/src/main/java/expo/modules/kotlin/jni/decorators/JSDecoratorsBridgingObject.kt +4 -4
- package/android/src/main/java/expo/modules/kotlin/jni/worklets/Serializable.kt +3 -3
- package/ios/Core/Objects/ConstantDefinition.swift +9 -0
- package/ios/DevTools/ModuleDefinitionEncoder.swift +11 -14
- package/package.json +3 -3
- package/android/src/main/cpp/WeakRuntimeHolder.cpp +0 -24
- package/android/src/main/cpp/WeakRuntimeHolder.h +0 -40
|
@@ -16,7 +16,12 @@ class ModuleDefinitionEncoder: Encodable {
|
|
|
16
16
|
func encode(to encoder: Encoder) throws {
|
|
17
17
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
18
18
|
try container.encode(definition.name, forKey: .name)
|
|
19
|
-
|
|
19
|
+
var allConstants: [[ConstantEncoder]] = []
|
|
20
|
+
allConstants.append(contentsOf: definition.legacyConstants.map({ LegacyConstantsDefinitionEncoder($0).getEncoders() }))
|
|
21
|
+
if !definition.constants.isEmpty {
|
|
22
|
+
allConstants.append(definition.constants.values.map({ ConstantEncoder($0.name, value: $0.getRawValue()) }))
|
|
23
|
+
}
|
|
24
|
+
try container.encode(allConstants, forKey: .constants)
|
|
20
25
|
try container.encode(definition.properties.values.map({ PropertyDefinitionEncoder($0) }), forKey: .properties)
|
|
21
26
|
try container.encode(definition.functions.values.map({ FunctionDefinitionEncoder($0) }), forKey: .functions)
|
|
22
27
|
try container.encode(definition.views.values.map({ ViewDefinitionEncoder($0) }), forKey: .views)
|
|
@@ -130,10 +135,10 @@ class ConstantEncoder: Encodable {
|
|
|
130
135
|
case nil:
|
|
131
136
|
try container.encodeNil(forKey: .value)
|
|
132
137
|
try container.encode("null", forKey: .type)
|
|
133
|
-
case
|
|
138
|
+
case _ as [String: Any]:
|
|
134
139
|
try container.encodeNil(forKey: .value)
|
|
135
140
|
try container.encode("object", forKey: .type)
|
|
136
|
-
case
|
|
141
|
+
case _ as [Any]:
|
|
137
142
|
try container.encodeNil(forKey: .value)
|
|
138
143
|
try container.encode("array", forKey: .type)
|
|
139
144
|
default:
|
|
@@ -143,24 +148,16 @@ class ConstantEncoder: Encodable {
|
|
|
143
148
|
}
|
|
144
149
|
}
|
|
145
150
|
|
|
146
|
-
class LegacyConstantsDefinitionEncoder
|
|
151
|
+
class LegacyConstantsDefinitionEncoder {
|
|
147
152
|
private let definition: ConstantsDefinition
|
|
148
153
|
|
|
149
154
|
init(_ definition: ConstantsDefinition) {
|
|
150
155
|
self.definition = definition
|
|
151
156
|
}
|
|
152
157
|
|
|
153
|
-
|
|
154
|
-
case name
|
|
155
|
-
case value
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
func encode(to encoder: Encoder) throws {
|
|
159
|
-
var container = encoder.unkeyedContainer()
|
|
158
|
+
func getEncoders() -> [ConstantEncoder] {
|
|
160
159
|
let constants = definition.body()
|
|
161
|
-
|
|
162
|
-
try container.encode(ConstantEncoder(key, value: value))
|
|
163
|
-
}
|
|
160
|
+
return constants.map { (key, value) in ConstantEncoder(key, value: value) }
|
|
164
161
|
}
|
|
165
162
|
}
|
|
166
163
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-modules-core",
|
|
3
|
-
"version": "55.0.
|
|
3
|
+
"version": "55.0.4",
|
|
4
4
|
"description": "The core of Expo Modules architecture",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@testing-library/react-native": "^13.2.0",
|
|
67
|
-
"expo-module-scripts": "^55.0.
|
|
67
|
+
"expo-module-scripts": "^55.0.2"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "7d7f6762fc6907c27a329953c682134a84410dea"
|
|
70
70
|
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#include "WeakRuntimeHolder.h"
|
|
2
|
-
#include "JavaScriptRuntime.h"
|
|
3
|
-
#include "JSIContext.h"
|
|
4
|
-
|
|
5
|
-
namespace expo {
|
|
6
|
-
WeakRuntimeHolder::WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime)
|
|
7
|
-
: std::weak_ptr<JavaScriptRuntime>(std::move(runtime)) {}
|
|
8
|
-
|
|
9
|
-
jsi::Runtime &WeakRuntimeHolder::getJSRuntime() const {
|
|
10
|
-
auto runtime = lock();
|
|
11
|
-
assert((runtime != nullptr) && "JS Runtime was used after deallocation");
|
|
12
|
-
return runtime->get();
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
void WeakRuntimeHolder::ensureRuntimeIsValid() {
|
|
16
|
-
assert((!expired()) && "JS Runtime was used after deallocation");
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
JSIContext *WeakRuntimeHolder::getJSIContext() {
|
|
20
|
-
auto runtime = lock();
|
|
21
|
-
assert((runtime != nullptr) && "JS Runtime was used after deallocation");
|
|
22
|
-
return expo::getJSIContext(runtime->get());
|
|
23
|
-
}
|
|
24
|
-
} // namespace expo
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// Copyright © 2021-present 650 Industries, Inc. (aka Expo)
|
|
2
|
-
|
|
3
|
-
#pragma once
|
|
4
|
-
|
|
5
|
-
#include <jsi/jsi.h>
|
|
6
|
-
|
|
7
|
-
#include <memory>
|
|
8
|
-
|
|
9
|
-
namespace jsi = facebook::jsi;
|
|
10
|
-
|
|
11
|
-
namespace expo {
|
|
12
|
-
|
|
13
|
-
class JavaScriptRuntime;
|
|
14
|
-
|
|
15
|
-
class JSIContext;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* A convenient class to access underlying jni::Runtime and hold a weak reference to expo::JavaScriptRuntime.
|
|
19
|
-
* It's working like std::weak_ptr but can have more helper methods.
|
|
20
|
-
*/
|
|
21
|
-
class WeakRuntimeHolder : public std::weak_ptr<JavaScriptRuntime> {
|
|
22
|
-
public:
|
|
23
|
-
WeakRuntimeHolder() = default;
|
|
24
|
-
|
|
25
|
-
WeakRuntimeHolder(WeakRuntimeHolder const &) = default;
|
|
26
|
-
|
|
27
|
-
WeakRuntimeHolder(WeakRuntimeHolder &&) = default;
|
|
28
|
-
|
|
29
|
-
WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime);
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @return an reference to the jsi::Runtime.
|
|
33
|
-
*/
|
|
34
|
-
jsi::Runtime &getJSRuntime() const;
|
|
35
|
-
|
|
36
|
-
JSIContext *getJSIContext();
|
|
37
|
-
|
|
38
|
-
void ensureRuntimeIsValid();
|
|
39
|
-
};
|
|
40
|
-
} // namespace expo
|