UNPKG

create-expo-cljs-app

Version:

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

66 lines (55 loc) 1.41 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 * @format */ /** * This generates all possible outputs by executing all available generators. */ 'use strict'; const RNCodegen = require('../../generators/RNCodegen.js'); const fs = require('fs'); const mkdirp = require('mkdirp'); const args = process.argv.slice(2); if (args.length !== 4) { throw new Error( `Expected to receive path to schema, library name, output directory and module spec name. Received ${args.join( ', ', )}`, ); } const schemaPath = args[0]; const libraryName = args[1]; const outputDirectory = args[2]; const moduleSpecName = args[3]; const packageName = args[4]; const schemaText = fs.readFileSync(schemaPath, 'utf-8'); if (schemaText == null) { throw new Error(`Can't find schema at ${schemaPath}`); } mkdirp.sync(outputDirectory); let schema; try { schema = JSON.parse(schemaText); } catch (err) { throw new Error(`Can't parse schema to JSON. ${schemaPath}`); } RNCodegen.generate( {libraryName, schema, outputDirectory, moduleSpecName, packageName}, { generators: [ 'descriptors', 'events', 'props', 'tests', 'shadow-nodes', 'modulesAndroid', 'modulesCxx', 'modulesIOS', ], }, );