zenodraft
Version:
CLI to manage depositions on Zenodo and Zenodo Sandbox
37 lines • 1.24 kB
JavaScript
;
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