UNPKG

@sinclair/typebox

Version:

Json Schema Type Builder with Static Type Resolution for TypeScript

25 lines (23 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IntersectCreate = void 0; const index_1 = require("../symbols/index"); const type_1 = require("../clone/type"); // ------------------------------------------------------------------ // TypeGuard // ------------------------------------------------------------------ const type_2 = require("../guard/type"); // ------------------------------------------------------------------ // IntersectCreate // ------------------------------------------------------------------ // prettier-ignore function IntersectCreate(T, options) { const allObjects = T.every((schema) => (0, type_2.IsObject)(schema)); const clonedUnevaluatedProperties = (0, type_2.IsSchema)(options.unevaluatedProperties) ? { unevaluatedProperties: (0, type_1.CloneType)(options.unevaluatedProperties) } : {}; return ((options.unevaluatedProperties === false || (0, type_2.IsSchema)(options.unevaluatedProperties) || allObjects ? { ...options, ...clonedUnevaluatedProperties, [index_1.Kind]: 'Intersect', type: 'object', allOf: (0, type_1.CloneRest)(T) } : { ...options, ...clonedUnevaluatedProperties, [index_1.Kind]: 'Intersect', allOf: (0, type_1.CloneRest)(T) })); } exports.IntersectCreate = IntersectCreate;