UNPKG

@ordercloud/oc-codegen

Version:

OpenAPI codegen tool built for the OrderCloud API

61 lines (60 loc) 3.14 kB
#!/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 }); /* tslint:disable: no-console */ var commander_1 = __importDefault(require("commander")); var package_json_1 = __importDefault(require("./package.json")); var index_1 = __importDefault(require("./src/index")); var chalk_1 = __importDefault(require("chalk")); var figlet_1 = __importDefault(require("figlet")); var clear_1 = __importDefault(require("clear")); // display banner (0, clear_1.default)(); console.log(chalk_1.default.cyanBright(figlet_1.default.textSync('oc-codegen', { horizontalLayout: 'full' }))); commander_1.default .version(package_json_1.default.version, '-v, --version') .description('A codegen tool for the OrderCloud API') .option('-t, --templates <folder>', '(required) where to locate handlebars templates') .option('-i, --input-spec <path>', 'path to valid openapi spec v3.0.0+ (defaults to https://api.ordercloud.io/v1/openapi/v3)') .option('-o, --output <folder>', 'where to write the generated files (defaults to current directory)') .option('-k, --hooks <filepath>', 'path to your hooks file') .option('-b, --handlebars-extensions <filepath>', 'path to your handlebars extensions file') .option('-d, --debug', 'prints the template data that is passed to handlebars') .option('-c, --clean', 'cleans output directory before writing files to it (default: false)') .parse(process.argv); if (!commander_1.default.templates && !commander_1.default.debug) { console.error(chalk_1.default.bold.red('> Path to handlebars templates folder not provided')); commander_1.default.help(); // This exits the process } // error on unknown commands commander_1.default.on('command:*', function () { console.error(chalk_1.default.bold.red('> Invalid command: See list of available commands.')); commander_1.default.help(); // This exits the process }); index_1.default .generate({ templates: commander_1.default.templates, inputSpec: commander_1.default.inputSpec, output: commander_1.default.output, hooks: commander_1.default.hooks, handlebarsExtensions: commander_1.default.handlebarsExtensions, debug: commander_1.default.debug, clean: commander_1.default.clean, }) .then(function () { if (!commander_1.default.debug) { console.log(chalk_1.default.greenBright('Done! ✨')); console.log(chalk_1.default.yellowBright('Check out your shiny new API at ') + chalk_1.default.magentaBright(commander_1.default.output) + chalk_1.default.yellowBright('.')); } }) .catch(function (err) { console.error(chalk_1.default.redBright('Aaww 💩. Something went wrong:')); console.error(chalk_1.default.redBright(err.stack || err.message)); process.exit(1); // prevent execution of another command after this }); process.on('unhandledRejection', function (err) { return console.error(err); });