expo-modules-core 1.11.13 → 1.12.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/CHANGELOG.md +72 -15
- package/ExpoModulesCore.podspec +7 -4
- package/android/ExpoModulesCorePlugin.gradle +36 -28
- package/android/build.gradle +12 -93
- package/android/proguard-rules.pro +0 -8
- package/android/src/main/cpp/Exceptions.cpp +1 -1
- package/android/src/main/cpp/Exceptions.h +1 -1
- package/android/src/main/cpp/ExpoModulesHostObject.cpp +7 -6
- package/android/src/main/cpp/ExpoModulesHostObject.h +3 -3
- package/android/src/main/cpp/JNIInjector.cpp +4 -2
- package/android/src/main/cpp/JSIContext.cpp +354 -0
- package/android/src/main/cpp/{JSIInteropModuleRegistry.h → JSIContext.h} +90 -9
- package/android/src/main/cpp/JavaCallback.cpp +210 -24
- package/android/src/main/cpp/JavaCallback.h +42 -7
- package/android/src/main/cpp/JavaScriptFunction.cpp +20 -6
- package/android/src/main/cpp/JavaScriptFunction.h +4 -1
- package/android/src/main/cpp/JavaScriptModuleObject.cpp +118 -82
- package/android/src/main/cpp/JavaScriptModuleObject.h +21 -18
- package/android/src/main/cpp/JavaScriptObject.cpp +7 -8
- package/android/src/main/cpp/JavaScriptObject.h +4 -2
- package/android/src/main/cpp/JavaScriptRuntime.cpp +18 -41
- package/android/src/main/cpp/JavaScriptRuntime.h +2 -8
- package/android/src/main/cpp/JavaScriptTypedArray.cpp +3 -3
- package/android/src/main/cpp/JavaScriptTypedArray.h +1 -1
- package/android/src/main/cpp/JavaScriptValue.cpp +7 -7
- package/android/src/main/cpp/JavaScriptValue.h +1 -1
- package/android/src/main/cpp/JavaScriptWeakObject.cpp +4 -4
- package/android/src/main/cpp/JavaScriptWeakObject.h +1 -1
- package/android/src/main/cpp/MethodMetadata.cpp +44 -120
- package/android/src/main/cpp/MethodMetadata.h +5 -11
- package/android/src/main/cpp/WeakRuntimeHolder.cpp +3 -3
- package/android/src/main/cpp/WeakRuntimeHolder.h +2 -2
- package/android/src/main/cpp/types/AnyType.cpp +1 -1
- package/android/src/main/cpp/types/AnyType.h +1 -1
- package/android/src/main/cpp/types/FrontendConverter.cpp +32 -43
- package/android/src/main/cpp/types/FrontendConverter.h +1 -23
- package/android/src/main/cpp/types/JNIToJSIConverter.cpp +5 -10
- package/android/src/main/cpp/types/JNIToJSIConverter.h +6 -2
- package/android/src/main/java/expo/modules/adapters/react/ModuleRegistryAdapter.java +3 -0
- package/android/src/main/java/expo/modules/adapters/react/NativeModulesProxy.java +14 -100
- package/android/src/main/java/expo/modules/adapters/react/ReactAdapterPackage.java +3 -5
- package/android/src/main/java/expo/modules/adapters/react/ReactModuleRegistryProvider.java +6 -22
- package/android/src/main/java/expo/modules/adapters/react/apploader/RNHeadlessAppLoader.kt +8 -4
- package/android/src/main/java/expo/modules/adapters/react/services/EventEmitterModule.java +0 -1
- package/android/src/main/java/expo/modules/adapters/react/services/UIManagerModuleWrapper.java +23 -8
- package/android/src/main/java/expo/modules/core/BasePackage.java +0 -10
- package/android/src/main/java/expo/modules/core/ModulePriorities.kt +1 -0
- package/android/src/main/java/expo/modules/core/ModuleRegistry.java +2 -32
- package/android/src/main/java/expo/modules/core/ModuleRegistryProvider.java +0 -18
- package/android/src/main/java/expo/modules/core/Promise.java +2 -0
- package/android/src/main/java/expo/modules/core/interfaces/Package.java +0 -17
- package/android/src/main/java/expo/modules/core/interfaces/ReactActivityHandler.java +0 -9
- package/android/src/main/java/expo/modules/core/interfaces/ReactNativeHostHandler.java +24 -31
- package/android/src/main/java/expo/modules/core/logging/LogHandler.kt +1 -7
- package/android/src/main/java/expo/modules/core/logging/LogHandlers.kt +11 -0
- package/android/src/main/java/expo/modules/core/logging/Logger.kt +18 -29
- package/android/src/main/java/expo/modules/core/logging/LoggerTimer.kt +11 -0
- package/android/src/main/java/expo/modules/core/logging/OSLogHandler.kt +2 -4
- package/android/src/main/java/expo/modules/core/logging/PersistentFileLogHandler.kt +1 -3
- package/android/src/main/java/expo/modules/interfaces/constants/ConstantsInterface.java +0 -2
- package/android/src/main/java/expo/modules/interfaces/permissions/PermissionsStatus.java +1 -1
- package/android/src/main/java/expo/modules/kotlin/AppContext.kt +43 -24
- package/android/src/main/java/expo/modules/kotlin/ArrayExtenstions.kt +15 -0
- package/android/src/main/java/expo/modules/kotlin/CoreLogger.kt +2 -2
- package/android/src/main/java/expo/modules/kotlin/DynamicExtenstions.kt +0 -3
- package/android/src/main/java/expo/modules/kotlin/ExpoBridgeModule.kt +41 -0
- package/android/src/main/java/expo/modules/kotlin/ExpoModulesHelper.kt +1 -2
- package/android/src/main/java/expo/modules/kotlin/KPromiseWrapper.kt +1 -2
- package/android/src/main/java/expo/modules/kotlin/KotlinInteropModuleRegistry.kt +1 -33
- package/android/src/main/java/expo/modules/kotlin/ModuleHolder.kt +7 -6
- package/android/src/main/java/expo/modules/kotlin/ModuleRegistry.kt +12 -12
- package/android/src/main/java/expo/modules/kotlin/Promise.kt +10 -0
- package/android/src/main/java/expo/modules/kotlin/ReactExtensions.kt +14 -0
- package/android/src/main/java/expo/modules/kotlin/Utils.kt +4 -1
- package/android/src/main/java/expo/modules/kotlin/activityaware/AppCompatActivityAwareHelper.kt +1 -1
- package/android/src/main/java/expo/modules/kotlin/activityresult/AppContextActivityResultCaller.kt +1 -1
- package/android/src/main/java/expo/modules/kotlin/activityresult/AppContextActivityResultRegistry.kt +6 -6
- package/android/src/main/java/expo/modules/kotlin/classcomponent/ClassComponentBuilder.kt +44 -15
- package/android/src/main/java/expo/modules/kotlin/defaultmodules/CoreModule.kt +31 -1
- package/android/src/main/java/expo/modules/kotlin/defaultmodules/ErrorManagerModule.kt +2 -4
- package/android/src/main/java/expo/modules/kotlin/events/KModuleEventEmitterWrapper.kt +11 -4
- package/android/src/main/java/expo/modules/kotlin/exception/CodedException.kt +2 -3
- package/android/src/main/java/expo/modules/kotlin/functions/AsyncFunctionBuilder.kt +136 -43
- package/android/src/main/java/expo/modules/kotlin/functions/AsyncFunctionComponent.kt +71 -2
- package/android/src/main/java/expo/modules/kotlin/functions/FunctionBuilder.kt +39 -12
- package/android/src/main/java/expo/modules/kotlin/jni/ExpectedType.kt +2 -2
- package/android/src/main/java/expo/modules/kotlin/jni/JNIDeallocator.kt +1 -1
- package/android/src/main/java/expo/modules/kotlin/jni/{JSIInteropModuleRegistry.kt → JSIContext.kt} +90 -14
- package/android/src/main/java/expo/modules/kotlin/jni/JavaCallback.kt +51 -24
- 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 -1
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptObject.kt +1 -0
- package/android/src/main/java/expo/modules/kotlin/jni/JavaScriptValue.kt +1 -0
- package/android/src/main/java/expo/modules/kotlin/jni/PromiseImpl.kt +20 -0
- package/android/src/main/java/expo/modules/kotlin/modules/Module.kt +0 -1
- package/android/src/main/java/expo/modules/kotlin/modules/ModuleDefinitionBuilder.kt +1 -1
- package/android/src/main/java/expo/modules/kotlin/objects/ObjectDefinitionBuilder.kt +164 -65
- package/android/src/main/java/expo/modules/kotlin/objects/PropertyComponentBuilder.kt +3 -4
- package/android/src/main/java/expo/modules/kotlin/sharedobjects/ClassRegistry.kt +21 -0
- package/android/src/main/java/expo/modules/kotlin/sharedobjects/SharedObject.kt +34 -1
- package/android/src/main/java/expo/modules/kotlin/sharedobjects/SharedObjectRegistry.kt +23 -8
- package/android/src/main/java/expo/modules/kotlin/sharedobjects/SharedRef.kt +7 -1
- package/android/src/main/java/expo/modules/kotlin/tracing/ExpoTrace.kt +4 -0
- package/android/src/main/java/expo/modules/kotlin/types/AnyType.kt +134 -2
- package/android/src/main/java/expo/modules/kotlin/types/EnforceType.kt +60 -0
- package/android/src/main/java/expo/modules/kotlin/types/EnumTypeConverter.kt +2 -2
- package/android/src/main/java/expo/modules/kotlin/types/TypeConverter.kt +0 -2
- package/android/src/main/java/expo/modules/kotlin/types/TypeConverterProvider.kt +3 -27
- package/android/src/main/java/expo/modules/kotlin/types/UnitTypeConverter.kt +3 -7
- package/android/src/main/java/expo/modules/kotlin/types/io/PathTypeConverter.kt +3 -0
- package/android/src/main/java/expo/modules/kotlin/viewevent/ViewEvent.kt +2 -5
- package/android/src/main/java/expo/modules/kotlin/views/ViewDefinitionBuilder.kt +137 -48
- package/android/src/main/java/expo/modules/kotlin/views/ViewManagerDefinition.kt +2 -5
- package/build/EventEmitter.d.ts +2 -2
- package/build/EventEmitter.d.ts.map +1 -1
- package/build/EventEmitter.js +8 -8
- package/build/EventEmitter.js.map +1 -1
- package/build/NativeModule.d.ts +4 -0
- package/build/NativeModule.d.ts.map +1 -0
- package/build/NativeModule.js +4 -0
- package/build/NativeModule.js.map +1 -0
- package/build/NativeModulesProxy.d.ts.map +1 -1
- package/build/NativeModulesProxy.native.d.ts.map +1 -1
- package/build/NativeModulesProxy.native.js +4 -0
- package/build/NativeModulesProxy.native.js.map +1 -1
- package/build/NativeModulesProxy.types.d.ts +2 -2
- package/build/NativeModulesProxy.types.d.ts.map +1 -1
- package/build/NativeModulesProxy.types.js.map +1 -1
- package/build/NativeViewManagerAdapter.native.d.ts.map +1 -1
- package/build/NativeViewManagerAdapter.native.js +20 -1
- package/build/NativeViewManagerAdapter.native.js.map +1 -1
- package/build/PermissionsHook.d.ts.map +1 -1
- package/build/PermissionsHook.js +2 -0
- package/build/PermissionsHook.js.map +1 -1
- package/build/Platform.d.ts.map +1 -1
- package/build/Refs.d.ts +8 -0
- package/build/Refs.d.ts.map +1 -0
- package/build/Refs.js +10 -0
- package/build/Refs.js.map +1 -0
- package/build/SharedObject.d.ts +4 -0
- package/build/SharedObject.d.ts.map +1 -0
- package/build/SharedObject.js +4 -0
- package/build/SharedObject.js.map +1 -0
- package/build/createWebModule.d.ts +2 -0
- package/build/createWebModule.d.ts.map +1 -0
- package/build/createWebModule.js +6 -0
- package/build/createWebModule.js.map +1 -0
- package/build/createWebModule.web.d.ts +2 -0
- package/build/createWebModule.web.d.ts.map +1 -0
- package/build/createWebModule.web.js +6 -0
- package/build/createWebModule.web.js.map +1 -0
- package/build/ensureNativeModulesAreInstalled.d.ts +6 -0
- package/build/ensureNativeModulesAreInstalled.d.ts.map +1 -0
- package/build/ensureNativeModulesAreInstalled.js +26 -0
- package/build/ensureNativeModulesAreInstalled.js.map +1 -0
- package/build/environment/browser.js.map +1 -1
- package/build/hooks/useReleasingSharedObject.d.ts +7 -0
- package/build/hooks/useReleasingSharedObject.d.ts.map +1 -0
- package/build/hooks/useReleasingSharedObject.js +40 -0
- package/build/hooks/useReleasingSharedObject.js.map +1 -0
- package/build/index.d.ts +8 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +8 -0
- package/build/index.js.map +1 -1
- package/build/requireNativeModule.d.ts +0 -17
- package/build/requireNativeModule.d.ts.map +1 -1
- package/build/requireNativeModule.js +2 -23
- package/build/requireNativeModule.js.map +1 -1
- package/build/sweet/setUpErrorManager.fx.js.map +1 -1
- package/build/ts-declarations/EventEmitter.d.ts +50 -0
- package/build/ts-declarations/EventEmitter.d.ts.map +1 -0
- package/build/ts-declarations/EventEmitter.js +2 -0
- package/build/ts-declarations/EventEmitter.js.map +1 -0
- package/build/ts-declarations/NativeModule.d.ts +14 -0
- package/build/ts-declarations/NativeModule.d.ts.map +1 -0
- package/build/ts-declarations/NativeModule.js +2 -0
- package/build/ts-declarations/NativeModule.js.map +1 -0
- package/build/ts-declarations/SharedObject.d.ts +14 -0
- package/build/ts-declarations/SharedObject.d.ts.map +1 -0
- package/build/ts-declarations/SharedObject.js +2 -0
- package/build/ts-declarations/SharedObject.js.map +1 -0
- package/build/ts-declarations/global.d.ts +49 -0
- package/build/ts-declarations/global.d.ts.map +1 -0
- package/build/ts-declarations/global.js +2 -0
- package/build/ts-declarations/global.js.map +1 -0
- package/build/uuid/lib/bytesToUuid.js.map +1 -1
- package/build/uuid/lib/sha1.js.map +1 -1
- package/build/uuid/lib/v35.js.map +1 -1
- package/build/uuid/uuid.js.map +1 -1
- package/build/uuid/uuid.web.js.map +1 -1
- package/build/web/CoreModule.d.ts +17 -0
- package/build/web/CoreModule.d.ts.map +1 -0
- package/build/web/CoreModule.js +51 -0
- package/build/web/CoreModule.js.map +1 -0
- package/build/web/index.d.ts +1 -0
- package/build/web/index.d.ts.map +1 -0
- package/build/web/index.js +1 -0
- package/build/web/index.js.map +1 -0
- package/build/web/index.web.d.ts +2 -0
- package/build/web/index.web.d.ts.map +1 -0
- package/build/web/index.web.js +2 -0
- package/build/web/index.web.js.map +1 -0
- package/common/cpp/BridgelessJSCallInvoker.h +41 -0
- package/common/cpp/EventEmitter.cpp +294 -0
- package/common/cpp/EventEmitter.h +111 -0
- package/common/cpp/JSIUtils.cpp +116 -11
- package/common/cpp/JSIUtils.h +54 -7
- package/common/cpp/LazyObject.cpp +15 -3
- package/common/cpp/LazyObject.h +13 -0
- package/common/cpp/NativeModule.cpp +16 -0
- package/common/cpp/NativeModule.h +34 -0
- package/common/cpp/ObjectDeallocator.cpp +3 -5
- package/common/cpp/ObjectDeallocator.h +2 -3
- package/common/cpp/SharedObject.cpp +69 -0
- package/common/cpp/SharedObject.h +59 -0
- package/common/cpp/TestingSyncJSCallInvoker.h +44 -0
- package/ios/Api/Builders/ClassComponentBuilder.swift +34 -0
- package/ios/{Objects → Api/Builders}/ObjectDefinitionBuilder.swift +3 -3
- package/ios/Api/Builders/ViewDefinitionBuilder.swift +53 -0
- package/ios/Api/Factories/AsyncFunctionFactories.swift +173 -0
- package/ios/{Classes/ClassComponentFactories.swift → Api/Factories/ClassFactories.swift} +19 -19
- package/ios/{Functions/ConcurrentFunctionDefinition.swift → Api/Factories/ConcurrentFunctionFactories.swift} +0 -113
- package/ios/{Modules/ModuleDefinitionComponents.swift → Api/Factories/EventListenersFactories.swift} +0 -20
- package/ios/Api/Factories/ModuleFactories.swift +6 -0
- package/ios/{Objects/ObjectDefinitionComponents.swift → Api/Factories/ObjectFactories.swift} +5 -5
- package/ios/Api/Factories/PropertyFactories.swift +50 -0
- package/ios/Api/Factories/SyncFunctionFactories.swift +173 -0
- package/ios/{Views/ViewManagerDefinitionComponents.swift → Api/Factories/ViewFactories.swift} +7 -6
- package/ios/AppDelegates/EXAppDelegateWrapper.h +0 -21
- package/ios/AppDelegates/EXAppDelegateWrapper.mm +37 -29
- package/ios/{AppContext.swift → Core/AppContext.swift} +34 -11
- package/ios/Core/Classes/AnyClassDefinitionElement.swift +37 -0
- package/ios/{Classes/ClassComponent.swift → Core/Classes/ClassDefinition.swift} +10 -10
- package/ios/{Conversions.swift → Core/Conversions.swift} +1 -1
- package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicSharedObjectType.swift +3 -3
- package/ios/Core/Events/EventObservingDefinition.swift +79 -0
- package/ios/Core/Events/LegacyEventEmitterCompat.swift +32 -0
- package/ios/Core/ExpoBridgeModule.h +18 -0
- package/ios/Core/ExpoBridgeModule.mm +88 -0
- package/ios/Core/ExpoRuntime.swift +6 -0
- package/ios/{Functions/AnyFunction.swift → Core/Functions/AnyFunctionDefinition.swift} +9 -2
- package/ios/Core/Functions/AsyncFunctionDefinition.swift +150 -0
- package/ios/Core/Functions/ConcurrentFunctionDefinition.swift +112 -0
- package/ios/Core/Functions/SyncFunctionDefinition.swift +108 -0
- package/ios/{JavaScriptUtils.swift → Core/JavaScriptUtils.swift} +4 -4
- package/ios/{Logging → Core/Logging}/LogHandlers.swift +12 -5
- package/ios/{Logging → Core/Logging}/Logger.swift +14 -92
- package/ios/Core/Logging/LoggerTimer.swift +22 -0
- package/ios/{ModuleHolder.swift → Core/ModuleHolder.swift} +2 -10
- package/ios/Core/Modules/CoreModule.swift +43 -0
- package/ios/{Modules → Core/Modules}/ModuleDefinition.swift +20 -12
- package/ios/{Modules → Core/Modules}/ModuleDefinitionBuilder.swift +1 -3
- package/ios/{Objects → Core/Objects}/ObjectDefinition.swift +9 -9
- package/ios/{Objects/PropertyComponent.swift → Core/Objects/PropertyDefinition.swift} +11 -64
- package/ios/Core/Protocols/AnyDefinition.swift +4 -0
- package/ios/Core/Protocols/AnyExpoView.swift +7 -0
- package/ios/Core/Protocols/AnyModule.swift +17 -0
- package/ios/Core/Protocols/AnyViewDefinition.swift +34 -0
- package/ios/Core/SharedObjects/SharedObject.swift +80 -0
- package/ios/{SharedObjects → Core/SharedObjects}/SharedObjectRegistry.swift +45 -19
- package/ios/{Views → Core/Views}/AnyViewProp.swift +1 -1
- package/ios/{Views → Core/Views}/ComponentData.swift +7 -7
- package/ios/{Views → Core/Views}/ExpoView.swift +1 -1
- package/ios/Core/Views/ViewDefinition.swift +97 -0
- package/ios/{Views → Core/Views}/ViewLifecycleMethod.swift +1 -1
- package/ios/{Views → Core/Views}/ViewModuleWrapper.swift +1 -1
- package/ios/Fabric/ExpoFabricView.swift +5 -6
- package/ios/FileSystemUtilities/FileSystemLegacyUtilities.swift +111 -0
- package/ios/JSI/EXJSIInstaller.h +28 -0
- package/ios/JSI/EXJSIInstaller.mm +54 -10
- package/ios/JSI/EXJSIUtils.h +15 -11
- package/ios/JSI/EXJSIUtils.mm +21 -49
- package/ios/JSI/EXJavaScriptObject.mm +2 -2
- package/ios/JSI/EXJavaScriptRuntime.h +15 -0
- package/ios/JSI/EXJavaScriptRuntime.mm +53 -26
- package/ios/JSI/EXSharedObjectUtils.h +15 -0
- package/ios/JSI/EXSharedObjectUtils.mm +18 -0
- package/ios/JSI/JavaScriptRuntime.swift +16 -0
- package/ios/Legacy/ModuleRegistry/EXModuleRegistry.m +1 -0
- package/ios/Legacy/ModuleRegistryProvider/EXModuleRegistryProvider.m +5 -0
- package/ios/Legacy/NativeModulesProxy/EXNativeModulesProxy.mm +5 -4
- package/ios/Legacy/Services/EXReactNativeAdapter.mm +34 -28
- package/ios/ReactDelegates/EXReactDelegateWrapper.h +4 -12
- package/ios/ReactDelegates/EXReactDelegateWrapper.mm +41 -0
- package/ios/ReactDelegates/EXReactRootViewFactory.h +38 -0
- package/ios/ReactDelegates/EXReactRootViewFactory.mm +54 -0
- package/ios/ReactDelegates/ExpoReactDelegate.swift +22 -15
- package/ios/ReactDelegates/ExpoReactDelegateHandler.swift +10 -21
- package/ios/ReactDelegates/RCTAppDelegate+Recreate.h +28 -0
- package/ios/ReactDelegates/RCTAppDelegate+Recreate.mm +47 -0
- package/ios/Tests/{ClassComponentSpec.swift → ClassDefinitionSpec.swift} +6 -6
- package/ios/Tests/ConvertiblesSpec.swift +6 -1
- package/ios/Tests/CoreModuleSpec.swift +0 -4
- package/ios/Tests/DynamicTypeSpec.swift +1 -1
- package/ios/Tests/EventEmitterSpec.swift +274 -0
- package/ios/Tests/ExceptionsSpec.swift +114 -54
- package/ios/Tests/ExpoModulesSpec.swift +4 -3
- package/ios/Tests/LoggerSpec.swift +80 -0
- package/ios/Tests/{PropertyComponentSpec.swift → PropertyDefinitionSpec.swift} +1 -1
- package/ios/Tests/SharedObjectRegistrySpec.swift +34 -28
- package/ios/Tests/SharedObjectSpec.swift +141 -0
- package/ios/Tests/ViewDefinitionSpec.swift +1 -1
- package/package.json +2 -2
- package/src/EventEmitter.ts +15 -18
- package/src/NativeModule.ts +6 -0
- package/src/NativeModulesProxy.native.ts +5 -0
- package/src/NativeModulesProxy.types.ts +2 -2
- package/src/NativeViewManagerAdapter.native.tsx +25 -1
- package/src/PermissionsHook.ts +4 -0
- package/src/Refs.ts +10 -0
- package/src/SharedObject.ts +6 -0
- package/src/createWebModule.ts +5 -0
- package/src/createWebModule.web.ts +6 -0
- package/src/ensureNativeModulesAreInstalled.ts +24 -0
- package/src/hooks/useReleasingSharedObject.ts +51 -0
- package/src/index.ts +13 -0
- package/src/requireNativeModule.ts +2 -51
- package/src/ts-declarations/EventEmitter.ts +65 -0
- package/src/ts-declarations/ExpoModules.d.ts +0 -5
- package/src/ts-declarations/NativeModule.ts +18 -0
- package/src/ts-declarations/SharedObject.ts +16 -0
- package/src/ts-declarations/global.ts +60 -0
- package/src/web/CoreModule.ts +83 -0
- package/src/web/index.ts +0 -0
- package/src/web/index.web.ts +1 -0
- package/android/src/main/cpp/JSIInteropModuleRegistry.cpp +0 -196
- package/android/src/main/java/expo/modules/adapters/react/ArgumentsHelper.java +0 -48
- package/android/src/main/java/expo/modules/adapters/react/PromiseWrapper.java +0 -38
- package/android/src/main/java/expo/modules/adapters/react/services/CookieManagerModule.java +0 -53
- package/android/src/main/java/expo/modules/core/ArgumentsHelper.java +0 -44
- package/android/src/main/java/expo/modules/core/ExportedModule.java +0 -173
- package/android/src/main/java/expo/modules/core/ModuleRegistryDelegate.kt +0 -12
- package/android/src/main/java/expo/modules/core/ViewManager.java +0 -9
- package/android/src/main/java/expo/modules/core/interfaces/ExpoMethod.java +0 -12
- package/android/src/main/java/expo/modules/core/interfaces/ExpoProp.java +0 -10
- package/android/src/main/java/expo/modules/core/logging/LoggerOptions.kt +0 -29
- package/android-annotation/build.gradle +0 -48
- package/android-annotation/src/main/java/expo/modules/annotation/Config.kt +0 -7
- package/android-annotation/src/main/java/expo/modules/annotation/ConverterBinder.kt +0 -7
- package/android-annotation-processor/build.gradle +0 -54
- package/android-annotation-processor/src/main/java/expo/modules/annotationprocessor/ExpoSymbolProcessor.kt +0 -175
- package/android-annotation-processor/src/main/java/expo/modules/annotationprocessor/ExpoSymbolProcessorProvider.kt +0 -10
- package/android-annotation-processor/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider +0 -1
- package/ios/Classes/ClassComponentElement.swift +0 -37
- package/ios/Classes/ClassComponentElementsBuilder.swift +0 -34
- package/ios/ExpoBridgeModule.m +0 -7
- package/ios/ExpoBridgeModule.swift +0 -108
- package/ios/ExpoRuntime.swift +0 -28
- package/ios/Functions/AsyncFunctionComponent.swift +0 -327
- package/ios/Functions/SyncFunctionComponent.swift +0 -282
- package/ios/Interfaces/Font/EXFontManagerInterface.h +0 -9
- package/ios/Interfaces/Font/EXFontProcessorInterface.h +0 -15
- package/ios/Interfaces/Font/EXFontScalerInterface.h +0 -9
- package/ios/Interfaces/Font/EXFontScalersManagerInterface.h +0 -9
- package/ios/Legacy/Services/EXReactFontManager.h +0 -6
- package/ios/Legacy/Services/EXReactFontManager.m +0 -130
- package/ios/Modules/AnyModule.swift +0 -53
- package/ios/Modules/CoreModule.swift +0 -17
- package/ios/ReactDelegates/EXRCTBridgeDelegateInterceptor.h +0 -16
- package/ios/ReactDelegates/EXRCTBridgeDelegateInterceptor.m +0 -49
- package/ios/ReactDelegates/EXReactCompatibleHelpers.h +0 -15
- package/ios/ReactDelegates/EXReactCompatibleHelpers.m +0 -25
- package/ios/ReactDelegates/EXReactDelegateWrapper.m +0 -53
- package/ios/SharedObjects/SharedObject.swift +0 -31
- package/ios/Views/ViewDefinition.swift +0 -114
- package/ios/Views/ViewFactory.swift +0 -16
- package/ios/Views/ViewManagerDefinition.swift +0 -77
- package/ios/Views/ViewManagerDefinitionBuilder.swift +0 -11
- /package/ios/{AppContextConfig.swift → Core/AppContextConfig.swift} +0 -0
- /package/ios/{Arguments → Core/Arguments}/AnyArgument.swift +0 -0
- /package/ios/{Arguments → Core/Arguments}/Convertible.swift +0 -0
- /package/ios/{Arguments → Core/Arguments}/Convertibles.swift +0 -0
- /package/ios/{Arguments → Core/Arguments}/Enumerable.swift +0 -0
- /package/ios/{Classes → Core/Classes}/ClassRegistry.swift +0 -0
- /package/ios/{Convertibles → Core/Convertibles}/Convertibles+Color.swift +0 -0
- /package/ios/{Convertibles → Core/Convertibles}/Either.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/AnyDynamicType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicArrayType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicConvertibleType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicDataType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicDictionaryType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicEnumType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicJavaScriptType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicOptionalType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicRawType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicTypedArrayType.swift +0 -0
- /package/ios/{DynamicTypes → Core/DynamicTypes}/DynamicViewType.swift +0 -0
- /package/ios/{EventListener.swift → Core/EventListener.swift} +0 -0
- /package/ios/{Events → Core/Events}/Callback.swift +0 -0
- /package/ios/{Events → Core/Events}/EventDispatcher.swift +0 -0
- /package/ios/{Exceptions → Core/Exceptions}/ChainableException.swift +0 -0
- /package/ios/{Exceptions → Core/Exceptions}/CodedError.swift +0 -0
- /package/ios/{Exceptions → Core/Exceptions}/CommonExceptions.swift +0 -0
- /package/ios/{Exceptions → Core/Exceptions}/Exception.swift +0 -0
- /package/ios/{Exceptions → Core/Exceptions}/ExceptionOrigin.swift +0 -0
- /package/ios/{Exceptions → Core/Exceptions}/GenericException.swift +0 -0
- /package/ios/{Exceptions → Core/Exceptions}/UnexpectedException.swift +0 -0
- /package/ios/{JavaScriptFunction.swift → Core/JavaScriptFunction.swift} +0 -0
- /package/ios/{Logging → Core/Logging}/LogType.swift +0 -0
- /package/ios/{Logging → Core/Logging}/PersistentFileLog.swift +0 -0
- /package/ios/{ModuleRegistry.swift → Core/ModuleRegistry.swift} +0 -0
- /package/ios/{Modules → Core/Modules}/Module.swift +0 -0
- /package/ios/{ModulesProvider.swift → Core/ModulesProvider.swift} +0 -0
- /package/ios/{Objects → Core/Objects}/JavaScriptObjectBuilder.swift +0 -0
- /package/ios/{Promise.swift → Core/Promise.swift} +0 -0
- /package/ios/{Records → Core/Records}/AnyField.swift +0 -0
- /package/ios/{Records → Core/Records}/Field.swift +0 -0
- /package/ios/{Records → Core/Records}/FieldExtensions.swift +0 -0
- /package/ios/{Records → Core/Records}/FieldOption.swift +0 -0
- /package/ios/{Records → Core/Records}/Record.swift +0 -0
- /package/ios/{SharedObjects → Core/SharedObjects}/SharedRef.swift +0 -0
- /package/ios/{TypedArrays → Core/TypedArrays}/AnyTypedArray.swift +0 -0
- /package/ios/{TypedArrays → Core/TypedArrays}/ConcreteTypedArrays.swift +0 -0
- /package/ios/{TypedArrays → Core/TypedArrays}/GenericTypedArray.swift +0 -0
- /package/ios/{TypedArrays → Core/TypedArrays}/TypedArray.swift +0 -0
- /package/ios/{Views → Core/Views}/ConcreteViewProp.swift +0 -0
package/android/src/main/java/expo/modules/kotlin/jni/{JSIInteropModuleRegistry.kt → JSIContext.kt}
RENAMED
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
package expo.modules.kotlin.jni
|
|
2
2
|
|
|
3
3
|
import com.facebook.jni.HybridData
|
|
4
|
+
import com.facebook.react.bridge.RuntimeExecutor
|
|
5
|
+
import com.facebook.react.common.annotations.FrameworkAPI
|
|
4
6
|
import com.facebook.react.turbomodule.core.CallInvokerHolderImpl
|
|
5
7
|
import com.facebook.soloader.SoLoader
|
|
6
8
|
import expo.modules.core.interfaces.DoNotStrip
|
|
7
9
|
import expo.modules.kotlin.AppContext
|
|
8
10
|
import expo.modules.kotlin.exception.JavaScriptEvaluateException
|
|
9
11
|
import expo.modules.kotlin.sharedobjects.SharedObject
|
|
12
|
+
import expo.modules.kotlin.sharedobjects.SharedObjectId
|
|
13
|
+
import expo.modules.kotlin.weak
|
|
10
14
|
import java.lang.ref.WeakReference
|
|
11
15
|
|
|
12
16
|
/**
|
|
13
17
|
* Despite the fact that this class is marked as [Destructible], it is not included in the [JNIDeallocator].
|
|
14
|
-
* The deallocation of the [
|
|
18
|
+
* The deallocation of the [JSIContext] should be performed at the very end
|
|
15
19
|
* to prevent the destructor of the [Destructible] object from accessing data that has already been freed.
|
|
16
20
|
*/
|
|
17
21
|
@Suppress("KotlinJniMissingFunction")
|
|
18
22
|
@DoNotStrip
|
|
19
|
-
class
|
|
20
|
-
|
|
21
|
-
internal val appContextHolder = WeakReference(appContext)
|
|
23
|
+
class JSIContext : Destructible {
|
|
24
|
+
internal lateinit var appContextHolder: WeakReference<AppContext> // = WeakReference(appContext)
|
|
22
25
|
|
|
23
26
|
// Has to be called "mHybridData" - fbjni uses it via reflection
|
|
24
27
|
@DoNotStrip
|
|
@@ -26,26 +29,75 @@ class JSIInteropModuleRegistry(appContext: AppContext) : Destructible {
|
|
|
26
29
|
|
|
27
30
|
private external fun initHybrid(): HybridData
|
|
28
31
|
|
|
32
|
+
@OptIn(FrameworkAPI::class)
|
|
33
|
+
fun installJSI(
|
|
34
|
+
appContext: AppContext,
|
|
35
|
+
jsRuntimePointer: Long,
|
|
36
|
+
jniDeallocator: JNIDeallocator,
|
|
37
|
+
jsInvokerHolder: CallInvokerHolderImpl
|
|
38
|
+
) {
|
|
39
|
+
appContextHolder = appContext.weak()
|
|
40
|
+
installJSI(
|
|
41
|
+
jsRuntimePointer,
|
|
42
|
+
jniDeallocator,
|
|
43
|
+
jsInvokerHolder
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
fun installJSIForBridgeless(
|
|
48
|
+
appContext: AppContext,
|
|
49
|
+
jsRuntimePointer: Long,
|
|
50
|
+
jniDeallocator: JNIDeallocator,
|
|
51
|
+
runtimeExecutor: RuntimeExecutor
|
|
52
|
+
) {
|
|
53
|
+
appContextHolder = appContext.weak()
|
|
54
|
+
installJSIForBridgeless(
|
|
55
|
+
jsRuntimePointer,
|
|
56
|
+
jniDeallocator,
|
|
57
|
+
runtimeExecutor
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
|
|
29
61
|
/**
|
|
30
62
|
* Initializes the `ExpoModulesHostObject` and adds it to the global object.
|
|
31
63
|
*/
|
|
32
|
-
|
|
64
|
+
@OptIn(FrameworkAPI::class)
|
|
65
|
+
private external fun installJSI(
|
|
33
66
|
jsRuntimePointer: Long,
|
|
34
67
|
jniDeallocator: JNIDeallocator,
|
|
35
68
|
jsInvokerHolder: CallInvokerHolderImpl
|
|
36
69
|
)
|
|
37
70
|
|
|
71
|
+
private external fun installJSIForBridgeless(
|
|
72
|
+
jsRuntimePointer: Long,
|
|
73
|
+
jniDeallocator: JNIDeallocator,
|
|
74
|
+
runtimeExecutor: RuntimeExecutor
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
@OptIn(FrameworkAPI::class)
|
|
78
|
+
fun installJSIForTests(
|
|
79
|
+
appContext: AppContext,
|
|
80
|
+
jniDeallocator: JNIDeallocator
|
|
81
|
+
) {
|
|
82
|
+
appContextHolder = appContext.weak()
|
|
83
|
+
installJSIForTests(jniDeallocator)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@OptIn(FrameworkAPI::class)
|
|
87
|
+
fun installJSIForTests(
|
|
88
|
+
appContext: AppContext
|
|
89
|
+
) {
|
|
90
|
+
appContextHolder = appContext.weak()
|
|
91
|
+
installJSIForTests(appContext.jniDeallocator)
|
|
92
|
+
}
|
|
93
|
+
|
|
38
94
|
/**
|
|
39
95
|
* Initializes the test runtime. Shouldn't be used in the production.
|
|
40
96
|
*/
|
|
41
|
-
external fun installJSIForTests(
|
|
97
|
+
private external fun installJSIForTests(
|
|
42
98
|
jniDeallocator: JNIDeallocator
|
|
43
99
|
)
|
|
44
100
|
|
|
45
|
-
fun installJSIForTests() = installJSIForTests(
|
|
46
|
-
appContextHolder.get()!!.jniDeallocator
|
|
47
|
-
)
|
|
48
|
-
|
|
49
101
|
/**
|
|
50
102
|
* Evaluates given JavaScript source code.
|
|
51
103
|
* @throws JavaScriptEvaluateException if the input format is unknown or evaluation causes an error
|
|
@@ -68,10 +120,7 @@ class JSIInteropModuleRegistry(appContext: AppContext) : Destructible {
|
|
|
68
120
|
*/
|
|
69
121
|
external fun drainJSEventLoop()
|
|
70
122
|
|
|
71
|
-
|
|
72
|
-
* Informs C++ that runtime was deallocated.
|
|
73
|
-
*/
|
|
74
|
-
external fun wasDeallocated()
|
|
123
|
+
external fun setNativeStateForSharedObject(id: Int, js: JavaScriptObject)
|
|
75
124
|
|
|
76
125
|
/**
|
|
77
126
|
* Returns a `JavaScriptModuleObject` that is a bridge between [expo.modules.kotlin.modules.Module]
|
|
@@ -110,6 +159,33 @@ class JSIInteropModuleRegistry(appContext: AppContext) : Destructible {
|
|
|
110
159
|
?.add(native as SharedObject, js)
|
|
111
160
|
}
|
|
112
161
|
|
|
162
|
+
@Suppress("unused")
|
|
163
|
+
@DoNotStrip
|
|
164
|
+
fun deleteSharedObject(id: Int) {
|
|
165
|
+
appContextHolder
|
|
166
|
+
.get()
|
|
167
|
+
?.sharedObjectRegistry
|
|
168
|
+
?.delete(SharedObjectId(id))
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
@Suppress("unused")
|
|
172
|
+
@DoNotStrip
|
|
173
|
+
fun registerClass(native: Class<*>, js: JavaScriptObject) {
|
|
174
|
+
appContextHolder
|
|
175
|
+
.get()
|
|
176
|
+
?.classRegistry
|
|
177
|
+
?.add(native, js)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@Suppress("unused")
|
|
181
|
+
@DoNotStrip
|
|
182
|
+
fun getJavascriptClass(native: java.lang.Class<*>): JavaScriptObject? {
|
|
183
|
+
return appContextHolder
|
|
184
|
+
.get()
|
|
185
|
+
?.classRegistry
|
|
186
|
+
?.toJavaScriptObject(native)
|
|
187
|
+
}
|
|
188
|
+
|
|
113
189
|
@Suppress("unused")
|
|
114
190
|
@DoNotStrip
|
|
115
191
|
fun getCoreModuleObject(): JavaScriptModuleObject? {
|
|
@@ -6,26 +6,62 @@ import com.facebook.react.bridge.WritableNativeMap
|
|
|
6
6
|
import expo.modules.core.interfaces.DoNotStrip
|
|
7
7
|
import expo.modules.kotlin.exception.UnexpectedException
|
|
8
8
|
import expo.modules.kotlin.logger
|
|
9
|
+
import expo.modules.kotlin.sharedobjects.SharedRef
|
|
9
10
|
|
|
10
11
|
@Suppress("KotlinJniMissingFunction")
|
|
11
12
|
@DoNotStrip
|
|
12
13
|
class JavaCallback @DoNotStrip internal constructor(@DoNotStrip private val mHybridData: HybridData) : Destructible {
|
|
13
|
-
operator fun invoke(result: Any?) {
|
|
14
|
+
operator fun invoke(result: Any?) = checkIfValid {
|
|
15
|
+
if (result == null) {
|
|
16
|
+
invokeNative()
|
|
17
|
+
return
|
|
18
|
+
}
|
|
19
|
+
when (result) {
|
|
20
|
+
is Int -> invokeNative(result)
|
|
21
|
+
is Boolean -> invokeNative(result)
|
|
22
|
+
is Double -> invokeNative(result)
|
|
23
|
+
is Float -> invokeNative(result)
|
|
24
|
+
is String -> invokeNative(result)
|
|
25
|
+
is WritableNativeArray -> invokeNative(result)
|
|
26
|
+
is WritableNativeMap -> invokeNative(result)
|
|
27
|
+
is SharedRef<*> -> invokeNative(result)
|
|
28
|
+
else -> throw UnexpectedException("Unknown type: ${result.javaClass}")
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
operator fun invoke(result: Int) = checkIfValid {
|
|
33
|
+
invokeNative(result)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
operator fun invoke(result: Boolean) = checkIfValid {
|
|
37
|
+
invokeNative(result)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
operator fun invoke(result: Double) = checkIfValid {
|
|
41
|
+
invokeNative(result)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
operator fun invoke(result: Float) = checkIfValid {
|
|
45
|
+
invokeNative(result)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
operator fun invoke(result: String) = checkIfValid {
|
|
49
|
+
invokeNative(result)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private external fun invokeNative()
|
|
53
|
+
private external fun invokeNative(result: Int)
|
|
54
|
+
private external fun invokeNative(result: Boolean)
|
|
55
|
+
private external fun invokeNative(result: Double)
|
|
56
|
+
private external fun invokeNative(result: Float)
|
|
57
|
+
private external fun invokeNative(result: String)
|
|
58
|
+
private external fun invokeNative(result: WritableNativeArray)
|
|
59
|
+
private external fun invokeNative(result: WritableNativeMap)
|
|
60
|
+
private external fun invokeNative(result: SharedRef<*>)
|
|
61
|
+
|
|
62
|
+
private inline fun checkIfValid(body: () -> Unit) {
|
|
14
63
|
try {
|
|
15
|
-
|
|
16
|
-
invoke()
|
|
17
|
-
return
|
|
18
|
-
}
|
|
19
|
-
when (result) {
|
|
20
|
-
is Int -> invoke(result)
|
|
21
|
-
is Boolean -> invoke(result)
|
|
22
|
-
is Double -> invoke(result)
|
|
23
|
-
is Float -> invoke(result)
|
|
24
|
-
is String -> invoke(result)
|
|
25
|
-
is WritableNativeArray -> invoke(result)
|
|
26
|
-
is WritableNativeMap -> invoke(result)
|
|
27
|
-
else -> throw UnexpectedException("Unknown type: ${result.javaClass}")
|
|
28
|
-
}
|
|
64
|
+
body()
|
|
29
65
|
} catch (e: Throwable) {
|
|
30
66
|
if (!mHybridData.isValid) {
|
|
31
67
|
// We know that this particular JavaCallback was invalidated, so it shouldn't be invoked.
|
|
@@ -37,15 +73,6 @@ class JavaCallback @DoNotStrip internal constructor(@DoNotStrip private val mHyb
|
|
|
37
73
|
}
|
|
38
74
|
}
|
|
39
75
|
|
|
40
|
-
private external fun invoke()
|
|
41
|
-
private external fun invoke(result: Int)
|
|
42
|
-
private external fun invoke(result: Boolean)
|
|
43
|
-
private external fun invoke(result: Double)
|
|
44
|
-
private external fun invoke(result: Float)
|
|
45
|
-
private external fun invoke(result: String)
|
|
46
|
-
private external fun invoke(result: WritableNativeArray)
|
|
47
|
-
private external fun invoke(result: WritableNativeMap)
|
|
48
|
-
|
|
49
76
|
@Throws(Throwable::class)
|
|
50
77
|
protected fun finalize() {
|
|
51
78
|
deallocate()
|
|
@@ -17,9 +17,9 @@ class JavaScriptFunction<ReturnType : Any?> @DoNotStrip private constructor(@DoN
|
|
|
17
17
|
|
|
18
18
|
fun isValid() = mHybridData.isValid
|
|
19
19
|
|
|
20
|
-
private external fun invoke(args: Array<Any?>, expectedReturnType: ExpectedType): Any?
|
|
20
|
+
private external fun invoke(thisValue: JavaScriptObject?, args: Array<Any?>, expectedReturnType: ExpectedType): Any?
|
|
21
21
|
|
|
22
|
-
operator fun invoke(vararg args: Any?, appContext: AppContext? = null): ReturnType {
|
|
22
|
+
operator fun invoke(vararg args: Any?, thisValue: JavaScriptObject? = null, appContext: AppContext? = null): ReturnType {
|
|
23
23
|
// TODO(@lukmccall): check current thread
|
|
24
24
|
val convertedArgs = args
|
|
25
25
|
.map { JSTypeConverter.convertToJSValue(it) }
|
|
@@ -35,7 +35,7 @@ class JavaScriptFunction<ReturnType : Any?> @DoNotStrip private constructor(@DoN
|
|
|
35
35
|
)
|
|
36
36
|
|
|
37
37
|
val expectedReturnType = converter.getCppRequiredTypes()
|
|
38
|
-
val result = invoke(convertedArgs, expectedReturnType)
|
|
38
|
+
val result = invoke(thisValue, convertedArgs, expectedReturnType)
|
|
39
39
|
@Suppress("UNCHECKED_CAST")
|
|
40
40
|
return converter.convert(result, appContext) as ReturnType
|
|
41
41
|
}
|
|
@@ -3,6 +3,7 @@ package expo.modules.kotlin.jni
|
|
|
3
3
|
import com.facebook.jni.HybridData
|
|
4
4
|
import com.facebook.react.bridge.Arguments
|
|
5
5
|
import com.facebook.react.bridge.NativeMap
|
|
6
|
+
import com.facebook.react.bridge.ReadableNativeMap
|
|
6
7
|
import expo.modules.core.interfaces.DoNotStrip
|
|
7
8
|
import expo.modules.kotlin.AppContext
|
|
8
9
|
import expo.modules.kotlin.objects.ObjectDefinitionData
|
|
@@ -82,10 +83,12 @@ class JavaScriptModuleObject(
|
|
|
82
83
|
setter: JNIFunctionBody?
|
|
83
84
|
)
|
|
84
85
|
|
|
85
|
-
external fun registerClass(name: String, classModule: JavaScriptModuleObject, takesOwner: Boolean, desiredTypes: Array<ExpectedType>, body: JNIFunctionBody)
|
|
86
|
+
external fun registerClass(name: String, classModule: JavaScriptModuleObject, takesOwner: Boolean, ownerClass: Class<*>?, desiredTypes: Array<ExpectedType>, body: JNIFunctionBody)
|
|
86
87
|
|
|
87
88
|
external fun registerViewPrototype(viewPrototype: JavaScriptModuleObject)
|
|
88
89
|
|
|
90
|
+
external fun emitEvent(jsiContext: JSIContext, eventName: String, eventBody: ReadableNativeMap?)
|
|
91
|
+
|
|
89
92
|
@Throws(Throwable::class)
|
|
90
93
|
protected fun finalize() {
|
|
91
94
|
deallocate()
|
|
@@ -43,6 +43,7 @@ open class JavaScriptObject @DoNotStrip internal constructor(@DoNotStrip private
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
external fun getPropertyNames(): Array<String>
|
|
46
|
+
|
|
46
47
|
external fun createWeak(): JavaScriptWeakObject
|
|
47
48
|
|
|
48
49
|
private external fun setBoolProperty(name: String, value: Boolean)
|
|
@@ -36,6 +36,7 @@ class JavaScriptValue @DoNotStrip private constructor(@DoNotStrip private val mH
|
|
|
36
36
|
|
|
37
37
|
@PublishedApi
|
|
38
38
|
internal fun <T : Any?> internalJniGetFunction(): JavaScriptFunction<T> = jniGetFunction()
|
|
39
|
+
|
|
39
40
|
inline fun <reified ReturnType : Any?> getFunction(): JavaScriptFunction<ReturnType> {
|
|
40
41
|
return internalJniGetFunction<ReturnType>().apply {
|
|
41
42
|
returnType = typeOf<ReturnType>()
|
|
@@ -44,6 +44,26 @@ class PromiseImpl @DoNotStrip internal constructor(
|
|
|
44
44
|
)
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
override fun resolve(result: Int) = checkIfWasSettled {
|
|
48
|
+
resolveBlock.invoke(result)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
override fun resolve(result: Boolean) = checkIfWasSettled {
|
|
52
|
+
resolveBlock.invoke(result)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
override fun resolve(result: Double) = checkIfWasSettled {
|
|
56
|
+
resolveBlock.invoke(result)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
override fun resolve(result: Float) = checkIfWasSettled {
|
|
60
|
+
resolveBlock.invoke(result)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
override fun resolve(result: String) = checkIfWasSettled {
|
|
64
|
+
resolveBlock.invoke(result)
|
|
65
|
+
}
|
|
66
|
+
|
|
47
67
|
// Copy of the reject method from [com.facebook.react.bridge.PromiseImpl]
|
|
48
68
|
override fun reject(code: String, message: String?, cause: Throwable?) = checkIfWasSettled {
|
|
49
69
|
val errorInfo = WritableNativeMap()
|
|
@@ -24,7 +24,7 @@ import kotlin.reflect.typeOf
|
|
|
24
24
|
|
|
25
25
|
@DefinitionMarker
|
|
26
26
|
class ModuleDefinitionBuilder(@PublishedApi internal val module: Module? = null) : ObjectDefinitionBuilder() {
|
|
27
|
-
|
|
27
|
+
internal var name: String? = null
|
|
28
28
|
|
|
29
29
|
@PublishedApi
|
|
30
30
|
internal var viewManagerDefinition: ViewManagerDefinition? = null
|