export * from "./expo-nativescript-adapter.common"; export const NativeModulesProxy = {}; const provider = EXModuleRegistryProvider.new(); const moduleRegistry = provider.moduleRegistryForExperienceId( "@sjchmiela/test" ); const exportedModules = moduleRegistry.getAllExportedModules(); for (let i = 0; i < exportedModules.count; i++) { const module = exportedModules[i]; const moduleName = EXExportedModule.exportedModuleName.apply(module.constructor); NativeModulesProxy[moduleName] = {}; const methods = module.getExportedMethods(); const methodsKeys = methods.allKeys; for (let j = 0; j < methodsKeys.count; j++) { const methodName = methodsKeys[j]; NativeModulesProxy[moduleName][methodName] = function callNativeMethod() { const argumentsArray = Array.from(arguments); new Promise((resolve, reject) => { try { EXExportedModule.prototype.callExportedMethodWithArgumentsResolverRejecter.apply( module, [ methodName, argumentsArray, result => resolve(result), (code, message, error) => reject(error || new Error(message)) ] ); } catch (e) { reject(e); } }); }; } const constants = module.constantsToExport(); const constantsKeys = constants.allKeys; for (let j = 0; j < constantsKeys.count; j++) { const constantKey = constantsKeys[j]; NativeModulesProxy[moduleName][constantKey] = constants.objectForKey(constantKey); } }