UNPKG

ts-cast

Version:
21 lines (20 loc) 855 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.prod = exports.allOf = void 0; var engine_1 = require("../engine"); var guards_1 = require("../engine/guards"); var prodTypeName = function (schema) { return schema.map(function (caster) { return caster.name; }).join(' & '); }; var mergeStructs = function (schema) { return function (value, context, reportError) { return schema.reduce(function (obj, caster) { return Object.assign(obj, caster(value, context, reportError)); }, Object.create(null)); }; }; var allOf = function () { var schema = []; for (var _i = 0; _i < arguments.length; _i++) { schema[_i] = arguments[_i]; } return (0, engine_1.createCaster)(prodTypeName(schema), guards_1.isAnObj, mergeStructs(schema)); }; exports.allOf = allOf; exports.prod = exports.allOf;