UNPKG

create-varan-app

Version:

Create varan app command line utility

74 lines 3.48 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); require("source-map-support/register"); const commander_1 = __importDefault(require("commander")); const update_notifier_1 = __importDefault(require("update-notifier")); const chalk_1 = __importDefault(require("chalk")); const path_1 = __importDefault(require("path")); const createLogger_1 = __importDefault(require("../lib/createLogger")); const emojis_1 = __importDefault(require("../lib/emojis")); const init_1 = __importDefault(require("../lib/init")); // eslint-disable-next-line @typescript-eslint/no-var-requires const pkg = require('../../package.json'); // Init process.on('unhandledRejection', (err) => { throw err; }); // Check for updates update_notifier_1.default({ pkg }).notify(); // Setup program commander_1.default.usage('<project name> [options]').version(pkg.version); /** * Create a new project */ commander_1.default .arguments('<name>') .option('-s, --silent', 'silence output') .option('-e, --example <example>', 'Create project from an example. See https://github.com/ersims/varan/tree/master/examples for a list of examples') .option('-r, --fromGitRepo <gitRepo>', 'Create project from an existing Git repository', 'https://github.com/ersims/varan-boilerplate.git') .action(async (name, opts) => { const log = createLogger_1.default({ silent: opts.silent }); const cwd = process.cwd(); try { log.info(); log.info(` Creating new project ${chalk_1.default.cyan(name)} using ${chalk_1.default.cyan(pkg.name)} ${chalk_1.default.cyan(`v${pkg.version}`)} ${chalk_1.default.green(emojis_1.default.robot)}`); log.info(); const { appDir } = await init_1.default({ name, example: opts.example, fromGitRepo: !opts.example && opts.fromGitRepo, verbose: !opts.silent, }); log.info(); log.info(` ${chalk_1.default.green(emojis_1.default.rocket)} Success! ${chalk_1.default.green(emojis_1.default.rocket)}`); log.info(` Project ${chalk_1.default.cyan(name)} is now created at ${chalk_1.default.cyan(appDir)}`); log.info(); log.info(` To get started, run the following commands`); log.info(` ${chalk_1.default.cyan(`cd ${path_1.default.relative(cwd, appDir)}`)}`); log.info(` ${chalk_1.default.cyan('npx varan watch')}`); log.info(); log.info(` For more information on how to use ${chalk_1.default.cyan(name)}, please refer to the ${chalk_1.default.cyan('README.md')} file or visit ${chalk_1.default.cyan(pkg.homepage)}`); log.info(); } catch (err) { log.error(); log.error(` ${chalk_1.default.red(emojis_1.default.failure)} Failure! Project ${chalk_1.default.cyan(name)} could not be created ${chalk_1.default.red(emojis_1.default.failure)}`); if (err.details) log.error(` ${chalk_1.default.cyan('Details:')} ${err.details}`); if (err.errors) log.error(` ${err.errors}`); else if (err.stack) log.error(` ${err.stack}`); log.error(); } }); // Run if (!process.argv.slice(2).length) commander_1.default.outputHelp(); else commander_1.default.parse(process.argv); //# sourceMappingURL=create-varan-app.js.map