@natlibfi/marc-record
Version:
MARC record implementation in JavaScript
30 lines (29 loc) • 1.13 kB
JavaScript
import { validate } from "jsonschema";
import createSchema from "./schema.js";
import MarcRecordError from "./error.js";
export function clone(obj) {
return JSON.parse(JSON.stringify(obj));
}
export function validateRecord(record, options = {}) {
const { noFailValidation } = options;
const validationResults = validate(record, createSchema(options), { nestedErrors: false });
if (noFailValidation) {
return validationResults.errors.map((valError) => valError.toString());
}
if (validationResults.errors.length > 0) {
throw new MarcRecordError("Record is invalid", validationResults);
}
return [];
}
export function validateField(field, options = {}) {
const { noFailValidation } = options;
const validationResults = validate(field, createSchema(options).properties.fields.items, { nestedErrors: false });
if (noFailValidation) {
return validationResults.errors.map((valError) => valError.toString());
}
if (validationResults.errors.length > 0) {
throw new MarcRecordError(`Field is invalid: ${JSON.stringify(field)}`, validationResults);
}
return [];
}
//# sourceMappingURL=utils.js.map