@sprucelabs/schema
Version:
Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓
21 lines (20 loc) • 866 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = validateSchemaValues;
const just_safe_set_1 = __importDefault(require("just-safe-set"));
const __1 = require("..");
const SchemaEntityFactory_1 = __importDefault(require("../factories/SchemaEntityFactory"));
function validateSchemaValues(schema, values, options) {
const { ...opts } = options ?? {};
(0, __1.validateSchema)(schema);
const mapped = Object.keys(values).reduce((mapped, key) => {
//@ts-ignore
(0, just_safe_set_1.default)(mapped, key, values[key]);
return mapped;
}, {});
const instance = SchemaEntityFactory_1.default.Entity(schema, mapped);
instance.validate(opts);
}