@sinclair/typebox 0.32.0-dev-19 → 0.32.0-dev-21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/import/compiler/compiler.mjs +62 -62
- package/build/import/errors/errors.mjs +62 -62
- package/build/import/index.d.mts +6 -6
- package/build/import/index.mjs +3 -3
- package/build/import/type/indexed/indexed-property-keys.d.mts +2 -2
- package/build/import/type/indexed/indexed-property-keys.mjs +6 -11
- package/build/import/type/intrinsic/intrinsic.mjs +3 -3
- package/build/import/type/optional/index.d.mts +1 -0
- package/build/import/type/optional/index.mjs +1 -0
- package/build/import/type/optional/optional-from-mapped-result.d.mts +12 -0
- package/build/import/type/optional/optional-from-mapped-result.mjs +17 -0
- package/build/import/type/optional/optional.d.mts +19 -2
- package/build/import/type/optional/optional.mjs +18 -2
- package/build/import/type/readonly/index.d.mts +1 -0
- package/build/import/type/readonly/index.mjs +1 -0
- package/build/import/type/readonly/readonly-from-mapped-result.d.mts +12 -0
- package/build/import/type/readonly/readonly-from-mapped-result.mjs +17 -0
- package/build/import/type/readonly/readonly.d.mts +18 -1
- package/build/import/type/readonly/readonly.mjs +18 -2
- package/build/import/type/record/record.d.mts +2 -2
- package/build/import/type/record/record.mjs +2 -3
- package/build/import/type/schema/schema.d.mts +1 -1
- package/build/import/type/symbol/symbol.d.mts +1 -1
- package/build/import/type/template-literal/finite.d.mts +7 -5
- package/build/import/type/template-literal/finite.mjs +14 -5
- package/build/import/type/template-literal/generate.d.mts +14 -8
- package/build/import/type/template-literal/generate.mjs +19 -9
- package/build/import/type/template-literal/index.d.mts +1 -1
- package/build/import/type/template-literal/index.mjs +1 -1
- package/build/import/type/template-literal/{parser.mjs → parse.mjs} +7 -2
- package/build/import/type/template-literal/syntax.d.mts +1 -1
- package/build/import/type/template-literal/syntax.mjs +0 -1
- package/build/import/type/template-literal/template-literal.d.mts +2 -2
- package/build/import/type/template-literal/template-literal.mjs +1 -1
- package/build/import/type/template-literal/union.d.mts +2 -2
- package/build/import/type/template-literal/union.mjs +5 -10
- package/build/import/type/type/json.d.mts +19 -7
- package/build/import/type/type/json.mjs +5 -5
- package/build/import/value/cast/cast.mjs +20 -20
- package/build/import/value/check/check.mjs +62 -62
- package/build/import/value/clean/clean.mjs +16 -16
- package/build/import/value/convert/convert.mjs +36 -36
- package/build/import/value/create/create.mjs +66 -67
- package/build/import/value/default/default.mjs +16 -16
- package/build/import/value/transform/decode.mjs +18 -18
- package/build/import/value/transform/encode.mjs +18 -18
- package/build/import/value/transform/has.mjs +28 -28
- package/build/require/compiler/compiler.js +62 -62
- package/build/require/errors/errors.js +62 -62
- package/build/require/index.d.ts +6 -6
- package/build/require/index.js +6 -2
- package/build/require/type/indexed/indexed-property-keys.d.ts +2 -2
- package/build/require/type/indexed/indexed-property-keys.js +4 -9
- package/build/require/type/intrinsic/intrinsic.js +2 -2
- package/build/require/type/optional/index.d.ts +1 -0
- package/build/require/type/optional/index.js +1 -0
- package/build/require/type/optional/optional-from-mapped-result.d.ts +12 -0
- package/build/require/type/optional/optional-from-mapped-result.js +22 -0
- package/build/require/type/optional/optional.d.ts +19 -2
- package/build/require/type/optional/optional.js +18 -2
- package/build/require/type/readonly/index.d.ts +1 -0
- package/build/require/type/readonly/index.js +1 -0
- package/build/require/type/readonly/readonly-from-mapped-result.d.ts +12 -0
- package/build/require/type/readonly/readonly-from-mapped-result.js +22 -0
- package/build/require/type/readonly/readonly.d.ts +18 -1
- package/build/require/type/readonly/readonly.js +18 -2
- package/build/require/type/record/record.d.ts +2 -2
- package/build/require/type/record/record.js +1 -2
- package/build/require/type/schema/schema.d.ts +1 -1
- package/build/require/type/symbol/symbol.d.ts +1 -1
- package/build/require/type/template-literal/finite.d.ts +7 -5
- package/build/require/type/template-literal/finite.js +16 -6
- package/build/require/type/template-literal/generate.d.ts +14 -8
- package/build/require/type/template-literal/generate.js +22 -11
- package/build/require/type/template-literal/index.d.ts +1 -1
- package/build/require/type/template-literal/index.js +1 -1
- package/build/require/type/template-literal/{parser.js → parse.js} +7 -2
- package/build/require/type/template-literal/syntax.d.ts +1 -1
- package/build/require/type/template-literal/syntax.js +0 -1
- package/build/require/type/template-literal/template-literal.d.ts +2 -2
- package/build/require/type/template-literal/template-literal.js +1 -1
- package/build/require/type/template-literal/union.d.ts +2 -2
- package/build/require/type/template-literal/union.js +5 -10
- package/build/require/type/type/json.d.ts +19 -7
- package/build/require/type/type/json.js +5 -5
- package/build/require/value/cast/cast.js +20 -20
- package/build/require/value/check/check.js +62 -62
- package/build/require/value/clean/clean.js +16 -16
- package/build/require/value/convert/convert.js +36 -36
- package/build/require/value/create/create.js +65 -66
- package/build/require/value/default/default.js +16 -16
- package/build/require/value/transform/decode.js +18 -18
- package/build/require/value/transform/encode.js +18 -18
- package/build/require/value/transform/has.js +28 -28
- package/package.json +1 -1
- package/readme.md +52 -52
- /package/build/import/type/template-literal/{parser.d.mts → parse.d.mts} +0 -0
- /package/build/require/type/template-literal/{parser.d.ts → parse.d.ts} +0 -0
|
@@ -122,42 +122,42 @@ function Default(value) {
|
|
|
122
122
|
// ------------------------------------------------------------------
|
|
123
123
|
// Convert
|
|
124
124
|
// ------------------------------------------------------------------
|
|
125
|
-
function
|
|
125
|
+
function FromArray(schema, references, value) {
|
|
126
126
|
if (IsArray(value)) {
|
|
127
127
|
return value.map((value) => Visit(schema.items, references, value));
|
|
128
128
|
}
|
|
129
129
|
return value;
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function FromBigInt(schema, references, value) {
|
|
132
132
|
return TryConvertBigInt(value);
|
|
133
133
|
}
|
|
134
|
-
function
|
|
134
|
+
function FromBoolean(schema, references, value) {
|
|
135
135
|
return TryConvertBoolean(value);
|
|
136
136
|
}
|
|
137
|
-
function
|
|
137
|
+
function FromDate(schema, references, value) {
|
|
138
138
|
return TryConvertDate(value);
|
|
139
139
|
}
|
|
140
|
-
function
|
|
140
|
+
function FromInteger(schema, references, value) {
|
|
141
141
|
return TryConvertInteger(value);
|
|
142
142
|
}
|
|
143
143
|
// prettier-ignore
|
|
144
|
-
function
|
|
144
|
+
function FromIntersect(schema, references, value) {
|
|
145
145
|
const allObjects = schema.allOf.every(schema => IsObjectType(schema));
|
|
146
146
|
if (allObjects)
|
|
147
147
|
return Visit(Composite(schema.allOf), references, value);
|
|
148
148
|
return Visit(schema.allOf[0], references, value); // todo: fix this
|
|
149
149
|
}
|
|
150
|
-
function
|
|
150
|
+
function FromLiteral(schema, references, value) {
|
|
151
151
|
return TryConvertLiteral(schema, value);
|
|
152
152
|
}
|
|
153
|
-
function
|
|
153
|
+
function FromNull(schema, references, value) {
|
|
154
154
|
return TryConvertNull(value);
|
|
155
155
|
}
|
|
156
|
-
function
|
|
156
|
+
function FromNumber(schema, references, value) {
|
|
157
157
|
return TryConvertNumber(value);
|
|
158
158
|
}
|
|
159
159
|
// prettier-ignore
|
|
160
|
-
function
|
|
160
|
+
function FromObject(schema, references, value) {
|
|
161
161
|
const isConvertable = IsObject(value);
|
|
162
162
|
if (!isConvertable)
|
|
163
163
|
return value;
|
|
@@ -167,7 +167,7 @@ function TObject(schema, references, value) {
|
|
|
167
167
|
: ({ ...value });
|
|
168
168
|
}, value);
|
|
169
169
|
}
|
|
170
|
-
function
|
|
170
|
+
function FromRecord(schema, references, value) {
|
|
171
171
|
const propertyKey = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
172
172
|
const property = schema.patternProperties[propertyKey];
|
|
173
173
|
const result = {};
|
|
@@ -176,20 +176,20 @@ function TRecord(schema, references, value) {
|
|
|
176
176
|
}
|
|
177
177
|
return result;
|
|
178
178
|
}
|
|
179
|
-
function
|
|
179
|
+
function FromRef(schema, references, value) {
|
|
180
180
|
return Visit(Deref(schema, references), references, value);
|
|
181
181
|
}
|
|
182
|
-
function
|
|
182
|
+
function FromString(schema, references, value) {
|
|
183
183
|
return TryConvertString(value);
|
|
184
184
|
}
|
|
185
|
-
function
|
|
185
|
+
function FromSymbol(schema, references, value) {
|
|
186
186
|
return IsString(value) || IsNumber(value) ? Symbol(value) : value;
|
|
187
187
|
}
|
|
188
|
-
function
|
|
188
|
+
function FromThis(schema, references, value) {
|
|
189
189
|
return Visit(Deref(schema, references), references, value);
|
|
190
190
|
}
|
|
191
191
|
// prettier-ignore
|
|
192
|
-
function
|
|
192
|
+
function FromTuple(schema, references, value) {
|
|
193
193
|
const isConvertable = IsArray(value) && !IsUndefined(schema.items);
|
|
194
194
|
if (!isConvertable)
|
|
195
195
|
return value;
|
|
@@ -199,10 +199,10 @@ function TTuple(schema, references, value) {
|
|
|
199
199
|
: value;
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
|
-
function
|
|
202
|
+
function FromUndefined(schema, references, value) {
|
|
203
203
|
return TryConvertUndefined(value);
|
|
204
204
|
}
|
|
205
|
-
function
|
|
205
|
+
function FromUnion(schema, references, value) {
|
|
206
206
|
for (const subschema of schema.anyOf) {
|
|
207
207
|
const converted = Visit(subschema, references, value);
|
|
208
208
|
if (Check(subschema, references, converted)) {
|
|
@@ -216,41 +216,41 @@ function Visit(schema, references, value) {
|
|
|
216
216
|
const schema_ = schema;
|
|
217
217
|
switch (schema[Kind]) {
|
|
218
218
|
case 'Array':
|
|
219
|
-
return
|
|
219
|
+
return FromArray(schema_, references_, value);
|
|
220
220
|
case 'BigInt':
|
|
221
|
-
return
|
|
221
|
+
return FromBigInt(schema_, references_, value);
|
|
222
222
|
case 'Boolean':
|
|
223
|
-
return
|
|
223
|
+
return FromBoolean(schema_, references_, value);
|
|
224
224
|
case 'Date':
|
|
225
|
-
return
|
|
225
|
+
return FromDate(schema_, references_, value);
|
|
226
226
|
case 'Integer':
|
|
227
|
-
return
|
|
227
|
+
return FromInteger(schema_, references_, value);
|
|
228
228
|
case 'Intersect':
|
|
229
|
-
return
|
|
229
|
+
return FromIntersect(schema_, references_, value);
|
|
230
230
|
case 'Literal':
|
|
231
|
-
return
|
|
231
|
+
return FromLiteral(schema_, references_, value);
|
|
232
232
|
case 'Null':
|
|
233
|
-
return
|
|
233
|
+
return FromNull(schema_, references_, value);
|
|
234
234
|
case 'Number':
|
|
235
|
-
return
|
|
235
|
+
return FromNumber(schema_, references_, value);
|
|
236
236
|
case 'Object':
|
|
237
|
-
return
|
|
237
|
+
return FromObject(schema_, references_, value);
|
|
238
238
|
case 'Record':
|
|
239
|
-
return
|
|
239
|
+
return FromRecord(schema_, references_, value);
|
|
240
240
|
case 'Ref':
|
|
241
|
-
return
|
|
241
|
+
return FromRef(schema_, references_, value);
|
|
242
242
|
case 'String':
|
|
243
|
-
return
|
|
243
|
+
return FromString(schema_, references_, value);
|
|
244
244
|
case 'Symbol':
|
|
245
|
-
return
|
|
245
|
+
return FromSymbol(schema_, references_, value);
|
|
246
246
|
case 'This':
|
|
247
|
-
return
|
|
247
|
+
return FromThis(schema_, references_, value);
|
|
248
248
|
case 'Tuple':
|
|
249
|
-
return
|
|
249
|
+
return FromTuple(schema_, references_, value);
|
|
250
250
|
case 'Undefined':
|
|
251
|
-
return
|
|
251
|
+
return FromUndefined(schema_, references_, value);
|
|
252
252
|
case 'Union':
|
|
253
|
-
return
|
|
253
|
+
return FromUnion(schema_, references_, value);
|
|
254
254
|
default:
|
|
255
255
|
return Default(value);
|
|
256
256
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HasPropertyKey, IsString } from '../guard/index.mjs';
|
|
2
2
|
import { Check } from '../check/index.mjs';
|
|
3
3
|
import { Deref } from '../deref/index.mjs';
|
|
4
|
-
import {
|
|
4
|
+
import { TemplateLiteralGenerate, IsTemplateLiteralFinite } from '../../type/template-literal/index.mjs';
|
|
5
5
|
import { PatternStringExact, PatternNumberExact } from '../../type/patterns/index.mjs';
|
|
6
6
|
import { TypeRegistry } from '../../type/registry/index.mjs';
|
|
7
7
|
import { Kind } from '../../type/symbols/index.mjs';
|
|
@@ -55,7 +55,7 @@ export class ValueCreateRecursiveInstantiationError extends Error {
|
|
|
55
55
|
// ------------------------------------------------------------------
|
|
56
56
|
// Create
|
|
57
57
|
// ------------------------------------------------------------------
|
|
58
|
-
function
|
|
58
|
+
function FromAny(schema, references) {
|
|
59
59
|
if (HasPropertyKey(schema, 'default')) {
|
|
60
60
|
return schema.default;
|
|
61
61
|
}
|
|
@@ -63,7 +63,7 @@ function TAny(schema, references) {
|
|
|
63
63
|
return {};
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
function
|
|
66
|
+
function FromArray(schema, references) {
|
|
67
67
|
if (schema.uniqueItems === true && !HasPropertyKey(schema, 'default')) {
|
|
68
68
|
throw new Error('ValueCreate.Array: Array with the uniqueItems constraint requires a default value');
|
|
69
69
|
}
|
|
@@ -82,7 +82,7 @@ function TArray(schema, references) {
|
|
|
82
82
|
return [];
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
function
|
|
85
|
+
function FromAsyncIterator(schema, references) {
|
|
86
86
|
if (HasPropertyKey(schema, 'default')) {
|
|
87
87
|
return schema.default;
|
|
88
88
|
}
|
|
@@ -90,7 +90,7 @@ function TAsyncIterator(schema, references) {
|
|
|
90
90
|
return (async function* () { })();
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
function
|
|
93
|
+
function FromBigInt(schema, references) {
|
|
94
94
|
if (HasPropertyKey(schema, 'default')) {
|
|
95
95
|
return schema.default;
|
|
96
96
|
}
|
|
@@ -98,7 +98,7 @@ function TBigInt(schema, references) {
|
|
|
98
98
|
return BigInt(0);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
function
|
|
101
|
+
function FromBoolean(schema, references) {
|
|
102
102
|
if (HasPropertyKey(schema, 'default')) {
|
|
103
103
|
return schema.default;
|
|
104
104
|
}
|
|
@@ -106,7 +106,7 @@ function TBoolean(schema, references) {
|
|
|
106
106
|
return false;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
function
|
|
109
|
+
function FromConstructor(schema, references) {
|
|
110
110
|
if (HasPropertyKey(schema, 'default')) {
|
|
111
111
|
return schema.default;
|
|
112
112
|
}
|
|
@@ -128,7 +128,7 @@ function TConstructor(schema, references) {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function FromDate(schema, references) {
|
|
132
132
|
if (HasPropertyKey(schema, 'default')) {
|
|
133
133
|
return schema.default;
|
|
134
134
|
}
|
|
@@ -139,7 +139,7 @@ function TDate(schema, references) {
|
|
|
139
139
|
return new Date();
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
function
|
|
142
|
+
function FromFunction(schema, references) {
|
|
143
143
|
if (HasPropertyKey(schema, 'default')) {
|
|
144
144
|
return schema.default;
|
|
145
145
|
}
|
|
@@ -147,7 +147,7 @@ function TFunction(schema, references) {
|
|
|
147
147
|
return () => Visit(schema.returns, references);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
-
function
|
|
150
|
+
function FromInteger(schema, references) {
|
|
151
151
|
if (HasPropertyKey(schema, 'default')) {
|
|
152
152
|
return schema.default;
|
|
153
153
|
}
|
|
@@ -158,7 +158,7 @@ function TInteger(schema, references) {
|
|
|
158
158
|
return 0;
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
function
|
|
161
|
+
function FromIntersect(schema, references) {
|
|
162
162
|
if (HasPropertyKey(schema, 'default')) {
|
|
163
163
|
return schema.default;
|
|
164
164
|
}
|
|
@@ -179,7 +179,7 @@ function TIntersect(schema, references) {
|
|
|
179
179
|
return value;
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
|
-
function
|
|
182
|
+
function FromIterator(schema, references) {
|
|
183
183
|
if (HasPropertyKey(schema, 'default')) {
|
|
184
184
|
return schema.default;
|
|
185
185
|
}
|
|
@@ -187,7 +187,7 @@ function TIterator(schema, references) {
|
|
|
187
187
|
return (function* () { })();
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
|
-
function
|
|
190
|
+
function FromLiteral(schema, references) {
|
|
191
191
|
if (HasPropertyKey(schema, 'default')) {
|
|
192
192
|
return schema.default;
|
|
193
193
|
}
|
|
@@ -195,10 +195,10 @@ function TLiteral(schema, references) {
|
|
|
195
195
|
return schema.const;
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
function
|
|
198
|
+
function FromNever(schema, references) {
|
|
199
199
|
throw new ValueCreateNeverTypeError(schema);
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function FromNot(schema, references) {
|
|
202
202
|
if (HasPropertyKey(schema, 'default')) {
|
|
203
203
|
return schema.default;
|
|
204
204
|
}
|
|
@@ -206,7 +206,7 @@ function TNot(schema, references) {
|
|
|
206
206
|
throw new ValueCreateNotTypeError(schema);
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function FromNull(schema, references) {
|
|
210
210
|
if (HasPropertyKey(schema, 'default')) {
|
|
211
211
|
return schema.default;
|
|
212
212
|
}
|
|
@@ -214,7 +214,7 @@ function TNull(schema, references) {
|
|
|
214
214
|
return null;
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
|
-
function
|
|
217
|
+
function FromNumber(schema, references) {
|
|
218
218
|
if (HasPropertyKey(schema, 'default')) {
|
|
219
219
|
return schema.default;
|
|
220
220
|
}
|
|
@@ -225,7 +225,7 @@ function TNumber(schema, references) {
|
|
|
225
225
|
return 0;
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
|
-
function
|
|
228
|
+
function FromObject(schema, references) {
|
|
229
229
|
if (HasPropertyKey(schema, 'default')) {
|
|
230
230
|
return schema.default;
|
|
231
231
|
}
|
|
@@ -237,7 +237,7 @@ function TObject(schema, references) {
|
|
|
237
237
|
}, {}));
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
|
-
function
|
|
240
|
+
function FromPromise(schema, references) {
|
|
241
241
|
if (HasPropertyKey(schema, 'default')) {
|
|
242
242
|
return schema.default;
|
|
243
243
|
}
|
|
@@ -245,7 +245,7 @@ function TPromise(schema, references) {
|
|
|
245
245
|
return Promise.resolve(Visit(schema.item, references));
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
|
-
function
|
|
248
|
+
function FromRecord(schema, references) {
|
|
249
249
|
const [keyPattern, valueSchema] = Object.entries(schema.patternProperties)[0];
|
|
250
250
|
if (HasPropertyKey(schema, 'default')) {
|
|
251
251
|
return schema.default;
|
|
@@ -260,7 +260,7 @@ function TRecord(schema, references) {
|
|
|
260
260
|
return {};
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
|
-
function
|
|
263
|
+
function FromRef(schema, references) {
|
|
264
264
|
if (HasPropertyKey(schema, 'default')) {
|
|
265
265
|
return schema.default;
|
|
266
266
|
}
|
|
@@ -268,7 +268,7 @@ function TRef(schema, references) {
|
|
|
268
268
|
return Visit(Deref(schema, references), references);
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
|
-
function
|
|
271
|
+
function FromString(schema, references) {
|
|
272
272
|
if (schema.pattern !== undefined) {
|
|
273
273
|
if (!HasPropertyKey(schema, 'default')) {
|
|
274
274
|
throw new Error('ValueCreate.String: String types with patterns must specify a default value');
|
|
@@ -299,7 +299,7 @@ function TString(schema, references) {
|
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
|
-
function
|
|
302
|
+
function FromSymbol(schema, references) {
|
|
303
303
|
if (HasPropertyKey(schema, 'default')) {
|
|
304
304
|
return schema.default;
|
|
305
305
|
}
|
|
@@ -310,17 +310,16 @@ function TSymbol(schema, references) {
|
|
|
310
310
|
return Symbol();
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
|
-
function
|
|
313
|
+
function FromTemplateLiteral(schema, references) {
|
|
314
314
|
if (HasPropertyKey(schema, 'default')) {
|
|
315
315
|
return schema.default;
|
|
316
316
|
}
|
|
317
|
-
|
|
318
|
-
if (!IsTemplateLiteralFinite(expression))
|
|
317
|
+
if (!IsTemplateLiteralFinite(schema))
|
|
319
318
|
throw new ValueCreateTempateLiteralTypeError(schema);
|
|
320
|
-
const
|
|
321
|
-
return
|
|
319
|
+
const generated = TemplateLiteralGenerate(schema);
|
|
320
|
+
return generated[0];
|
|
322
321
|
}
|
|
323
|
-
function
|
|
322
|
+
function FromThis(schema, references) {
|
|
324
323
|
if (recursiveDepth++ > recursiveMaxDepth)
|
|
325
324
|
throw new ValueCreateRecursiveInstantiationError(schema, recursiveMaxDepth);
|
|
326
325
|
if (HasPropertyKey(schema, 'default')) {
|
|
@@ -330,7 +329,7 @@ function TThis(schema, references) {
|
|
|
330
329
|
return Visit(Deref(schema, references), references);
|
|
331
330
|
}
|
|
332
331
|
}
|
|
333
|
-
function
|
|
332
|
+
function FromTuple(schema, references) {
|
|
334
333
|
if (HasPropertyKey(schema, 'default')) {
|
|
335
334
|
return schema.default;
|
|
336
335
|
}
|
|
@@ -341,7 +340,7 @@ function TTuple(schema, references) {
|
|
|
341
340
|
return Array.from({ length: schema.minItems }).map((_, index) => Visit(schema.items[index], references));
|
|
342
341
|
}
|
|
343
342
|
}
|
|
344
|
-
function
|
|
343
|
+
function FromUndefined(schema, references) {
|
|
345
344
|
if (HasPropertyKey(schema, 'default')) {
|
|
346
345
|
return schema.default;
|
|
347
346
|
}
|
|
@@ -349,7 +348,7 @@ function TUndefined(schema, references) {
|
|
|
349
348
|
return undefined;
|
|
350
349
|
}
|
|
351
350
|
}
|
|
352
|
-
function
|
|
351
|
+
function FromUnion(schema, references) {
|
|
353
352
|
if (HasPropertyKey(schema, 'default')) {
|
|
354
353
|
return schema.default;
|
|
355
354
|
}
|
|
@@ -360,7 +359,7 @@ function TUnion(schema, references) {
|
|
|
360
359
|
return Visit(schema.anyOf[0], references);
|
|
361
360
|
}
|
|
362
361
|
}
|
|
363
|
-
function
|
|
362
|
+
function FromUint8Array(schema, references) {
|
|
364
363
|
if (HasPropertyKey(schema, 'default')) {
|
|
365
364
|
return schema.default;
|
|
366
365
|
}
|
|
@@ -371,7 +370,7 @@ function TUint8Array(schema, references) {
|
|
|
371
370
|
return new Uint8Array(0);
|
|
372
371
|
}
|
|
373
372
|
}
|
|
374
|
-
function
|
|
373
|
+
function FromUnknown(schema, references) {
|
|
375
374
|
if (HasPropertyKey(schema, 'default')) {
|
|
376
375
|
return schema.default;
|
|
377
376
|
}
|
|
@@ -379,7 +378,7 @@ function TUnknown(schema, references) {
|
|
|
379
378
|
return {};
|
|
380
379
|
}
|
|
381
380
|
}
|
|
382
|
-
function
|
|
381
|
+
function FromVoid(schema, references) {
|
|
383
382
|
if (HasPropertyKey(schema, 'default')) {
|
|
384
383
|
return schema.default;
|
|
385
384
|
}
|
|
@@ -387,7 +386,7 @@ function TVoid(schema, references) {
|
|
|
387
386
|
return void 0;
|
|
388
387
|
}
|
|
389
388
|
}
|
|
390
|
-
function
|
|
389
|
+
function FromKind(schema, references) {
|
|
391
390
|
if (HasPropertyKey(schema, 'default')) {
|
|
392
391
|
return schema.default;
|
|
393
392
|
}
|
|
@@ -400,69 +399,69 @@ function Visit(schema, references) {
|
|
|
400
399
|
const schema_ = schema;
|
|
401
400
|
switch (schema_[Kind]) {
|
|
402
401
|
case 'Any':
|
|
403
|
-
return
|
|
402
|
+
return FromAny(schema_, references_);
|
|
404
403
|
case 'Array':
|
|
405
|
-
return
|
|
404
|
+
return FromArray(schema_, references_);
|
|
406
405
|
case 'AsyncIterator':
|
|
407
|
-
return
|
|
406
|
+
return FromAsyncIterator(schema_, references_);
|
|
408
407
|
case 'BigInt':
|
|
409
|
-
return
|
|
408
|
+
return FromBigInt(schema_, references_);
|
|
410
409
|
case 'Boolean':
|
|
411
|
-
return
|
|
410
|
+
return FromBoolean(schema_, references_);
|
|
412
411
|
case 'Constructor':
|
|
413
|
-
return
|
|
412
|
+
return FromConstructor(schema_, references_);
|
|
414
413
|
case 'Date':
|
|
415
|
-
return
|
|
414
|
+
return FromDate(schema_, references_);
|
|
416
415
|
case 'Function':
|
|
417
|
-
return
|
|
416
|
+
return FromFunction(schema_, references_);
|
|
418
417
|
case 'Integer':
|
|
419
|
-
return
|
|
418
|
+
return FromInteger(schema_, references_);
|
|
420
419
|
case 'Intersect':
|
|
421
|
-
return
|
|
420
|
+
return FromIntersect(schema_, references_);
|
|
422
421
|
case 'Iterator':
|
|
423
|
-
return
|
|
422
|
+
return FromIterator(schema_, references_);
|
|
424
423
|
case 'Literal':
|
|
425
|
-
return
|
|
424
|
+
return FromLiteral(schema_, references_);
|
|
426
425
|
case 'Never':
|
|
427
|
-
return
|
|
426
|
+
return FromNever(schema_, references_);
|
|
428
427
|
case 'Not':
|
|
429
|
-
return
|
|
428
|
+
return FromNot(schema_, references_);
|
|
430
429
|
case 'Null':
|
|
431
|
-
return
|
|
430
|
+
return FromNull(schema_, references_);
|
|
432
431
|
case 'Number':
|
|
433
|
-
return
|
|
432
|
+
return FromNumber(schema_, references_);
|
|
434
433
|
case 'Object':
|
|
435
|
-
return
|
|
434
|
+
return FromObject(schema_, references_);
|
|
436
435
|
case 'Promise':
|
|
437
|
-
return
|
|
436
|
+
return FromPromise(schema_, references_);
|
|
438
437
|
case 'Record':
|
|
439
|
-
return
|
|
438
|
+
return FromRecord(schema_, references_);
|
|
440
439
|
case 'Ref':
|
|
441
|
-
return
|
|
440
|
+
return FromRef(schema_, references_);
|
|
442
441
|
case 'String':
|
|
443
|
-
return
|
|
442
|
+
return FromString(schema_, references_);
|
|
444
443
|
case 'Symbol':
|
|
445
|
-
return
|
|
444
|
+
return FromSymbol(schema_, references_);
|
|
446
445
|
case 'TemplateLiteral':
|
|
447
|
-
return
|
|
446
|
+
return FromTemplateLiteral(schema_, references_);
|
|
448
447
|
case 'This':
|
|
449
|
-
return
|
|
448
|
+
return FromThis(schema_, references_);
|
|
450
449
|
case 'Tuple':
|
|
451
|
-
return
|
|
450
|
+
return FromTuple(schema_, references_);
|
|
452
451
|
case 'Undefined':
|
|
453
|
-
return
|
|
452
|
+
return FromUndefined(schema_, references_);
|
|
454
453
|
case 'Union':
|
|
455
|
-
return
|
|
454
|
+
return FromUnion(schema_, references_);
|
|
456
455
|
case 'Uint8Array':
|
|
457
|
-
return
|
|
456
|
+
return FromUint8Array(schema_, references_);
|
|
458
457
|
case 'Unknown':
|
|
459
|
-
return
|
|
458
|
+
return FromUnknown(schema_, references_);
|
|
460
459
|
case 'Void':
|
|
461
|
-
return
|
|
460
|
+
return FromVoid(schema_, references_);
|
|
462
461
|
default:
|
|
463
462
|
if (!TypeRegistry.Has(schema_[Kind]))
|
|
464
463
|
throw new ValueCreateUnknownTypeError(schema_);
|
|
465
|
-
return
|
|
464
|
+
return FromKind(schema_, references_);
|
|
466
465
|
}
|
|
467
466
|
}
|
|
468
467
|
// ------------------------------------------------------------------
|
|
@@ -32,7 +32,7 @@ function IsDefaultSchema(value) {
|
|
|
32
32
|
// ------------------------------------------------------------------
|
|
33
33
|
// Types
|
|
34
34
|
// ------------------------------------------------------------------
|
|
35
|
-
function
|
|
35
|
+
function FromArray(schema, references, value) {
|
|
36
36
|
const defaulted = ValueOrDefault(schema, value);
|
|
37
37
|
if (!IsArray(defaulted))
|
|
38
38
|
return defaulted;
|
|
@@ -41,14 +41,14 @@ function TArray(schema, references, value) {
|
|
|
41
41
|
}
|
|
42
42
|
return defaulted;
|
|
43
43
|
}
|
|
44
|
-
function
|
|
44
|
+
function FromIntersect(schema, references, value) {
|
|
45
45
|
const defaulted = ValueOrDefault(schema, value);
|
|
46
46
|
return schema.allOf.reduce((acc, schema) => {
|
|
47
47
|
const next = Visit(schema, references, defaulted);
|
|
48
48
|
return IsObject(next) ? { ...acc, ...next } : next;
|
|
49
49
|
}, {});
|
|
50
50
|
}
|
|
51
|
-
function
|
|
51
|
+
function FromObject(schema, references, value) {
|
|
52
52
|
const defaulted = ValueOrDefault(schema, value);
|
|
53
53
|
if (!IsObject(defaulted))
|
|
54
54
|
return defaulted;
|
|
@@ -71,7 +71,7 @@ function TObject(schema, references, value) {
|
|
|
71
71
|
}
|
|
72
72
|
return defaulted;
|
|
73
73
|
}
|
|
74
|
-
function
|
|
74
|
+
function FromRecord(schema, references, value) {
|
|
75
75
|
const defaulted = ValueOrDefault(schema, value);
|
|
76
76
|
if (!IsObject(defaulted))
|
|
77
77
|
return defaulted;
|
|
@@ -95,13 +95,13 @@ function TRecord(schema, references, value) {
|
|
|
95
95
|
}
|
|
96
96
|
return defaulted;
|
|
97
97
|
}
|
|
98
|
-
function
|
|
98
|
+
function FromRef(schema, references, value) {
|
|
99
99
|
return Visit(Deref(schema, references), references, ValueOrDefault(schema, value));
|
|
100
100
|
}
|
|
101
|
-
function
|
|
101
|
+
function FromThis(schema, references, value) {
|
|
102
102
|
return Visit(Deref(schema, references), references, value);
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function FromTuple(schema, references, value) {
|
|
105
105
|
const defaulted = ValueOrDefault(schema, value);
|
|
106
106
|
if (!IsArray(defaulted) || IsUndefined(schema.items))
|
|
107
107
|
return defaulted;
|
|
@@ -112,7 +112,7 @@ function TTuple(schema, references, value) {
|
|
|
112
112
|
}
|
|
113
113
|
return defaulted;
|
|
114
114
|
}
|
|
115
|
-
function
|
|
115
|
+
function FromUnion(schema, references, value) {
|
|
116
116
|
const defaulted = ValueOrDefault(schema, value);
|
|
117
117
|
for (const inner of schema.anyOf) {
|
|
118
118
|
const result = Visit(inner, references, defaulted);
|
|
@@ -127,21 +127,21 @@ function Visit(schema, references, value) {
|
|
|
127
127
|
const schema_ = schema;
|
|
128
128
|
switch (schema_[Kind]) {
|
|
129
129
|
case 'Array':
|
|
130
|
-
return
|
|
130
|
+
return FromArray(schema_, references_, value);
|
|
131
131
|
case 'Intersect':
|
|
132
|
-
return
|
|
132
|
+
return FromIntersect(schema_, references_, value);
|
|
133
133
|
case 'Object':
|
|
134
|
-
return
|
|
134
|
+
return FromObject(schema_, references_, value);
|
|
135
135
|
case 'Record':
|
|
136
|
-
return
|
|
136
|
+
return FromRecord(schema_, references_, value);
|
|
137
137
|
case 'Ref':
|
|
138
|
-
return
|
|
138
|
+
return FromRef(schema_, references_, value);
|
|
139
139
|
case 'This':
|
|
140
|
-
return
|
|
140
|
+
return FromThis(schema_, references_, value);
|
|
141
141
|
case 'Tuple':
|
|
142
|
-
return
|
|
142
|
+
return FromTuple(schema_, references_, value);
|
|
143
143
|
case 'Union':
|
|
144
|
-
return
|
|
144
|
+
return FromUnion(schema_, references_, value);
|
|
145
145
|
default:
|
|
146
146
|
return ValueOrDefault(schema_, value);
|
|
147
147
|
}
|