UNPKG

zenodraft

Version:

CLI to manage depositions on Zenodo and Zenodo Sandbox

37 lines 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.metadata_validate = void 0; const fs = require("fs"); const path = require("path"); const ajv_1 = require("ajv"); const ajv_formats_1 = require("ajv-formats"); const load_metadata = (filename) => { return JSON.parse(fs.readFileSync(filename, 'utf8')); }; const load_schema = () => { const filename = path.join(__dirname, '..', '..', '..', 'assets', 'schema.json'); return JSON.parse(fs.readFileSync(filename, 'utf8')); }; const metadata_validate = (filename, verbose = false) => { const msg = `validating metadata from ${filename}...`; if (verbose) { console.log(msg); } const ajv = new ajv_1.default(); ajv_formats_1.default(ajv); const schema = load_schema(); const data = load_metadata(filename); const validate = ajv.compile(schema); const isvalid = validate(data); if (isvalid === false) { validate.errors.forEach(error => { console.log(error); }); throw new Error('(errid 14) Validation error'); } if (verbose) { console.log(`${msg}done`); } }; exports.metadata_validate = metadata_validate; //# sourceMappingURL=validate.js.map