UNPKG

create-expo-cljs-app

Version:

Create a react native application with Expo and Shadow-CLJS!

54 lines (46 loc) 1.28 kB
/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow strict * @format */ 'use strict'; import type { SchemaType, NativeModuleAliasMap, NativeModuleObjectTypeAnnotation, NativeModuleSchema, } from '../../CodegenSchema'; const invariant = require('invariant'); export type AliasResolver = ( aliasName: string, ) => NativeModuleObjectTypeAnnotation; function createAliasResolver(aliasMap: NativeModuleAliasMap): AliasResolver { return (aliasName: string) => { const alias = aliasMap[aliasName]; invariant(alias != null, `Unable to resolve type alias '${aliasName}'.`); return alias; }; } function getModules( schema: SchemaType, ): $ReadOnly<{[hasteModuleName: string]: NativeModuleSchema}> { return Object.keys(schema.modules).reduce<{[string]: NativeModuleSchema}>( (modules, hasteModuleName: string) => { const module = schema.modules[hasteModuleName]; if (module == null || module.type === 'Component') { return modules; } modules[hasteModuleName] = module; return modules; }, {}, ); } module.exports = { createAliasResolver, getModules, };