typia 7.0.0-dev.20240929 → 7.0.0-dev.20241001
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/lib/index.mjs +25 -25
- package/lib/index.mjs.map +1 -1
- package/lib/programmers/AssertProgrammer.js +34 -27
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.d.ts +5 -1
- package/lib/programmers/CheckerProgrammer.js +432 -348
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +91 -28
- package/lib/programmers/FeatureProgrammer.js +165 -138
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +5 -1
- package/lib/programmers/IsProgrammer.js +87 -66
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +83 -68
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/TypiaProgrammer.d.ts +2 -2
- package/lib/programmers/TypiaProgrammer.js +79 -75
- package/lib/programmers/TypiaProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +45 -19
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/CloneJoiner.js +4 -1
- package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
- package/lib/programmers/helpers/NotationJoiner.d.ts +2 -1
- package/lib/programmers/helpers/NotationJoiner.js +34 -33
- package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
- package/lib/programmers/helpers/PruneJoiner.js +4 -1
- package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
- package/lib/programmers/helpers/RandomJoiner.d.ts +1 -1
- package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
- package/lib/programmers/helpers/RandomRanger.js.map +1 -1
- package/lib/programmers/helpers/StringifyJoinder.js +4 -1
- package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
- package/lib/programmers/helpers/StringifyPredicator.d.ts +1 -1
- package/lib/programmers/helpers/StringifyPredicator.js +4 -3
- package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +52 -12
- package/lib/programmers/helpers/UnionExplorer.js +184 -120
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
- package/lib/programmers/helpers/UnionPredicator.js +7 -7
- package/lib/programmers/http/HttpFormDataProgrammer.js +77 -70
- package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpHeadersProgrammer.js +69 -68
- package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpQueryProgrammer.js +69 -62
- package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
- package/lib/programmers/internal/application_escaped.js +4 -4
- package/lib/programmers/internal/application_escaped.js.map +1 -1
- package/lib/programmers/internal/application_templates.js +8 -2
- package/lib/programmers/internal/application_templates.js.map +1 -1
- package/lib/programmers/internal/application_union_discriminator.d.ts +1 -1
- package/lib/programmers/internal/application_union_discriminator.js +6 -6
- package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
- package/lib/programmers/internal/application_v30_object.js +6 -3
- package/lib/programmers/internal/application_v30_object.js.map +1 -1
- package/lib/programmers/internal/application_v31_object.js +4 -1
- package/lib/programmers/internal/application_v31_object.js.map +1 -1
- package/lib/programmers/internal/check_array_length.js +21 -26
- package/lib/programmers/internal/check_array_length.js.map +1 -1
- package/lib/programmers/internal/check_bigint.js +18 -26
- package/lib/programmers/internal/check_bigint.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_key.d.ts +1 -5
- package/lib/programmers/internal/check_dynamic_key.js +109 -91
- package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_properties.js +88 -90
- package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/check_native.js +8 -5
- package/lib/programmers/internal/check_native.js.map +1 -1
- package/lib/programmers/internal/check_number.js +59 -65
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_object.js +31 -22
- package/lib/programmers/internal/check_object.js.map +1 -1
- package/lib/programmers/internal/check_string.js +18 -26
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/check_template.js +20 -21
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.js +68 -53
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/decode_union_object.js +59 -49
- package/lib/programmers/internal/decode_union_object.js.map +1 -1
- package/lib/programmers/internal/feature_object_entries.js +31 -33
- package/lib/programmers/internal/feature_object_entries.js.map +1 -1
- package/lib/programmers/internal/llm_schema_escaped.js +29 -11
- package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
- package/lib/programmers/internal/llm_schema_object.js +4 -1
- package/lib/programmers/internal/llm_schema_object.js.map +1 -1
- package/lib/programmers/internal/metadata_to_pattern.js +44 -41
- package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
- package/lib/programmers/internal/postfix_of_tuple.d.ts +1 -1
- package/lib/programmers/internal/postfix_of_tuple.js +3 -0
- package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
- package/lib/programmers/internal/prune_object_properties.js +6 -3
- package/lib/programmers/internal/prune_object_properties.js.map +1 -1
- package/lib/programmers/internal/random_custom.js +8 -14
- package/lib/programmers/internal/random_custom.js.map +1 -1
- package/lib/programmers/internal/stringify_dynamic_properties.js +4 -1
- package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/stringify_regular_properties.js +4 -4
- package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
- package/lib/programmers/internal/template_to_pattern.js +10 -5
- package/lib/programmers/internal/template_to_pattern.js.map +1 -1
- package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +1 -2
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js +3 -0
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +154 -91
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +221 -154
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +139 -89
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +4 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js +257 -148
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +32 -24
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/utils/NamingConvention/NamingConvention.js +41 -47
- package/lib/utils/NamingConvention/NamingConvention.js.map +1 -1
- package/package.json +1 -1
- package/src/programmers/AssertProgrammer.ts +44 -37
- package/src/programmers/CheckerProgrammer.ts +394 -358
- package/src/programmers/FeatureProgrammer.ts +327 -267
- package/src/programmers/IsProgrammer.ts +93 -76
- package/src/programmers/RandomProgrammer.ts +18 -9
- package/src/programmers/TypiaProgrammer.ts +48 -34
- package/src/programmers/ValidateProgrammer.ts +56 -29
- package/src/programmers/helpers/CloneJoiner.ts +4 -1
- package/src/programmers/helpers/NotationJoiner.ts +85 -83
- package/src/programmers/helpers/ProtobufUtil.ts +2 -2
- package/src/programmers/helpers/PruneJoiner.ts +4 -1
- package/src/programmers/helpers/RandomJoiner.ts +5 -2
- package/src/programmers/helpers/RandomRanger.ts +8 -1
- package/src/programmers/helpers/StringifyJoinder.ts +4 -1
- package/src/programmers/helpers/StringifyPredicator.ts +4 -3
- package/src/programmers/helpers/UnionExplorer.ts +277 -179
- package/src/programmers/helpers/UnionPredicator.ts +5 -5
- package/src/programmers/http/HttpFormDataProgrammer.ts +135 -114
- package/src/programmers/http/HttpHeadersProgrammer.ts +145 -120
- package/src/programmers/http/HttpQueryProgrammer.ts +137 -116
- package/src/programmers/internal/application_escaped.ts +6 -6
- package/src/programmers/internal/application_templates.ts +8 -6
- package/src/programmers/internal/application_union_discriminator.ts +6 -6
- package/src/programmers/internal/application_v30_object.ts +6 -3
- package/src/programmers/internal/application_v31_object.ts +4 -1
- package/src/programmers/internal/application_v31_tuple.ts +1 -1
- package/src/programmers/internal/check_array_length.ts +31 -30
- package/src/programmers/internal/check_bigint.ts +31 -31
- package/src/programmers/internal/check_dynamic_key.ts +155 -126
- package/src/programmers/internal/check_dynamic_properties.ts +152 -154
- package/src/programmers/internal/check_native.ts +11 -5
- package/src/programmers/internal/check_number.ts +88 -84
- package/src/programmers/internal/check_object.ts +45 -31
- package/src/programmers/internal/check_string.ts +31 -30
- package/src/programmers/internal/check_template.ts +34 -32
- package/src/programmers/internal/check_union_array_like.ts +245 -228
- package/src/programmers/internal/decode_union_object.ts +92 -75
- package/src/programmers/internal/feature_object_entries.ts +36 -36
- package/src/programmers/internal/llm_schema_escaped.ts +36 -13
- package/src/programmers/internal/llm_schema_object.ts +4 -1
- package/src/programmers/internal/metadata_to_pattern.ts +31 -23
- package/src/programmers/internal/postfix_of_tuple.ts +3 -0
- package/src/programmers/internal/prune_object_properties.ts +6 -3
- package/src/programmers/internal/random_custom.ts +24 -23
- package/src/programmers/internal/stringify_dynamic_properties.ts +4 -1
- package/src/programmers/internal/stringify_regular_properties.ts +7 -7
- package/src/programmers/internal/template_to_pattern.ts +12 -4
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +3 -0
- package/src/programmers/json/JsonStringifyProgrammer.ts +151 -104
- package/src/programmers/misc/MiscCloneProgrammer.ts +255 -204
- package/src/programmers/misc/MiscPruneProgrammer.ts +149 -116
- package/src/programmers/notations/NotationGeneralProgrammer.ts +307 -211
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +25 -21
- package/src/utils/NamingConvention/NamingConvention.ts +40 -42
|
@@ -90,9 +90,11 @@ export namespace MiscPruneProgrammer {
|
|
|
90
90
|
ts.factory.createArrowFunction(
|
|
91
91
|
undefined,
|
|
92
92
|
undefined,
|
|
93
|
-
FeatureProgrammer.parameterDeclarations(
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
FeatureProgrammer.parameterDeclarations({
|
|
94
|
+
config: props.config,
|
|
95
|
+
type: TypeFactory.keyword("any"),
|
|
96
|
+
input: ts.factory.createIdentifier("input"),
|
|
97
|
+
}),
|
|
96
98
|
TypeFactory.keyword("any"),
|
|
97
99
|
undefined,
|
|
98
100
|
decode_array_inline({
|
|
@@ -129,9 +131,11 @@ export namespace MiscPruneProgrammer {
|
|
|
129
131
|
ts.factory.createArrowFunction(
|
|
130
132
|
undefined,
|
|
131
133
|
undefined,
|
|
132
|
-
FeatureProgrammer.parameterDeclarations(
|
|
133
|
-
|
|
134
|
-
|
|
134
|
+
FeatureProgrammer.parameterDeclarations({
|
|
135
|
+
config: props.config,
|
|
136
|
+
type: TypeFactory.keyword("any"),
|
|
137
|
+
input: ts.factory.createIdentifier("input"),
|
|
138
|
+
}),
|
|
135
139
|
TypeFactory.keyword("any"),
|
|
136
140
|
undefined,
|
|
137
141
|
decode_tuple_inline({
|
|
@@ -273,10 +277,16 @@ export namespace MiscPruneProgrammer {
|
|
|
273
277
|
explore: FeatureProgrammer.IExplore;
|
|
274
278
|
}) =>
|
|
275
279
|
FeatureProgrammer.decode_object({
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
+
config: {
|
|
281
|
+
trace: false,
|
|
282
|
+
path: false,
|
|
283
|
+
prefix: PREFIX,
|
|
284
|
+
},
|
|
285
|
+
importer: props.importer,
|
|
286
|
+
object: props.object,
|
|
287
|
+
input: props.input,
|
|
288
|
+
explore: props.explore,
|
|
289
|
+
});
|
|
280
290
|
|
|
281
291
|
const decode_array = (props: {
|
|
282
292
|
config: FeatureProgrammer.IConfig;
|
|
@@ -293,11 +303,15 @@ export namespace MiscPruneProgrammer {
|
|
|
293
303
|
),
|
|
294
304
|
),
|
|
295
305
|
undefined,
|
|
296
|
-
FeatureProgrammer.argumentsArray(
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
306
|
+
FeatureProgrammer.argumentsArray({
|
|
307
|
+
config: props.config,
|
|
308
|
+
explore: {
|
|
309
|
+
...props.explore,
|
|
310
|
+
source: "function",
|
|
311
|
+
from: "array",
|
|
312
|
+
},
|
|
313
|
+
input: props.input,
|
|
314
|
+
}),
|
|
301
315
|
)
|
|
302
316
|
: decode_array_inline(props);
|
|
303
317
|
|
|
@@ -308,9 +322,14 @@ export namespace MiscPruneProgrammer {
|
|
|
308
322
|
array: MetadataArray;
|
|
309
323
|
explore: FeatureProgrammer.IExplore;
|
|
310
324
|
}): ts.Expression =>
|
|
311
|
-
FeatureProgrammer.decode_array(
|
|
312
|
-
|
|
313
|
-
|
|
325
|
+
FeatureProgrammer.decode_array({
|
|
326
|
+
config: props.config,
|
|
327
|
+
importer: props.importer,
|
|
328
|
+
combiner: PruneJoiner.array,
|
|
329
|
+
array: props.array,
|
|
330
|
+
input: props.input,
|
|
331
|
+
explore: props.explore,
|
|
332
|
+
});
|
|
314
333
|
|
|
315
334
|
const decode_tuple = (props: {
|
|
316
335
|
context: ITypiaContext;
|
|
@@ -328,10 +347,14 @@ export namespace MiscPruneProgrammer {
|
|
|
328
347
|
),
|
|
329
348
|
),
|
|
330
349
|
undefined,
|
|
331
|
-
FeatureProgrammer.argumentsArray(
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
350
|
+
FeatureProgrammer.argumentsArray({
|
|
351
|
+
config: props.config,
|
|
352
|
+
explore: {
|
|
353
|
+
...props.explore,
|
|
354
|
+
source: "function",
|
|
355
|
+
},
|
|
356
|
+
input: props.input,
|
|
357
|
+
}),
|
|
335
358
|
)
|
|
336
359
|
: decode_tuple_inline({
|
|
337
360
|
...props,
|
|
@@ -415,9 +438,7 @@ export namespace MiscPruneProgrammer {
|
|
|
415
438
|
props.importer.useLocal(`${PREFIX}u${props.metadata.union_index!}`),
|
|
416
439
|
),
|
|
417
440
|
undefined,
|
|
418
|
-
FeatureProgrammer.argumentsArray(props
|
|
419
|
-
props.input,
|
|
420
|
-
),
|
|
441
|
+
FeatureProgrammer.argumentsArray(props),
|
|
421
442
|
);
|
|
422
443
|
};
|
|
423
444
|
|
|
@@ -434,32 +455,39 @@ export namespace MiscPruneProgrammer {
|
|
|
434
455
|
elements: props.arrays,
|
|
435
456
|
factory: (next) =>
|
|
436
457
|
UnionExplorer.array({
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
458
|
+
config: {
|
|
459
|
+
checker: (v) =>
|
|
460
|
+
IsProgrammer.decode({
|
|
461
|
+
context: props.context,
|
|
462
|
+
importer: props.importer,
|
|
463
|
+
metadata: v.definition,
|
|
464
|
+
input: v.input,
|
|
465
|
+
explore: v.explore,
|
|
466
|
+
}),
|
|
467
|
+
decoder: (v) =>
|
|
468
|
+
decode_array({
|
|
469
|
+
config: props.config,
|
|
470
|
+
importer: props.importer,
|
|
471
|
+
input: v.input,
|
|
472
|
+
array: v.definition,
|
|
473
|
+
explore: v.explore,
|
|
474
|
+
}),
|
|
475
|
+
empty: ts.factory.createStringLiteral("[]"),
|
|
476
|
+
success: ts.factory.createTrue(),
|
|
477
|
+
failure: (v) =>
|
|
478
|
+
create_throw_error({
|
|
479
|
+
importer: props.importer,
|
|
480
|
+
expected: v.expected,
|
|
481
|
+
input: v.input,
|
|
482
|
+
}),
|
|
483
|
+
},
|
|
484
|
+
parameters: next.parameters,
|
|
485
|
+
input: next.input,
|
|
486
|
+
arrays: next.definitions,
|
|
487
|
+
explore: next.explore,
|
|
488
|
+
}),
|
|
462
489
|
});
|
|
490
|
+
//(next.parameters)(next.input, next.elements, next.explore),
|
|
463
491
|
|
|
464
492
|
const explore_array_like_union_types = <
|
|
465
493
|
T extends MetadataArray | MetadataTuple,
|
|
@@ -469,7 +497,7 @@ export namespace MiscPruneProgrammer {
|
|
|
469
497
|
factory: (next: {
|
|
470
498
|
parameters: ts.ParameterDeclaration[];
|
|
471
499
|
input: ts.Expression;
|
|
472
|
-
|
|
500
|
+
definitions: T[];
|
|
473
501
|
explore: FeatureProgrammer.IExplore;
|
|
474
502
|
}) => ts.ArrowFunction;
|
|
475
503
|
input: ts.Expression;
|
|
@@ -482,7 +510,7 @@ export namespace MiscPruneProgrammer {
|
|
|
482
510
|
input: ts.Expression;
|
|
483
511
|
}): ts.ArrowFunction =>
|
|
484
512
|
props.factory({
|
|
485
|
-
|
|
513
|
+
definitions: props.elements,
|
|
486
514
|
parameters: next.parameters,
|
|
487
515
|
input: next.input,
|
|
488
516
|
explore: next.explore,
|
|
@@ -510,9 +538,11 @@ export namespace MiscPruneProgrammer {
|
|
|
510
538
|
props.elements.map((e) => e.type.name).join(" | "),
|
|
511
539
|
() =>
|
|
512
540
|
arrow({
|
|
513
|
-
parameters: FeatureProgrammer.parameterDeclarations(
|
|
514
|
-
|
|
515
|
-
|
|
541
|
+
parameters: FeatureProgrammer.parameterDeclarations({
|
|
542
|
+
config: props.config,
|
|
543
|
+
type: TypeFactory.keyword("any"),
|
|
544
|
+
input: ts.factory.createIdentifier("input"),
|
|
545
|
+
}),
|
|
516
546
|
explore: {
|
|
517
547
|
...arrayExplore,
|
|
518
548
|
postfix: "",
|
|
@@ -522,9 +552,7 @@ export namespace MiscPruneProgrammer {
|
|
|
522
552
|
),
|
|
523
553
|
),
|
|
524
554
|
undefined,
|
|
525
|
-
FeatureProgrammer.argumentsArray(props
|
|
526
|
-
props.input,
|
|
527
|
-
),
|
|
555
|
+
FeatureProgrammer.argumentsArray(props),
|
|
528
556
|
);
|
|
529
557
|
};
|
|
530
558
|
|
|
@@ -560,69 +588,75 @@ export namespace MiscPruneProgrammer {
|
|
|
560
588
|
trace: false,
|
|
561
589
|
path: false,
|
|
562
590
|
initializer,
|
|
563
|
-
decoder: () =>
|
|
591
|
+
decoder: (next) =>
|
|
564
592
|
decode({
|
|
565
593
|
context: props.context,
|
|
566
594
|
importer: props.importer,
|
|
567
595
|
config,
|
|
568
|
-
input,
|
|
569
|
-
metadata,
|
|
570
|
-
explore,
|
|
596
|
+
input: next.input,
|
|
597
|
+
metadata: next.metadata,
|
|
598
|
+
explore: next.explore,
|
|
571
599
|
}),
|
|
572
600
|
objector: {
|
|
573
|
-
checker: () =>
|
|
601
|
+
checker: (next) =>
|
|
574
602
|
IsProgrammer.decode({
|
|
575
603
|
context: props.context,
|
|
576
604
|
importer: props.importer,
|
|
577
|
-
input,
|
|
578
|
-
metadata,
|
|
579
|
-
explore,
|
|
605
|
+
input: next.input,
|
|
606
|
+
metadata: next.metadata,
|
|
607
|
+
explore: next.explore,
|
|
580
608
|
}),
|
|
581
|
-
decoder: () =>
|
|
609
|
+
decoder: (next) =>
|
|
582
610
|
decode_object({
|
|
583
611
|
importer: props.importer,
|
|
584
|
-
input,
|
|
585
|
-
object,
|
|
586
|
-
explore,
|
|
612
|
+
input: next.input,
|
|
613
|
+
object: next.object,
|
|
614
|
+
explore: next.explore,
|
|
587
615
|
}),
|
|
588
616
|
joiner: PruneJoiner.object,
|
|
589
|
-
unionizer:
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
617
|
+
unionizer: (next) =>
|
|
618
|
+
decode_union_object({
|
|
619
|
+
checker: (v) =>
|
|
620
|
+
IsProgrammer.decode_object({
|
|
621
|
+
context: props.context,
|
|
622
|
+
importer: props.importer,
|
|
623
|
+
input: v.input,
|
|
624
|
+
object: v.object,
|
|
625
|
+
explore: v.explore,
|
|
626
|
+
}),
|
|
627
|
+
decoder: (v) =>
|
|
628
|
+
decode_object({
|
|
629
|
+
importer: props.importer,
|
|
630
|
+
input: v.input,
|
|
631
|
+
object: v.object,
|
|
632
|
+
explore: v.explore,
|
|
633
|
+
}),
|
|
634
|
+
success: (exp) => exp,
|
|
635
|
+
escaper: (v) =>
|
|
636
|
+
create_throw_error({
|
|
637
|
+
importer: props.importer,
|
|
638
|
+
expected: v.expected,
|
|
639
|
+
input: v.input,
|
|
640
|
+
}),
|
|
641
|
+
input: next.input,
|
|
642
|
+
objects: next.objects,
|
|
643
|
+
explore: next.explore,
|
|
609
644
|
}),
|
|
610
|
-
)
|
|
611
|
-
failure: (input, expected) =>
|
|
645
|
+
failure: (next) =>
|
|
612
646
|
create_throw_error({
|
|
613
647
|
importer: props.importer,
|
|
614
|
-
expected,
|
|
615
|
-
input,
|
|
648
|
+
expected: next.expected,
|
|
649
|
+
input: next.input,
|
|
616
650
|
}),
|
|
617
651
|
},
|
|
618
652
|
generator: {
|
|
619
|
-
arrays: (
|
|
653
|
+
arrays: (collection) =>
|
|
620
654
|
write_array_functions({
|
|
621
655
|
config,
|
|
622
656
|
importer: props.importer,
|
|
623
657
|
collection,
|
|
624
658
|
}),
|
|
625
|
-
tuples: (
|
|
659
|
+
tuples: (collection) =>
|
|
626
660
|
write_tuple_functions({
|
|
627
661
|
config,
|
|
628
662
|
context: props.context,
|
|
@@ -634,26 +668,25 @@ export namespace MiscPruneProgrammer {
|
|
|
634
668
|
return config;
|
|
635
669
|
};
|
|
636
670
|
|
|
637
|
-
const initializer: FeatureProgrammer.IConfig["initializer"] =
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
};
|
|
671
|
+
const initializer: FeatureProgrammer.IConfig["initializer"] = (props) => {
|
|
672
|
+
const collection = new MetadataCollection();
|
|
673
|
+
const result = MetadataFactory.analyze({
|
|
674
|
+
checker: props.context.checker,
|
|
675
|
+
transformer: props.context.transformer,
|
|
676
|
+
options: {
|
|
677
|
+
escape: false,
|
|
678
|
+
constant: true,
|
|
679
|
+
absorb: true,
|
|
680
|
+
},
|
|
681
|
+
collection,
|
|
682
|
+
type: props.type,
|
|
683
|
+
});
|
|
684
|
+
if (result.success === false)
|
|
685
|
+
throw TransformerError.from(`typia.misc.${props.importer.method}`)(
|
|
686
|
+
result.errors,
|
|
687
|
+
);
|
|
688
|
+
return [collection, result.data];
|
|
689
|
+
};
|
|
657
690
|
|
|
658
691
|
const create_throw_error = (props: {
|
|
659
692
|
importer: FunctionImporter;
|