UNPKG

ajv-cli

Version:

Command line interface for Ajv JSON schema validator

94 lines 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compile = exports.logJSON = exports.openFile = exports.getFiles = void 0; const glob = require("glob"); const path = require("path"); const fs = require("fs"); const yaml = require("js-yaml"); const JSON5 = require("json5"); function getFiles(args) { let files = []; if (Array.isArray(args)) args.forEach(_getFiles); else _getFiles(args); return files; function _getFiles(fileOrPattern) { if (glob.hasMagic(fileOrPattern)) { const dataFiles = glob.sync(fileOrPattern, { cwd: process.cwd() }); files = files.concat(dataFiles); } else { files.push(fileOrPattern); } } } exports.getFiles = getFiles; function getFormatFromFileName(filename) { return path.extname(filename).substr(1).toLowerCase(); } function decodeFile(contents, format) { switch (format) { case "json": return JSON.parse(contents); case "jsonc": case "json5": return JSON5.parse(contents); case "yml": case "yaml": return yaml.safeLoad(contents); default: throw new Error(`unsupported file format ${format}`); } } function openFile(filename, suffix) { let json = null; const file = path.resolve(process.cwd(), filename); try { try { const format = getFormatFromFileName(filename); json = decodeFile(fs.readFileSync(file).toString(), format); } catch (e) { json = require(file); } } catch (err) { const msg = err.message; console.error(`error: ${msg.replace(" module", " " + suffix)}`); process.exit(2); } return json; } exports.openFile = openFile; function logJSON(mode, data, ajv) { switch (mode) { case "json": data = JSON.stringify(data, null, " "); break; case "line": data = JSON.stringify(data); break; case "no": data = ""; break; case "text": if (ajv) data = ajv.errorsText(data); } return data; } exports.logJSON = logJSON; function compile(ajv, schemaFile) { const schema = openFile(schemaFile, "schema"); try { return ajv.compile(schema); } catch (err) { console.error(`schema ${schemaFile} is invalid`); console.error(`error: ${err.message}`); process.exit(1); } } exports.compile = compile; //# sourceMappingURL=util.js.map