UNPKG

structured-elements

Version:

A TypeScript package for modelling and validating data

59 lines 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildPrimitiveValidator = void 0; const item_1 = require("../../attemptSalvage/item"); const validationResult_1 = require("../validationResult"); const element_1 = require("../../validate/element"); const structure = `item`; const buildPrimitiveValidator = ({ api, expectation, }) => { const validator = { getFailures: (subject, name) => { return validator.validate(subject, name).failures; }, getSalvage: (subject, name) => { return validator.validate(subject, name).salvage; }, isValid: (subject, name) => { return validator.validate(subject, name).valid; }, validate: (subject, name, attemptSalvage = item_1.attemptSalvageItem) => { const cached = api.privateFunctions.getCachedResult({ expectation, structure, subject, }); if (cached) { return cached; } const failures = (0, element_1.validateElement)({ api, element: subject, elementName: name, expectation, key: `(subject)`, subject, subjectName: name, }); const salvage = attemptSalvage({ api, subject, name, failures, }); const result = (0, validationResult_1.buildValidationResult)({ failures, salvage, subject, }); api.privateFunctions.cacheResult({ expectation, result, structure, }); return result; }, }; return validator; }; exports.buildPrimitiveValidator = buildPrimitiveValidator; //# sourceMappingURL=primitive.js.map