UNPKG

@jirutka/ajv-cli

Version:

CLI for Ajv JSON Schema Validator with human-friendly error messages

48 lines 1.33 kB
#!/usr/bin/env node import { exit } from 'node:process'; import { Bool, parseArgv } from './args-parser.js'; import { commands, printHelp } from './commands/index.js'; import { ProgramError, UsageError } from './errors.js'; const pkgName = '@jirutka/ajv-cli'; const pkgVersion = '6.0.0'; const globalOptions = { help: { type: Bool, alias: 'h', }, }; async function main(argv) { switch (argv[0]) { case '--help': case '-h': return printHelp(); case '--version': case '-V': return printVersion(); } const cmdName = argv.shift() ?? ''; if (!Object.hasOwn(commands, cmdName)) { throw new UsageError(`Unknown command: ${cmdName}`); } const command = commands[cmdName]; const [opts, args] = parseArgv({ ...command.options, ...globalOptions }, argv); if (opts.help) { printHelp(cmdName); return true; } return await command.execute(opts, args); } function printVersion() { console.log(`${pkgName} ${pkgVersion}`); return true; } main(process.argv.slice(2)) .then(ok => exit(ok ? 0 : 1)) .catch(err => { if (err instanceof ProgramError) { console.error(`ajv: ${err.message}`); exit(err.exitCode); } throw err; }); //# sourceMappingURL=main.js.map