create-react-component-library
Version:
Create react component library command line utility
73 lines • 3.27 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")
.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("npm run storybook")}`);
log.info(` ${chalk_1.default.cyan("npm run start: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-react-component-library.js.map