UNPKG

react-native-integrate

Version:

Automate integration of additional code into React Native projects

83 lines (82 loc) 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); require("isomorphic-fetch"); const getInfo_1 = require("./getInfo"); const integrate_1 = require("./integrate"); const options_1 = require("./options"); const progress_1 = require("./progress"); const prompter_1 = require("./prompter"); const upgrade_1 = require("./upgrade"); const getErrMessage_1 = require("./utils/getErrMessage"); // eslint-disable-next-line @typescript-eslint/no-require-imports const { version } = require('../package.json'); const program = new commander_1.Command(); program.enablePositionalOptions(); program .version(version) .name('integrate') .description('Integrate new packages into your project.') .argument('[package-name]', 'Specify a package to integrate') .option('-v, --verbose', 'enables verbose logging', false) .action(async (packageName, args) => { options_1.options.set(args); (0, prompter_1.logIntro)(); try { progress_1.progress.setOptions({ title: 'integrating', total: 4, step: 0, }); if (!args.verbose) progress_1.progress.display(); await (0, integrate_1.integrate)(packageName); progress_1.progress.hide(); (0, prompter_1.logOutro)(); } catch (e) { progress_1.progress.hide(); const errMessage = (0, getErrMessage_1.getErrMessage)(e); (0, prompter_1.logError)(errMessage); (0, prompter_1.logOutro)('integration failed', true); } }) .showHelpAfterError(); program .command('info') .description('Get integration info about a package.') .argument('<package-name>', 'Package name to integrate') .action(async (packageName) => { (0, prompter_1.logIntro)('react-native-integrate - package information'); await (0, getInfo_1.getInfo)(packageName); (0, prompter_1.logOutro)('completed package information'); }); program .command('upgrade') .description('Upgrade React Native project. Re-integrate previously integrated modules and apply own changes.') .option('-m, --manual', 'enables manual upgrade, you must run this command in the folder of the new created project', false) .option('-v, --verbose', 'enables verbose logging', false) .option('-i, --interactive', 'allow', false) .action(async (args) => { options_1.options.set(args); (0, prompter_1.logIntro)('react-native-integrate - upgrade project'); try { progress_1.progress.setOptions({ title: 'upgrading project', total: 8, step: 0, }); if (!args.verbose) progress_1.progress.display(); await (0, upgrade_1.upgrade)(); progress_1.progress.hide(); (0, prompter_1.logOutro)('completed project upgrade'); } catch (e) { progress_1.progress.hide(); const errMessage = (0, getErrMessage_1.getErrMessage)(e); (0, prompter_1.logError)(errMessage); (0, prompter_1.logOutro)('project upgrade failed', true); } }); program.parseAsync().catch(console.warn);