expo-modules-core 1.11.13 → 1.12.1
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 +77 -13
- package/ExpoModulesCore.podspec +7 -4
- package/android/ExpoModulesCorePlugin.gradle +40 -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 +44 -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.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/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/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/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/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 +299 -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
|