create-varan-app
Version:
Create varan app command line utility
74 lines • 3.48 kB
JavaScript
;
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