@backtrace/javascript-cli
Version:
Backtrace CLI for working with Javascript files.
92 lines • 3.07 kB
JavaScript
#!/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 });
const sourcemap_tools_1 = require("@backtrace/sourcemap-tools");
const command_line_args_1 = __importDefault(require("command-line-args"));
const Command_1 = require("./commands/Command");
const version_1 = require("./helpers/version");
const logger_1 = require("./logger");
const loadOptions_1 = require("./options/loadOptions");
const add_sources_1 = require("./sourcemaps/add-sources");
const process_1 = require("./sourcemaps/process");
const run_1 = require("./sourcemaps/run");
const upload_1 = require("./sourcemaps/upload");
const mainCommand = new Command_1.Command({
name: '',
})
.subcommand(run_1.runCmd)
.subcommand(process_1.processCmd)
.subcommand(add_sources_1.addSourcesCmd)
.subcommand(upload_1.uploadCmd)
.option({
name: 'help',
type: Boolean,
alias: 'h',
global: true,
description: 'Displays this help message.',
})
.option({
name: 'verbose',
type: Boolean,
alias: 'v',
global: true,
multiple: true,
description: 'Verbosity level. -v prints debug logs, -vv prints ALL logs.',
})
.option({
name: 'quiet',
type: Boolean,
alias: 'q',
global: true,
description: 'Disables ALL logging messages.',
})
.option({
name: 'log-level',
type: String,
global: true,
description: 'Sets the logging level. Can be one of: quiet, error, warn, info, debug, verbose. Default: info',
})
.option({
name: 'config',
type: String,
global: true,
description: `Path to the config file. Default: ${loadOptions_1.DEFAULT_OPTIONS_FILENAME}`,
})
.option({
name: 'version',
type: Boolean,
description: 'Displays the version of backtrace-js',
})
.execute(async function ({ opts, getHelpMessage }) {
const logger = (0, logger_1.createLogger)(opts);
if (opts.version) {
return (0, sourcemap_tools_1.pipe)(await (0, version_1.loadVersion)(), sourcemap_tools_1.R.map((version) => logger.output(version)));
}
else {
logger.info(getHelpMessage());
const unknownOption = opts._unknown?.[0];
if (!unknownOption) {
return (0, sourcemap_tools_1.Err)(`Unknown command.`);
}
if (unknownOption.startsWith('-')) {
return (0, sourcemap_tools_1.Err)(`Unknown option: ${unknownOption}`);
}
return (0, sourcemap_tools_1.Err)(`Unknown command: ${unknownOption}`);
}
});
(async () => {
const result = await mainCommand.run(process.argv);
if (result.isOk()) {
process.exit(result.data);
}
else {
const loggerOptions = (0, command_line_args_1.default)(mainCommand.options, { partial: true });
const logger = (0, logger_1.createLogger)(loggerOptions);
logger.fatal(result.data.error);
process.exit(1);
}
})();
//# sourceMappingURL=index.js.map