log4brains
Version:
Log and publish your architecture decisions (ADR) with Log4brains
71 lines (61 loc) • 2.13 kB
JavaScript
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var chalk = _interopDefault(require('chalk'));
var cliCommon = require('@log4brains/cli-common');
var core = require('@log4brains/core');
var commander = _interopDefault(require('commander'));
var init = require('@log4brains/init');
var cli = require('@log4brains/cli');
var web = require('@log4brains/web');
function createGlobalCli({
appConsole,
version
}) {
const program = new commander.Command();
program.version(version).description("Log4brains CLI to preview and build your architecture knowledge base.\n" + "You can also manage your ADRs from here (see `log4brains adr --help`).\n\n" + "All the commands should be run from your project's root folder.\n\n" + "Add the `--help` option to any command to see its detailed documentation.");
const initCli = init.createInitCli({
appConsole
});
const cli$1 = cli.createCli({
appConsole
});
const webCli = web.createWebCli({
appConsole
});
[...initCli.commands, ...cli$1.commands, ...webCli.commands].forEach(cmd => {
program.addCommand(cmd);
});
return program;
}
const debug = !!process.env.DEBUG;
const dev = process.env.NODE_ENV === "development";
const appConsole = new cliCommon.AppConsole({
debug,
traces: debug || dev
});
function handleError(err) {
if (appConsole.isSpinning()) {
appConsole.stopSpinner(true);
}
if (err instanceof cliCommon.FailureExit) {
process.exit(1);
}
if (err instanceof core.Log4brainsConfigNotFoundError) {
appConsole.fatal(`Cannot find ${chalk.bold(".log4brains.yml")}`);
appConsole.printlnErr(chalk.red(`You are in the wrong directory or you need to run ${chalk.cyan("log4brains init")}`));
process.exit(1);
}
appConsole.fatal(err);
process.exit(1);
}
try {
// eslint-disable-next-line
const pkgVersion = require("../package.json").version;
const cli = createGlobalCli({
version: pkgVersion,
appConsole
});
cli.parseAsync(process.argv).catch(handleError);
} catch (e) {
handleError(e);
}
//# sourceMappingURL=index.js.map