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
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
// Copyright 2022-present 650 Industries. All rights reserved.
|
|
2
|
-
|
|
3
|
-
import React
|
|
4
|
-
import Foundation
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
The classic bridge module that is responsible for:
|
|
8
|
-
- Creating and owning the `AppContext` when the Expo modules architecture is automatically initialized
|
|
9
|
-
by React Native (as opposed to native unit tests, where React Native is not used at all).
|
|
10
|
-
- Installing the host object to the runtime.
|
|
11
|
-
*/
|
|
12
|
-
@objc(ExpoBridgeModule)
|
|
13
|
-
public final class ExpoBridgeModule: NSObject, RCTBridgeModule {
|
|
14
|
-
@objc
|
|
15
|
-
public let appContext: AppContext
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
The initializer that is used by React Native when it loads bridge modules.
|
|
19
|
-
In this scenario, we create an `AppContext` that manages the
|
|
20
|
-
architecture of Expo modules and the app itself.
|
|
21
|
-
*/
|
|
22
|
-
override convenience init() {
|
|
23
|
-
self.init(appContext: AppContext())
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
public init(appContext: AppContext) {
|
|
27
|
-
self.appContext = appContext
|
|
28
|
-
super.init()
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
deinit {
|
|
32
|
-
NotificationCenter.default.removeObserver(self)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// MARK: - RCTBridgeModule
|
|
36
|
-
|
|
37
|
-
public static func moduleName() -> String! {
|
|
38
|
-
return "ExpoModulesCore"
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
public static func requiresMainQueueSetup() -> Bool {
|
|
42
|
-
return true
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public var bridge: RCTBridge! {
|
|
46
|
-
didSet {
|
|
47
|
-
appContext.reactBridge = bridge
|
|
48
|
-
|
|
49
|
-
let attachRuntime = { [weak self] in
|
|
50
|
-
guard let self = self, let bridge = self.appContext.reactBridge else {
|
|
51
|
-
return
|
|
52
|
-
}
|
|
53
|
-
self.appContext._runtime = EXJavaScriptRuntimeManager.runtime(fromBridge: bridge)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if bridge.responds(to: Selector(("runtime"))) {
|
|
57
|
-
// Getting the `runtime` on a different thread than JS is considered to be dangerous.
|
|
58
|
-
// However, we just checking if it exists. We don't do anything with it.
|
|
59
|
-
let result = bridge.perform(Selector(("runtime")))
|
|
60
|
-
if result == nil {
|
|
61
|
-
// When exporting expo modules using `extraModulesForBridge` (e.g. in Expo Go),
|
|
62
|
-
// the runtime won't be initiated before the bridge didSet method is called.
|
|
63
|
-
// Therefore, we need to wait for the main thread to complete its initialization by dispatching on it first.
|
|
64
|
-
bridge.dispatchBlock({ [weak self] in
|
|
65
|
-
guard let self = self, let bridge = self.appContext.reactBridge else {
|
|
66
|
-
return
|
|
67
|
-
}
|
|
68
|
-
bridge.dispatchBlock(attachRuntime, queue: RCTJSThread)
|
|
69
|
-
}, queue: DispatchQueue.main)
|
|
70
|
-
return
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
bridge.dispatchBlock(attachRuntime, queue: RCTJSThread)
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
This should be called inside EXNativeModulesProxy.setBridge()
|
|
80
|
-
*/
|
|
81
|
-
@objc
|
|
82
|
-
public func legacyProxyDidSetBridge(legacyModulesProxy: LegacyNativeModulesProxy,
|
|
83
|
-
legacyModuleRegistry: EXModuleRegistry) {
|
|
84
|
-
appContext.legacyModuleRegistry = legacyModuleRegistry
|
|
85
|
-
appContext.legacyModulesProxy = legacyModulesProxy
|
|
86
|
-
|
|
87
|
-
// we need to register all the modules after the legacy module registry is set
|
|
88
|
-
// otherwise legacy modules (e.g. permissions) won't be available in OnCreate { }
|
|
89
|
-
appContext.useModulesProvider("ExpoModulesProvider")
|
|
90
|
-
appContext.moduleRegistry.register(moduleType: NativeModulesProxyModule.self)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// MARK: - Exported methods
|
|
94
|
-
|
|
95
|
-
@objc
|
|
96
|
-
public func installModules() {
|
|
97
|
-
guard let bridge else {
|
|
98
|
-
log.error("Cannot install native modules because the bridge is no longer available")
|
|
99
|
-
return
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// TODO: Keep this condition until we remove the other way of installing modules.
|
|
103
|
-
// See didSet on the `bridge` property above.
|
|
104
|
-
if appContext._runtime == nil {
|
|
105
|
-
appContext._runtime = EXJavaScriptRuntimeManager.runtime(fromBridge: bridge)
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
package/ios/ExpoRuntime.swift
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
Property name of the core object in the global scope of the Expo JS runtime.
|
|
3
|
-
*/
|
|
4
|
-
private let coreObjectPropertyName = "expo"
|
|
5
|
-
|
|
6
|
-
@objc(EXRuntime)
|
|
7
|
-
public final class ExpoRuntime: JavaScriptRuntime {
|
|
8
|
-
/**
|
|
9
|
-
The core object of the Expo runtime that is used to scope native Expo-specific functionalities.
|
|
10
|
-
It gets installed into the runtime as the `global.expo` object.
|
|
11
|
-
*/
|
|
12
|
-
@objc
|
|
13
|
-
public private(set) var coreObject: JavaScriptObject?
|
|
14
|
-
|
|
15
|
-
internal func initializeCoreObject(_ coreObject: JavaScriptObject) throws {
|
|
16
|
-
guard self.coreObject == nil else {
|
|
17
|
-
throw CoreObjectInitializedException()
|
|
18
|
-
}
|
|
19
|
-
self.coreObject = coreObject
|
|
20
|
-
global().defineProperty(coreObjectPropertyName, value: coreObject, options: .enumerable)
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private final class CoreObjectInitializedException: Exception {
|
|
25
|
-
override var reason: String {
|
|
26
|
-
"The core Expo object was already initialized"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
// Copyright 2022-present 650 Industries. All rights reserved.
|
|
2
|
-
|
|
3
|
-
import Dispatch
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
Type-erased protocol for asynchronous functions.
|
|
7
|
-
*/
|
|
8
|
-
internal protocol AnyAsyncFunctionComponent: AnyFunction {
|
|
9
|
-
/**
|
|
10
|
-
Specifies on which queue the function should run.
|
|
11
|
-
*/
|
|
12
|
-
func runOnQueue(_ queue: DispatchQueue?) -> Self
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
The default queue used for module's async function calls.
|
|
17
|
-
*/
|
|
18
|
-
private let defaultQueue = DispatchQueue(label: "expo.modules.AsyncFunctionQueue", qos: .userInitiated)
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
Represents a function that can only be called asynchronously, thus its JavaScript equivalent returns a Promise.
|
|
22
|
-
*/
|
|
23
|
-
public final class AsyncFunctionComponent<Args, FirstArgType, ReturnType>: AnyAsyncFunctionComponent {
|
|
24
|
-
typealias ClosureType = (Args) throws -> ReturnType
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
The underlying closure to run when the function is called.
|
|
28
|
-
*/
|
|
29
|
-
let body: ClosureType
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
Bool value indicating whether the function takes promise as the last argument.
|
|
33
|
-
*/
|
|
34
|
-
let takesPromise: Bool
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
Dispatch queue on which each function's call is run.
|
|
38
|
-
*/
|
|
39
|
-
var queue: DispatchQueue?
|
|
40
|
-
|
|
41
|
-
init(
|
|
42
|
-
_ name: String,
|
|
43
|
-
firstArgType: FirstArgType.Type,
|
|
44
|
-
dynamicArgumentTypes: [AnyDynamicType],
|
|
45
|
-
_ body: @escaping ClosureType
|
|
46
|
-
) {
|
|
47
|
-
self.name = name
|
|
48
|
-
self.takesPromise = dynamicArgumentTypes.last?.wraps(Promise.self) ?? false
|
|
49
|
-
self.dynamicArgumentTypes = dynamicArgumentTypes
|
|
50
|
-
self.body = body
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// MARK: - AnyFunction
|
|
54
|
-
|
|
55
|
-
let name: String
|
|
56
|
-
|
|
57
|
-
let dynamicArgumentTypes: [AnyDynamicType]
|
|
58
|
-
|
|
59
|
-
var argumentsCount: Int {
|
|
60
|
-
return dynamicArgumentTypes.count - (takesOwner ? 1 : 0) - (takesPromise ? 1 : 0)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
var takesOwner: Bool = false
|
|
64
|
-
|
|
65
|
-
func call(by owner: AnyObject?, withArguments args: [Any], appContext: AppContext, callback: @escaping (FunctionCallResult) -> ()) {
|
|
66
|
-
let promise = Promise { value in
|
|
67
|
-
callback(.success(Conversions.convertFunctionResult(value)))
|
|
68
|
-
} rejecter: { exception in
|
|
69
|
-
callback(.failure(exception))
|
|
70
|
-
}
|
|
71
|
-
var arguments: [Any] = concat(
|
|
72
|
-
arguments: args,
|
|
73
|
-
withOwner: owner,
|
|
74
|
-
withPromise: takesPromise ? promise : nil,
|
|
75
|
-
forFunction: self,
|
|
76
|
-
appContext: appContext
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
do {
|
|
80
|
-
try validateArgumentsNumber(function: self, received: args.count)
|
|
81
|
-
|
|
82
|
-
// All `JavaScriptValue` args must be preliminarly converted on the JS thread, so before we jump to the function's queue.
|
|
83
|
-
arguments = try cast(jsValues: arguments, forFunction: self, appContext: appContext)
|
|
84
|
-
} catch let error as Exception {
|
|
85
|
-
callback(.failure(error))
|
|
86
|
-
return
|
|
87
|
-
} catch {
|
|
88
|
-
callback(.failure(UnexpectedException(error)))
|
|
89
|
-
return
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
let queue = queue ?? defaultQueue
|
|
93
|
-
|
|
94
|
-
queue.async { [body, name] in
|
|
95
|
-
let returnedValue: ReturnType?
|
|
96
|
-
|
|
97
|
-
do {
|
|
98
|
-
// Convert arguments to the types desired by the function.
|
|
99
|
-
arguments = try cast(arguments: arguments, forFunction: self, appContext: appContext)
|
|
100
|
-
|
|
101
|
-
// swiftlint:disable:next force_cast
|
|
102
|
-
let argumentsTuple = try Conversions.toTuple(arguments) as! Args
|
|
103
|
-
|
|
104
|
-
returnedValue = try body(argumentsTuple)
|
|
105
|
-
} catch let error as Exception {
|
|
106
|
-
promise.reject(FunctionCallException(name).causedBy(error))
|
|
107
|
-
return
|
|
108
|
-
} catch {
|
|
109
|
-
promise.reject(UnexpectedException(error))
|
|
110
|
-
return
|
|
111
|
-
}
|
|
112
|
-
if !self.takesPromise {
|
|
113
|
-
promise.resolve(returnedValue)
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// MARK: - JavaScriptObjectBuilder
|
|
119
|
-
|
|
120
|
-
func build(appContext: AppContext) throws -> JavaScriptObject {
|
|
121
|
-
return try appContext.runtime.createAsyncFunction(name, argsCount: argumentsCount) { [weak self, name] this, args, resolve, reject in
|
|
122
|
-
guard let self = self else {
|
|
123
|
-
let exception = NativeFunctionUnavailableException(name)
|
|
124
|
-
return reject(exception.code, exception.description, nil)
|
|
125
|
-
}
|
|
126
|
-
self.call(by: this, withArguments: args, appContext: appContext) { result in
|
|
127
|
-
switch result {
|
|
128
|
-
case .failure(let error):
|
|
129
|
-
reject(error.code, error.description, nil)
|
|
130
|
-
case .success(let value):
|
|
131
|
-
resolve(value)
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// MARK: - AnyAsyncFunctionComponent
|
|
138
|
-
|
|
139
|
-
public func runOnQueue(_ queue: DispatchQueue?) -> Self {
|
|
140
|
-
self.queue = queue
|
|
141
|
-
return self
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// MARK: - Exceptions
|
|
146
|
-
|
|
147
|
-
internal final class NativeFunctionUnavailableException: GenericException<String> {
|
|
148
|
-
override var reason: String {
|
|
149
|
-
return "Native function '\(param)' is no longer available in memory"
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// MARK: - Factories
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
Asynchronous function without arguments.
|
|
157
|
-
*/
|
|
158
|
-
public func AsyncFunction<R>(
|
|
159
|
-
_ name: String,
|
|
160
|
-
@_implicitSelfCapture _ closure: @escaping () throws -> R
|
|
161
|
-
) -> AsyncFunctionComponent<(), Void, R> {
|
|
162
|
-
return AsyncFunctionComponent(
|
|
163
|
-
name,
|
|
164
|
-
firstArgType: Void.self,
|
|
165
|
-
dynamicArgumentTypes: [],
|
|
166
|
-
closure
|
|
167
|
-
)
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
Asynchronous function with one argument.
|
|
172
|
-
*/
|
|
173
|
-
public func AsyncFunction<R, A0: AnyArgument>(
|
|
174
|
-
_ name: String,
|
|
175
|
-
@_implicitSelfCapture _ closure: @escaping (A0) throws -> R
|
|
176
|
-
) -> AsyncFunctionComponent<(A0), A0, R> {
|
|
177
|
-
return AsyncFunctionComponent(
|
|
178
|
-
name,
|
|
179
|
-
firstArgType: A0.self,
|
|
180
|
-
dynamicArgumentTypes: [~A0.self],
|
|
181
|
-
closure
|
|
182
|
-
)
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
Asynchronous function with two arguments.
|
|
187
|
-
*/
|
|
188
|
-
public func AsyncFunction<R, A0: AnyArgument, A1: AnyArgument>(
|
|
189
|
-
_ name: String,
|
|
190
|
-
@_implicitSelfCapture _ closure: @escaping (A0, A1) throws -> R
|
|
191
|
-
) -> AsyncFunctionComponent<(A0, A1), A0, R> {
|
|
192
|
-
return AsyncFunctionComponent(
|
|
193
|
-
name,
|
|
194
|
-
firstArgType: A0.self,
|
|
195
|
-
dynamicArgumentTypes: [~A0.self, ~A1.self],
|
|
196
|
-
closure
|
|
197
|
-
)
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
Asynchronous function with three arguments.
|
|
202
|
-
*/
|
|
203
|
-
public func AsyncFunction<R, A0: AnyArgument, A1: AnyArgument, A2: AnyArgument>(
|
|
204
|
-
_ name: String,
|
|
205
|
-
@_implicitSelfCapture _ closure: @escaping (A0, A1, A2) throws -> R
|
|
206
|
-
) -> AsyncFunctionComponent<(A0, A1, A2), A0, R> {
|
|
207
|
-
return AsyncFunctionComponent(
|
|
208
|
-
name,
|
|
209
|
-
firstArgType: A0.self,
|
|
210
|
-
dynamicArgumentTypes: [
|
|
211
|
-
~A0.self,
|
|
212
|
-
~A1.self,
|
|
213
|
-
~A2.self
|
|
214
|
-
],
|
|
215
|
-
closure
|
|
216
|
-
)
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
Asynchronous function with four arguments.
|
|
221
|
-
*/
|
|
222
|
-
public func AsyncFunction<R, A0: AnyArgument, A1: AnyArgument, A2: AnyArgument, A3: AnyArgument>(
|
|
223
|
-
_ name: String,
|
|
224
|
-
@_implicitSelfCapture _ closure: @escaping (A0, A1, A2, A3) throws -> R
|
|
225
|
-
) -> AsyncFunctionComponent<(A0, A1, A2, A3), A0, R> {
|
|
226
|
-
return AsyncFunctionComponent(
|
|
227
|
-
name,
|
|
228
|
-
firstArgType: A0.self,
|
|
229
|
-
dynamicArgumentTypes: [
|
|
230
|
-
~A0.self,
|
|
231
|
-
~A1.self,
|
|
232
|
-
~A2.self,
|
|
233
|
-
~A3.self
|
|
234
|
-
],
|
|
235
|
-
closure
|
|
236
|
-
)
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
Asynchronous function with five arguments.
|
|
241
|
-
*/
|
|
242
|
-
public func AsyncFunction<R, A0: AnyArgument, A1: AnyArgument, A2: AnyArgument, A3: AnyArgument, A4: AnyArgument>(
|
|
243
|
-
_ name: String,
|
|
244
|
-
@_implicitSelfCapture _ closure: @escaping (A0, A1, A2, A3, A4) throws -> R
|
|
245
|
-
) -> AsyncFunctionComponent<(A0, A1, A2, A3, A4), A0, R> {
|
|
246
|
-
return AsyncFunctionComponent(
|
|
247
|
-
name,
|
|
248
|
-
firstArgType: A0.self,
|
|
249
|
-
dynamicArgumentTypes: [
|
|
250
|
-
~A0.self,
|
|
251
|
-
~A1.self,
|
|
252
|
-
~A2.self,
|
|
253
|
-
~A3.self,
|
|
254
|
-
~A4.self
|
|
255
|
-
],
|
|
256
|
-
closure
|
|
257
|
-
)
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
Asynchronous function with six arguments.
|
|
262
|
-
*/
|
|
263
|
-
public func AsyncFunction<R, A0: AnyArgument, A1: AnyArgument, A2: AnyArgument, A3: AnyArgument, A4: AnyArgument, A5: AnyArgument>(
|
|
264
|
-
_ name: String,
|
|
265
|
-
@_implicitSelfCapture _ closure: @escaping (A0, A1, A2, A3, A4, A5) throws -> R
|
|
266
|
-
) -> AsyncFunctionComponent<(A0, A1, A2, A3, A4, A5), A0, R> {
|
|
267
|
-
return AsyncFunctionComponent(
|
|
268
|
-
name,
|
|
269
|
-
firstArgType: A0.self,
|
|
270
|
-
dynamicArgumentTypes: [
|
|
271
|
-
~A0.self,
|
|
272
|
-
~A1.self,
|
|
273
|
-
~A2.self,
|
|
274
|
-
~A3.self,
|
|
275
|
-
~A4.self,
|
|
276
|
-
~A5.self
|
|
277
|
-
],
|
|
278
|
-
closure
|
|
279
|
-
)
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
Asynchronous function with seven arguments.
|
|
284
|
-
*/
|
|
285
|
-
public func AsyncFunction<R, A0: AnyArgument, A1: AnyArgument, A2: AnyArgument, A3: AnyArgument, A4: AnyArgument, A5: AnyArgument, A6: AnyArgument>(
|
|
286
|
-
_ name: String,
|
|
287
|
-
@_implicitSelfCapture _ closure: @escaping (A0, A1, A2, A3, A4, A5, A6) throws -> R
|
|
288
|
-
) -> AsyncFunctionComponent<(A0, A1, A2, A3, A4, A5, A6), A0, R> {
|
|
289
|
-
return AsyncFunctionComponent(
|
|
290
|
-
name,
|
|
291
|
-
firstArgType: A0.self,
|
|
292
|
-
dynamicArgumentTypes: [
|
|
293
|
-
~A0.self,
|
|
294
|
-
~A1.self,
|
|
295
|
-
~A2.self,
|
|
296
|
-
~A3.self,
|
|
297
|
-
~A4.self,
|
|
298
|
-
~A5.self,
|
|
299
|
-
~A6.self
|
|
300
|
-
],
|
|
301
|
-
closure
|
|
302
|
-
)
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
Asynchronous function with eight arguments.
|
|
307
|
-
*/
|
|
308
|
-
public func AsyncFunction<R, A0: AnyArgument, A1: AnyArgument, A2: AnyArgument, A3: AnyArgument, A4: AnyArgument, A5: AnyArgument, A6: AnyArgument, A7: AnyArgument>(
|
|
309
|
-
_ name: String,
|
|
310
|
-
@_implicitSelfCapture _ closure: @escaping (A0, A1, A2, A3, A4, A5, A6, A7) throws -> R
|
|
311
|
-
) -> AsyncFunctionComponent<(A0, A1, A2, A3, A4, A5, A6, A7), A0, R> {
|
|
312
|
-
return AsyncFunctionComponent(
|
|
313
|
-
name,
|
|
314
|
-
firstArgType: A0.self,
|
|
315
|
-
dynamicArgumentTypes: [
|
|
316
|
-
~A0.self,
|
|
317
|
-
~A1.self,
|
|
318
|
-
~A2.self,
|
|
319
|
-
~A3.self,
|
|
320
|
-
~A4.self,
|
|
321
|
-
~A5.self,
|
|
322
|
-
~A6.self,
|
|
323
|
-
~A7.self
|
|
324
|
-
],
|
|
325
|
-
closure
|
|
326
|
-
)
|
|
327
|
-
}
|