@opra/cli
Version:
Opra CLI tools
41 lines (40 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const console = tslib_1.__importStar(require("node:console"));
const fs = tslib_1.__importStar(require("node:fs"));
const node_path_1 = tslib_1.__importDefault(require("node:path"));
const process = tslib_1.__importStar(require("node:process"));
const common_1 = require("@opra/common");
const ansi_colors_1 = tslib_1.__importDefault(require("ansi-colors"));
const commander_1 = require("commander");
const ts_generator_js_1 = require("./ts-generator/ts-generator.js");
const dirname = node_path_1.default.dirname((0, common_1.getStackFileName)());
const pkgJson = JSON.parse(fs.readFileSync(node_path_1.default.resolve(dirname, '../package.json'), 'utf-8'));
commander_1.program
.version(pkgJson.version)
.argument('<serviceUrl>', 'OPRA service url')
.argument('<outDir>', 'Output directory')
.option('--ext', 'Adds js extension to imports')
.option('--refns', 'Exports references with namespaces')
.option('--no-color', 'Disables colors in logs messages')
.action(async (serviceUrl, outDir, options) => {
if (!options.color)
ansi_colors_1.default.enabled = false;
const generator = new ts_generator_js_1.TsGenerator({
serviceUrl,
logger: console,
outDir,
importExt: options.ext,
referenceNamespaces: options.refns,
fileHeader: `/* Generated by OPRA Code Generator, Version ${pkgJson.version} */`,
});
await generator
.generate()
.then(() => console.log(ansi_colors_1.default.greenBright('Completed')))
.catch(e => console.error(e.message));
});
if (process.argv.length < 3)
commander_1.program.help();
else
commander_1.program.parse(process.argv);