typia 7.0.0-dev.20240930 → 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 +20 -17
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +274 -216
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.js +16 -8
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.js +38 -20
- 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 +39 -17
- 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 +183 -144
- 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 -37
- 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 +76 -52
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +143 -115
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +65 -50
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +4 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js +166 -115
- 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 +30 -27
- package/src/programmers/CheckerProgrammer.ts +279 -248
- package/src/programmers/FeatureProgrammer.ts +17 -15
- package/src/programmers/IsProgrammer.ts +34 -20
- package/src/programmers/RandomProgrammer.ts +18 -9
- package/src/programmers/TypiaProgrammer.ts +48 -34
- package/src/programmers/ValidateProgrammer.ts +50 -27
- 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 +279 -202
- 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 +43 -46
- 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 +71 -51
- package/src/programmers/misc/MiscCloneProgrammer.ts +156 -132
- package/src/programmers/misc/MiscPruneProgrammer.ts +61 -49
- package/src/programmers/notations/NotationGeneralProgrammer.ts +193 -144
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +25 -21
- package/src/utils/NamingConvention/NamingConvention.ts +40 -42
|
@@ -236,7 +236,11 @@ export namespace JsonStringifyProgrammer {
|
|
|
236
236
|
is:
|
|
237
237
|
props.metadata.escaped.original.size() === 1 &&
|
|
238
238
|
props.metadata.escaped.original.natives[0] === "Date"
|
|
239
|
-
? () =>
|
|
239
|
+
? () =>
|
|
240
|
+
check_native({
|
|
241
|
+
type: "Date",
|
|
242
|
+
input: props.input,
|
|
243
|
+
})
|
|
240
244
|
: () =>
|
|
241
245
|
IsProgrammer.decode_to_json({
|
|
242
246
|
checkNull: false,
|
|
@@ -421,7 +425,11 @@ export namespace JsonStringifyProgrammer {
|
|
|
421
425
|
for (const native of props.metadata.natives)
|
|
422
426
|
unions.push({
|
|
423
427
|
type: "object",
|
|
424
|
-
is: () =>
|
|
428
|
+
is: () =>
|
|
429
|
+
check_native({
|
|
430
|
+
type: native,
|
|
431
|
+
input: props.input,
|
|
432
|
+
}),
|
|
425
433
|
value: () =>
|
|
426
434
|
AtomicPredicator.native(native)
|
|
427
435
|
? decode_atomic({
|
|
@@ -777,31 +785,38 @@ export namespace JsonStringifyProgrammer {
|
|
|
777
785
|
elements: props.arrays,
|
|
778
786
|
factory: (next) =>
|
|
779
787
|
UnionExplorer.array({
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
788
|
+
config: {
|
|
789
|
+
checker: (v) =>
|
|
790
|
+
IsProgrammer.decode({
|
|
791
|
+
context: props.context,
|
|
792
|
+
importer: props.importer,
|
|
793
|
+
metadata: v.definition,
|
|
794
|
+
input: v.input,
|
|
795
|
+
explore: v.explore,
|
|
796
|
+
}),
|
|
797
|
+
decoder: (v) =>
|
|
798
|
+
decode_array({
|
|
799
|
+
config: props.config,
|
|
800
|
+
importer: props.importer,
|
|
801
|
+
input: v.input,
|
|
802
|
+
array: v.definition,
|
|
803
|
+
explore: v.explore,
|
|
804
|
+
}),
|
|
805
|
+
empty: ts.factory.createStringLiteral("[]"),
|
|
806
|
+
success: ts.factory.createTrue(),
|
|
807
|
+
failure: (v) =>
|
|
808
|
+
create_throw_error({
|
|
809
|
+
importer: props.importer,
|
|
810
|
+
expected: v.expected,
|
|
811
|
+
input: v.input,
|
|
812
|
+
}),
|
|
813
|
+
},
|
|
814
|
+
parameters: next.parameters,
|
|
815
|
+
input: next.input,
|
|
816
|
+
arrays: next.definitions,
|
|
817
|
+
explore: next.explore,
|
|
818
|
+
}),
|
|
819
|
+
//(next.parameters)(next.input, next.elements, next.explore),
|
|
805
820
|
});
|
|
806
821
|
|
|
807
822
|
const explore_array_like_union_types = <
|
|
@@ -812,7 +827,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
812
827
|
factory: (next: {
|
|
813
828
|
parameters: ts.ParameterDeclaration[];
|
|
814
829
|
input: ts.Expression;
|
|
815
|
-
|
|
830
|
+
definitions: T[];
|
|
816
831
|
explore: FeatureProgrammer.IExplore;
|
|
817
832
|
}) => ts.ArrowFunction;
|
|
818
833
|
input: ts.Expression;
|
|
@@ -825,7 +840,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
825
840
|
input: ts.Expression;
|
|
826
841
|
}): ts.ArrowFunction =>
|
|
827
842
|
props.factory({
|
|
828
|
-
|
|
843
|
+
definitions: props.elements,
|
|
829
844
|
parameters: next.parameters,
|
|
830
845
|
input: next.input,
|
|
831
846
|
explore: next.explore,
|
|
@@ -1005,28 +1020,33 @@ export namespace JsonStringifyProgrammer {
|
|
|
1005
1020
|
importer: props.importer,
|
|
1006
1021
|
}),
|
|
1007
1022
|
unionizer: (next) =>
|
|
1008
|
-
decode_union_object(
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1023
|
+
decode_union_object({
|
|
1024
|
+
checker: (v) =>
|
|
1025
|
+
IsProgrammer.decode_object({
|
|
1026
|
+
context: props.context,
|
|
1027
|
+
importer: props.importer,
|
|
1028
|
+
input: v.input,
|
|
1029
|
+
object: v.object,
|
|
1030
|
+
explore: v.explore,
|
|
1031
|
+
}),
|
|
1032
|
+
decoder: (v) =>
|
|
1033
|
+
decode_object({
|
|
1034
|
+
importer: props.importer,
|
|
1035
|
+
input: v.input,
|
|
1036
|
+
object: v.object,
|
|
1037
|
+
explore: v.explore,
|
|
1038
|
+
}),
|
|
1039
|
+
success: (exp) => exp,
|
|
1040
|
+
escaper: (v) =>
|
|
1041
|
+
create_throw_error({
|
|
1042
|
+
importer: props.importer,
|
|
1043
|
+
expected: v.expected,
|
|
1044
|
+
input: v.input,
|
|
1045
|
+
}),
|
|
1046
|
+
objects: next.objects,
|
|
1047
|
+
explore: next.explore,
|
|
1048
|
+
input: next.input,
|
|
1049
|
+
}),
|
|
1030
1050
|
failure: (next) =>
|
|
1031
1051
|
create_throw_error({
|
|
1032
1052
|
importer: props.importer,
|
|
@@ -581,41 +581,47 @@ export namespace MiscCloneProgrammer {
|
|
|
581
581
|
}): ts.Expression =>
|
|
582
582
|
ts.factory.createCallExpression(
|
|
583
583
|
UnionExplorer.set({
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
584
|
+
config: {
|
|
585
|
+
checker: (v) =>
|
|
586
|
+
IsProgrammer.decode({
|
|
587
|
+
context: props.context,
|
|
588
|
+
importer: props.importer,
|
|
589
|
+
input: v.input,
|
|
590
|
+
metadata: v.definition,
|
|
591
|
+
explore: v.explore,
|
|
592
|
+
}),
|
|
593
|
+
decoder: (v) =>
|
|
594
|
+
ts.factory.createNewExpression(
|
|
595
|
+
ts.factory.createIdentifier("Set"),
|
|
596
|
+
[TypeFactory.keyword("any")],
|
|
597
|
+
[
|
|
598
|
+
decode_array({
|
|
599
|
+
config: props.config,
|
|
600
|
+
importer: props.importer,
|
|
601
|
+
input: v.input,
|
|
602
|
+
array: v.definition,
|
|
603
|
+
explore: v.explore,
|
|
604
|
+
}),
|
|
605
|
+
],
|
|
606
|
+
),
|
|
607
|
+
empty: ts.factory.createNewExpression(
|
|
594
608
|
ts.factory.createIdentifier("Set"),
|
|
595
609
|
[TypeFactory.keyword("any")],
|
|
596
|
-
[
|
|
597
|
-
decode_array({
|
|
598
|
-
config: props.config,
|
|
599
|
-
importer: props.importer,
|
|
600
|
-
input,
|
|
601
|
-
array,
|
|
602
|
-
explore,
|
|
603
|
-
}),
|
|
604
|
-
],
|
|
610
|
+
[],
|
|
605
611
|
),
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
})
|
|
612
|
+
success: ts.factory.createTrue(),
|
|
613
|
+
failure: (v) =>
|
|
614
|
+
create_throw_error({
|
|
615
|
+
importer: props.importer,
|
|
616
|
+
expected: v.expected,
|
|
617
|
+
input: v.input,
|
|
618
|
+
}),
|
|
619
|
+
},
|
|
620
|
+
parameters: [],
|
|
621
|
+
input: props.input,
|
|
622
|
+
sets: props.sets,
|
|
623
|
+
explore: props.explore,
|
|
624
|
+
}),
|
|
619
625
|
undefined,
|
|
620
626
|
undefined,
|
|
621
627
|
);
|
|
@@ -630,56 +636,63 @@ export namespace MiscCloneProgrammer {
|
|
|
630
636
|
}): ts.Expression =>
|
|
631
637
|
ts.factory.createCallExpression(
|
|
632
638
|
UnionExplorer.map({
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
input: ts.factory.createElementAccessExpression(top, 0),
|
|
639
|
-
metadata: entry[0],
|
|
640
|
-
explore: {
|
|
641
|
-
...explore,
|
|
642
|
-
postfix: `${explore.postfix}[0]`,
|
|
643
|
-
},
|
|
644
|
-
}),
|
|
645
|
-
IsProgrammer.decode({
|
|
646
|
-
context: props.context,
|
|
647
|
-
importer: props.importer,
|
|
648
|
-
input: ts.factory.createElementAccessExpression(top, 1),
|
|
649
|
-
metadata: entry[1],
|
|
650
|
-
explore: {
|
|
651
|
-
...explore,
|
|
652
|
-
postfix: `${explore.postfix}[1]`,
|
|
653
|
-
},
|
|
654
|
-
}),
|
|
655
|
-
),
|
|
656
|
-
decoder: (input, array, explore) =>
|
|
657
|
-
ts.factory.createNewExpression(
|
|
658
|
-
ts.factory.createIdentifier("Map"),
|
|
659
|
-
[TypeFactory.keyword("any"), TypeFactory.keyword("any")],
|
|
660
|
-
[
|
|
661
|
-
decode_array({
|
|
662
|
-
config: props.config,
|
|
639
|
+
config: {
|
|
640
|
+
checker: (v) =>
|
|
641
|
+
ts.factory.createLogicalAnd(
|
|
642
|
+
IsProgrammer.decode({
|
|
643
|
+
context: props.context,
|
|
663
644
|
importer: props.importer,
|
|
664
|
-
input,
|
|
665
|
-
|
|
666
|
-
explore
|
|
645
|
+
input: ts.factory.createElementAccessExpression(v.input, 0),
|
|
646
|
+
metadata: v.definition[0],
|
|
647
|
+
explore: {
|
|
648
|
+
...v.explore,
|
|
649
|
+
postfix: `${v.explore.postfix}[0]`,
|
|
650
|
+
},
|
|
667
651
|
}),
|
|
668
|
-
|
|
652
|
+
IsProgrammer.decode({
|
|
653
|
+
context: props.context,
|
|
654
|
+
importer: props.importer,
|
|
655
|
+
input: ts.factory.createElementAccessExpression(v.input, 1),
|
|
656
|
+
metadata: v.definition[1],
|
|
657
|
+
explore: {
|
|
658
|
+
...v.explore,
|
|
659
|
+
postfix: `${v.explore.postfix}[1]`,
|
|
660
|
+
},
|
|
661
|
+
}),
|
|
662
|
+
),
|
|
663
|
+
decoder: (v) =>
|
|
664
|
+
ts.factory.createNewExpression(
|
|
665
|
+
ts.factory.createIdentifier("Map"),
|
|
666
|
+
[TypeFactory.keyword("any"), TypeFactory.keyword("any")],
|
|
667
|
+
[
|
|
668
|
+
decode_array({
|
|
669
|
+
config: props.config,
|
|
670
|
+
importer: props.importer,
|
|
671
|
+
input: v.input,
|
|
672
|
+
array: v.definition,
|
|
673
|
+
explore: v.explore,
|
|
674
|
+
}),
|
|
675
|
+
],
|
|
676
|
+
),
|
|
677
|
+
empty: ts.factory.createNewExpression(
|
|
678
|
+
ts.factory.createIdentifier("Map"),
|
|
679
|
+
[TypeFactory.keyword("any"), TypeFactory.keyword("any")],
|
|
680
|
+
[],
|
|
669
681
|
),
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
})
|
|
682
|
+
success: ts.factory.createTrue(),
|
|
683
|
+
failure: (v) =>
|
|
684
|
+
create_throw_error({
|
|
685
|
+
importer: props.importer,
|
|
686
|
+
expected: v.expected,
|
|
687
|
+
input: v.input,
|
|
688
|
+
}),
|
|
689
|
+
},
|
|
690
|
+
parameters: [],
|
|
691
|
+
input: props.input,
|
|
692
|
+
maps: props.maps,
|
|
693
|
+
explore: props.explore,
|
|
694
|
+
}),
|
|
695
|
+
// ([])(props.input, props.maps, props.explore),
|
|
683
696
|
undefined,
|
|
684
697
|
undefined,
|
|
685
698
|
);
|
|
@@ -714,34 +727,40 @@ export namespace MiscCloneProgrammer {
|
|
|
714
727
|
}): ts.Expression =>
|
|
715
728
|
explore_array_like_union_types({
|
|
716
729
|
...props,
|
|
717
|
-
|
|
730
|
+
definitions: props.arrays,
|
|
718
731
|
factory: (next) =>
|
|
719
732
|
UnionExplorer.array({
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
733
|
+
config: {
|
|
734
|
+
checker: (v) =>
|
|
735
|
+
IsProgrammer.decode({
|
|
736
|
+
context: props.context,
|
|
737
|
+
importer: props.importer,
|
|
738
|
+
input: v.input,
|
|
739
|
+
metadata: v.definition,
|
|
740
|
+
explore: v.explore,
|
|
741
|
+
}),
|
|
742
|
+
decoder: (v) =>
|
|
743
|
+
decode_array({
|
|
744
|
+
config: props.config,
|
|
745
|
+
importer: props.importer,
|
|
746
|
+
input: v.input,
|
|
747
|
+
array: v.definition,
|
|
748
|
+
explore: v.explore,
|
|
749
|
+
}),
|
|
750
|
+
empty: ts.factory.createIdentifier("[]"),
|
|
751
|
+
success: ts.factory.createTrue(),
|
|
752
|
+
failure: (v) =>
|
|
753
|
+
create_throw_error({
|
|
754
|
+
importer: props.importer,
|
|
755
|
+
expected: v.expected,
|
|
756
|
+
input: v.input,
|
|
757
|
+
}),
|
|
758
|
+
},
|
|
759
|
+
parameters: next.parameters,
|
|
760
|
+
arrays: next.definitions,
|
|
761
|
+
input: next.input,
|
|
762
|
+
explore: next.explore,
|
|
763
|
+
}),
|
|
745
764
|
});
|
|
746
765
|
|
|
747
766
|
const explore_array_like_union_types = <
|
|
@@ -752,11 +771,11 @@ export namespace MiscCloneProgrammer {
|
|
|
752
771
|
factory: (next: {
|
|
753
772
|
parameters: ts.ParameterDeclaration[];
|
|
754
773
|
input: ts.Expression;
|
|
755
|
-
|
|
774
|
+
definitions: T[];
|
|
756
775
|
explore: FeatureProgrammer.IExplore;
|
|
757
776
|
}) => ts.ArrowFunction;
|
|
758
777
|
input: ts.Expression;
|
|
759
|
-
|
|
778
|
+
definitions: T[];
|
|
760
779
|
explore: FeatureProgrammer.IExplore;
|
|
761
780
|
}): ts.Expression => {
|
|
762
781
|
const arrow = (next: {
|
|
@@ -765,12 +784,12 @@ export namespace MiscCloneProgrammer {
|
|
|
765
784
|
input: ts.Expression;
|
|
766
785
|
}): ts.ArrowFunction =>
|
|
767
786
|
props.factory({
|
|
768
|
-
|
|
787
|
+
definitions: props.definitions,
|
|
769
788
|
parameters: next.parameters,
|
|
770
789
|
input: next.input,
|
|
771
790
|
explore: next.explore,
|
|
772
791
|
});
|
|
773
|
-
if (props.
|
|
792
|
+
if (props.definitions.every((e) => e.type.recursive === false))
|
|
774
793
|
ts.factory.createCallExpression(
|
|
775
794
|
arrow({
|
|
776
795
|
parameters: [],
|
|
@@ -790,7 +809,7 @@ export namespace MiscCloneProgrammer {
|
|
|
790
809
|
ts.factory.createIdentifier(
|
|
791
810
|
props.importer.emplaceUnion(
|
|
792
811
|
props.config.prefix,
|
|
793
|
-
props.
|
|
812
|
+
props.definitions.map((e) => e.type.name).join(" | "),
|
|
794
813
|
() =>
|
|
795
814
|
arrow({
|
|
796
815
|
parameters: FeatureProgrammer.parameterDeclarations({
|
|
@@ -876,28 +895,33 @@ export namespace MiscCloneProgrammer {
|
|
|
876
895
|
}),
|
|
877
896
|
joiner: CloneJoiner.object,
|
|
878
897
|
unionizer: (next) =>
|
|
879
|
-
decode_union_object(
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
898
|
+
decode_union_object({
|
|
899
|
+
checker: (v) =>
|
|
900
|
+
IsProgrammer.decode_object({
|
|
901
|
+
context: props.context,
|
|
902
|
+
importer: props.importer,
|
|
903
|
+
input: v.input,
|
|
904
|
+
object: v.object,
|
|
905
|
+
explore: v.explore,
|
|
906
|
+
}),
|
|
907
|
+
decoder: (v) =>
|
|
908
|
+
decode_object({
|
|
909
|
+
importer: props.importer,
|
|
910
|
+
input: v.input,
|
|
911
|
+
object: v.object,
|
|
912
|
+
explore: v.explore,
|
|
913
|
+
}),
|
|
914
|
+
success: (exp) => exp,
|
|
915
|
+
escaper: (v) =>
|
|
916
|
+
create_throw_error({
|
|
917
|
+
importer: props.importer,
|
|
918
|
+
expected: v.expected,
|
|
919
|
+
input: v.input,
|
|
920
|
+
}),
|
|
921
|
+
input: next.input,
|
|
922
|
+
objects: next.objects,
|
|
923
|
+
explore: next.explore,
|
|
924
|
+
}),
|
|
901
925
|
failure: (next) =>
|
|
902
926
|
create_throw_error({
|
|
903
927
|
importer: props.importer,
|
|
@@ -455,32 +455,39 @@ export namespace MiscPruneProgrammer {
|
|
|
455
455
|
elements: props.arrays,
|
|
456
456
|
factory: (next) =>
|
|
457
457
|
UnionExplorer.array({
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
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
|
+
}),
|
|
483
489
|
});
|
|
490
|
+
//(next.parameters)(next.input, next.elements, next.explore),
|
|
484
491
|
|
|
485
492
|
const explore_array_like_union_types = <
|
|
486
493
|
T extends MetadataArray | MetadataTuple,
|
|
@@ -490,7 +497,7 @@ export namespace MiscPruneProgrammer {
|
|
|
490
497
|
factory: (next: {
|
|
491
498
|
parameters: ts.ParameterDeclaration[];
|
|
492
499
|
input: ts.Expression;
|
|
493
|
-
|
|
500
|
+
definitions: T[];
|
|
494
501
|
explore: FeatureProgrammer.IExplore;
|
|
495
502
|
}) => ts.ArrowFunction;
|
|
496
503
|
input: ts.Expression;
|
|
@@ -503,7 +510,7 @@ export namespace MiscPruneProgrammer {
|
|
|
503
510
|
input: ts.Expression;
|
|
504
511
|
}): ts.ArrowFunction =>
|
|
505
512
|
props.factory({
|
|
506
|
-
|
|
513
|
+
definitions: props.elements,
|
|
507
514
|
parameters: next.parameters,
|
|
508
515
|
input: next.input,
|
|
509
516
|
explore: next.explore,
|
|
@@ -608,28 +615,33 @@ export namespace MiscPruneProgrammer {
|
|
|
608
615
|
}),
|
|
609
616
|
joiner: PruneJoiner.object,
|
|
610
617
|
unionizer: (next) =>
|
|
611
|
-
decode_union_object(
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
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,
|
|
644
|
+
}),
|
|
633
645
|
failure: (next) =>
|
|
634
646
|
create_throw_error({
|
|
635
647
|
importer: props.importer,
|