UNPKG

@natlibfi/marc-record

Version:

MARC record implementation in JavaScript

30 lines (29 loc) 1.13 kB
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