UNPKG

@sinclair/typebox

Version:

Json Schema Type Builder with Static Type Resolution for TypeScript

27 lines (26 loc) 855 B
import { MappedResult } from '../mapped/index.mjs'; import { Intrinsic } from './intrinsic.mjs'; import { Literal } from '../literal/index.mjs'; import { Clone } from '../clone/value.mjs'; // prettier-ignore function MappedIntrinsicPropertyKey(K, M, options) { return { [K]: Intrinsic(Literal(K), M, Clone(options)) }; } // prettier-ignore function MappedIntrinsicPropertyKeys(K, M, options) { const result = K.reduce((Acc, L) => { return { ...Acc, ...MappedIntrinsicPropertyKey(L, M, options) }; }, {}); return result; } // prettier-ignore function MappedIntrinsicProperties(T, M, options) { return MappedIntrinsicPropertyKeys(T['keys'], M, options); } // prettier-ignore export function IntrinsicFromMappedKey(T, M, options) { const P = MappedIntrinsicProperties(T, M, options); return MappedResult(P); }