kubricate
Version:
A TypeScript framework for building reusable, type-safe Kubernetes infrastructure ā without the YAML mess.
73 lines (72 loc) ⢠2.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.cliEntryPoint = cliEntryPoint;
var _ansis = /*#__PURE__*/_interopRequireDefault(/*#__PURE__*/require("ansis"));
var _yargs = /*#__PURE__*/_interopRequireDefault(/*#__PURE__*/require("yargs"));
var _helpers = /*#__PURE__*/require("yargs/helpers");
var _constant = /*#__PURE__*/require("../internal/constant.js");
var _logger = /*#__PURE__*/require("../internal/logger.js");
var _generate = /*#__PURE__*/require("./generate.js");
var _index = /*#__PURE__*/require("./secret/index.js");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
};
}
const errorHelper = (msg, yargs) => {
if (msg?.includes('Unknown argument')) {
const unknownArg = msg.match(/Unknown argument: (.+)/)?.[1];
console.error(_ansis.default.red(`\nā Error: Unknown option "${unknownArg}".\n`));
console.info(_ansis.default.cyan(`${_constant.MARK_INFO} Check the help for a list of available options.\n`));
yargs.showHelp();
console.log('\n');
return `Unknown option "${unknownArg}"`;
}
// Fallback to default error handling
if (msg) {
console.error(msg);
} else {
console.error('Unknown error occurred');
}
console.log('\n');
};
function cliEntryPoint(argv, options) {
return new Promise((resolve, reject) => {
(0, _yargs.default)((0, _helpers.hideBin)(argv)).scriptName(options.scriptName).usage('$0 <command>').version(options.version).option('root', {
type: 'string',
describe: 'Root directory'
}).option('config', {
type: 'string',
describe: 'Config file path'
}).option('verbose', {
type: 'boolean',
describe: 'Enable verbose output'
}).option('silent', {
type: 'boolean',
describe: 'Suppress all output'
}).option('dry-run', {
type: 'boolean',
describe: 'Dry run mode (Not Stable Yet)'
}).middleware(argv => {
let level = 'info';
if (argv.silent) level = 'silent';else if (argv.verbose) level = 'debug';
argv.logger = new _logger.ConsoleLogger(level);
argv.version = options.version;
}).command(_generate.generateCommand).command(_index.secretCommand).help().alias('h', 'help').alias('v', 'version').demandCommand(1, '').fail((msg, err, yargs) => {
if (!msg && !err) {
errorHelper(msg, yargs);
return resolve();
}
if (msg) {
return reject(new Error(errorHelper(msg, yargs)));
}
if (err) {
errorHelper(msg, yargs);
return reject(err);
}
}).strict().parse();
});
}
//# sourceMappingURL=entrypoint.js.map