UNPKG

@sinclair/typebox

Version:

Json Schema Type Builder with Static Type Resolution for TypeScript

20 lines (18 loc) 686 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateType = CreateType; const policy_1 = require("../../system/policy"); const immutable_1 = require("./immutable"); const value_1 = require("../clone/value"); /** Creates TypeBox schematics using the configured InstanceMode */ function CreateType(schema, options) { const result = options !== undefined ? { ...options, ...schema } : schema; switch (policy_1.TypeSystemPolicy.InstanceMode) { case 'freeze': return (0, immutable_1.Immutable)(result); case 'clone': return (0, value_1.Clone)(result); default: return result; } }