typia 5.0.0-dev.20230823-2 → 5.0.0-dev.20230824
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/factories/ExpressionFactory.d.ts +2 -0
- package/lib/factories/ExpressionFactory.js +24 -0
- package/lib/factories/ExpressionFactory.js.map +1 -1
- package/lib/factories/IdentifierFactory.d.ts +2 -1
- package/lib/factories/IdentifierFactory.js +11 -0
- package/lib/factories/IdentifierFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.d.ts +7 -7
- package/lib/factories/MetadataCollection.js +4 -4
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataTagFactory.d.ts +2 -2
- package/lib/factories/MetadataTagFactory.js +9 -7
- package/lib/factories/MetadataTagFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +9 -8
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emend_metadata_atomics.js +6 -6
- package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
- package/lib/factories/internal/metadata/{emplace_metadata_array.js → emplace_metadata_array_type.js} +4 -4
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
- package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_array.js +7 -3
- package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.js +20 -12
- package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -0
- package/lib/factories/internal/metadata/{iterate_metadata_tag.js → iterate_metadata_comment_tags.js} +4 -4
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +138 -16
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js +6 -2
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +3 -0
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +157 -0
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +1 -0
- package/lib/functional/$any.js +2 -1
- package/lib/functional/$any.js.map +1 -1
- package/lib/functional/$clone.d.ts +2 -0
- package/lib/functional/$clone.js +8 -0
- package/lib/functional/$clone.js.map +1 -0
- package/lib/module.d.ts +2 -39
- package/lib/module.js +3 -17
- package/lib/module.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +1 -3
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +38 -29
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +4 -4
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +1 -1
- package/lib/programmers/IsProgrammer.js +1 -3
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +44 -33
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +1 -3
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/AtomicPredicator.js +2 -2
- package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
- package/lib/programmers/helpers/ICheckEntry.d.ts +1 -1
- package/lib/programmers/helpers/ProtobufUtil.js +2 -2
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/helpers/RandomJoiner.d.ts +4 -4
- package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
- package/lib/programmers/helpers/RandomRanger.d.ts +6 -6
- package/lib/programmers/helpers/RandomRanger.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +8 -8
- package/lib/programmers/helpers/UnionExplorer.js +40 -29
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/internal/application_array.js +1 -1
- package/lib/programmers/internal/application_array.js.map +1 -1
- package/lib/programmers/internal/application_default_string.js +2 -2
- package/lib/programmers/internal/application_default_string.js.map +1 -1
- package/lib/programmers/internal/application_resolved.js +2 -2
- package/lib/programmers/internal/application_resolved.js.map +1 -1
- package/lib/programmers/internal/application_schema.js +5 -5
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/internal/application_string.js.map +1 -1
- package/lib/programmers/internal/application_tuple.js +10 -9
- package/lib/programmers/internal/application_tuple.js.map +1 -1
- package/lib/programmers/internal/check_array_length.js.map +1 -1
- package/lib/programmers/internal/check_array_tags.js +39 -0
- package/lib/programmers/internal/check_array_tags.js.map +1 -0
- package/lib/programmers/internal/check_bigint.js +88 -74
- package/lib/programmers/internal/check_bigint.js.map +1 -1
- package/lib/programmers/internal/check_number.js +142 -131
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_string.js +30 -6
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/check_string_tags.js.map +1 -1
- package/lib/programmers/internal/check_template.js +16 -49
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.js +3 -2
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/metadata_to_pattern.js +4 -4
- package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
- package/lib/programmers/internal/stringify_dynamic_properties.js +2 -1
- package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +29 -23
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +10 -10
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscLiteralsProgrammer.js +2 -2
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +13 -13
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +6 -6
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +2 -2
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/schemas/json/IJsonSchema.d.ts +2 -2
- package/lib/schemas/metadata/IMetadata.d.ts +11 -4
- package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
- package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
- package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
- package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
- package/lib/schemas/metadata/IMetadataAtomic.d.ts +5 -0
- package/lib/schemas/metadata/IMetadataAtomic.js +3 -0
- package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
- package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
- package/lib/schemas/metadata/{IMetadataTag.d.ts → IMetadataCommentTag.d.ts} +2 -2
- package/lib/schemas/metadata/IMetadataCommentTag.js +3 -0
- package/lib/schemas/metadata/IMetadataCommentTag.js.map +1 -0
- package/lib/schemas/metadata/IMetadataProperty.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
- package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
- package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
- package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
- package/lib/schemas/metadata/IMetadataTypeTag.d.ts +6 -0
- package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
- package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
- package/lib/schemas/metadata/Metadata.d.ts +2 -2
- package/lib/schemas/metadata/Metadata.js +206 -146
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataAlias.d.ts +2 -2
- package/lib/schemas/metadata/MetadataArray.d.ts +6 -6
- package/lib/schemas/metadata/MetadataArray.js +5 -19
- package/lib/schemas/metadata/MetadataArray.js.map +1 -1
- package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
- package/lib/schemas/metadata/MetadataArrayType.js +36 -0
- package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
- package/lib/schemas/metadata/MetadataProperty.d.ts +2 -2
- package/lib/schemas/metadata/MetadataTuple.d.ts +4 -6
- package/lib/schemas/metadata/MetadataTuple.js +5 -19
- package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
- package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
- package/lib/schemas/metadata/MetadataTupleType.js +40 -0
- package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
- package/lib/tags/ExclusiveMaximum.d.ts +8 -0
- package/lib/tags/ExclusiveMaximum.js +3 -0
- package/lib/tags/ExclusiveMaximum.js.map +1 -0
- package/lib/tags/ExclusiveMinimum.d.ts +8 -0
- package/lib/tags/ExclusiveMinimum.js +3 -0
- package/lib/tags/ExclusiveMinimum.js.map +1 -0
- package/lib/tags/Format.d.ts +8 -0
- package/lib/{schemas/metadata/IMetadataTag.js → tags/Format.js} +1 -1
- package/lib/tags/Format.js.map +1 -0
- package/lib/tags/MaxItems.d.ts +8 -0
- package/lib/tags/MaxItems.js +3 -0
- package/lib/tags/MaxItems.js.map +1 -0
- package/lib/tags/MaxLength.d.ts +8 -0
- package/lib/tags/MaxLength.js +3 -0
- package/lib/tags/MaxLength.js.map +1 -0
- package/lib/tags/Maximum.d.ts +8 -0
- package/lib/tags/Maximum.js +3 -0
- package/lib/tags/Maximum.js.map +1 -0
- package/lib/tags/MinItems.d.ts +8 -0
- package/lib/tags/MinItems.js +3 -0
- package/lib/tags/MinItems.js.map +1 -0
- package/lib/tags/MinLength.d.ts +8 -0
- package/lib/tags/MinLength.js +3 -0
- package/lib/tags/MinLength.js.map +1 -0
- package/lib/tags/Minimum.d.ts +8 -0
- package/lib/tags/Minimum.js +3 -0
- package/lib/tags/Minimum.js.map +1 -0
- package/lib/tags/MultipleOf.d.ts +8 -0
- package/lib/tags/MultipleOf.js +3 -0
- package/lib/tags/MultipleOf.js.map +1 -0
- package/lib/tags/Pattern.d.ts +8 -0
- package/lib/tags/Pattern.js +3 -0
- package/lib/tags/Pattern.js.map +1 -0
- package/lib/tags/TagBase.d.ts +10 -0
- package/lib/tags/TagBase.js +3 -0
- package/lib/tags/TagBase.js.map +1 -0
- package/lib/tags/Type.d.ts +13 -0
- package/lib/tags/Type.js +3 -0
- package/lib/tags/Type.js.map +1 -0
- package/lib/tags/index.d.ts +12 -0
- package/lib/tags/index.js +29 -0
- package/lib/tags/index.js.map +1 -0
- package/lib/transformers/FileTransformer.d.ts +1 -1
- package/lib/transformers/FileTransformer.js +12 -1
- package/lib/transformers/FileTransformer.js.map +1 -1
- package/lib/transformers/IProject.d.ts +1 -0
- package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -2
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/package.json +1 -1
- package/src/factories/ExpressionFactory.ts +44 -0
- package/src/factories/IdentifierFactory.ts +15 -0
- package/src/factories/MetadataCollection.ts +18 -12
- package/src/factories/MetadataTagFactory.ts +22 -21
- package/src/factories/ProtobufFactory.ts +10 -8
- package/src/factories/internal/metadata/emend_metadata_atomics.ts +7 -5
- package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
- package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +6 -4
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +23 -16
- package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +1 -1
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +109 -15
- package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -2
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
- package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +183 -0
- package/src/functional/$any.ts +3 -1
- package/src/functional/$clone.ts +4 -0
- package/src/module.ts +2 -55
- package/src/programmers/AssertProgrammer.ts +1 -1
- package/src/programmers/CheckerProgrammer.ts +80 -47
- package/src/programmers/FeatureProgrammer.ts +6 -6
- package/src/programmers/IsProgrammer.ts +1 -1
- package/src/programmers/RandomProgrammer.ts +68 -45
- package/src/programmers/ValidateProgrammer.ts +1 -1
- package/src/programmers/helpers/AtomicPredicator.ts +2 -2
- package/src/programmers/helpers/ICheckEntry.ts +1 -1
- package/src/programmers/helpers/ProtobufUtil.ts +1 -1
- package/src/programmers/helpers/RandomJoiner.ts +8 -4
- package/src/programmers/helpers/RandomRanger.ts +8 -8
- package/src/programmers/helpers/UnionExplorer.ts +48 -34
- package/src/programmers/internal/application_array.ts +5 -4
- package/src/programmers/internal/application_default_string.ts +6 -2
- package/src/programmers/internal/application_resolved.ts +2 -2
- package/src/programmers/internal/application_schema.ts +5 -5
- package/src/programmers/internal/application_string.ts +2 -2
- package/src/programmers/internal/application_tuple.ts +12 -11
- package/src/programmers/internal/check_array_length.ts +2 -2
- package/src/programmers/internal/check_array_tags.ts +45 -0
- package/src/programmers/internal/check_bigint.ts +45 -17
- package/src/programmers/internal/check_number.ts +97 -70
- package/src/programmers/internal/check_string.ts +43 -12
- package/src/programmers/internal/check_string_tags.ts +3 -3
- package/src/programmers/internal/check_template.ts +1 -12
- package/src/programmers/internal/check_union_array_like.ts +6 -5
- package/src/programmers/internal/metadata_to_pattern.ts +4 -4
- package/src/programmers/internal/stringify_dynamic_properties.ts +1 -1
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
- package/src/programmers/json/JsonStringifyProgrammer.ts +41 -25
- package/src/programmers/misc/MiscCloneProgrammer.ts +24 -14
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +2 -2
- package/src/programmers/misc/MiscPruneProgrammer.ts +27 -17
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +12 -12
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +14 -14
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -6
- package/src/schemas/json/IJsonSchema.ts +2 -2
- package/src/schemas/metadata/IMetadata.ts +11 -5
- package/src/schemas/metadata/IMetadataAlias.ts +2 -2
- package/src/schemas/metadata/IMetadataArray.ts +4 -7
- package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
- package/src/schemas/metadata/IMetadataAtomic.ts +6 -0
- package/src/schemas/metadata/IMetadataCollection.ts +4 -4
- package/src/schemas/metadata/{IMetadataTag.ts → IMetadataCommentTag.ts} +17 -17
- package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
- package/src/schemas/metadata/IMetadataProperty.ts +2 -2
- package/src/schemas/metadata/IMetadataTuple.ts +4 -7
- package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
- package/src/schemas/metadata/IMetadataTypeTag.ts +6 -0
- package/src/schemas/metadata/Metadata.ts +109 -44
- package/src/schemas/metadata/MetadataAlias.ts +2 -2
- package/src/schemas/metadata/MetadataArray.ts +10 -34
- package/src/schemas/metadata/MetadataArrayType.ts +57 -0
- package/src/schemas/metadata/MetadataProperty.ts +2 -2
- package/src/schemas/metadata/MetadataTuple.ts +10 -37
- package/src/schemas/metadata/MetadataTupleType.ts +67 -0
- package/src/tags/ExclusiveMaximum.ts +8 -0
- package/src/tags/ExclusiveMinimum.ts +8 -0
- package/src/tags/Format.ts +29 -0
- package/src/tags/MaxItems.ts +8 -0
- package/src/tags/MaxLength.ts +8 -0
- package/src/tags/Maximum.ts +8 -0
- package/src/tags/MinItems.ts +8 -0
- package/src/tags/MinLength.ts +8 -0
- package/src/tags/Minimum.ts +8 -0
- package/src/tags/MultipleOf.ts +10 -0
- package/src/tags/Pattern.ts +8 -0
- package/src/tags/TagBase.ts +17 -0
- package/src/tags/Type.ts +30 -0
- package/src/tags/index.ts +12 -0
- package/src/transformers/FileTransformer.ts +2 -2
- package/src/transformers/IProject.ts +1 -0
- package/src/transformers/features/json/JsonApplicationTransformer.ts +3 -2
- package/src/typings/Atomic.ts +1 -0
- package/lib/CustomValidatorMap.d.ts +0 -110
- package/lib/CustomValidatorMap.js.map +0 -1
- package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
- package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
- package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
- package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
- package/lib/programmers/internal/check_array.js +0 -44
- package/lib/programmers/internal/check_array.js.map +0 -1
- package/lib/programmers/internal/check_custom.d.ts +0 -1
- package/lib/programmers/internal/check_custom.js +0 -30
- package/lib/programmers/internal/check_custom.js.map +0 -1
- package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
- package/src/CustomValidatorMap.ts +0 -126
- package/src/programmers/internal/check_array.ts +0 -30
- package/src/programmers/internal/check_custom.ts +0 -31
- /package/lib/programmers/internal/{check_array.d.ts → check_array_tags.d.ts} +0 -0
|
@@ -9,11 +9,13 @@ import { TypeFactory } from "../../factories/TypeFactory";
|
|
|
9
9
|
import { ValueFactory } from "../../factories/ValueFactory";
|
|
10
10
|
|
|
11
11
|
import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
|
|
12
|
-
import {
|
|
12
|
+
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
13
13
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
14
14
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
15
|
+
import { MetadataArrayType } from "../../schemas/metadata/MetadataArrayType";
|
|
15
16
|
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
16
17
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
18
|
+
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
17
19
|
|
|
18
20
|
import { IProject } from "../../transformers/IProject";
|
|
19
21
|
|
|
@@ -213,7 +215,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
213
215
|
)
|
|
214
216
|
if (AtomicPredicator.template(meta)) {
|
|
215
217
|
const partial = Metadata.initialize();
|
|
216
|
-
partial.atomics.push("string"),
|
|
218
|
+
partial.atomics.push({ type: "string", tags: [] }),
|
|
217
219
|
unions.push({
|
|
218
220
|
type: "template literal",
|
|
219
221
|
is: () =>
|
|
@@ -245,7 +247,10 @@ export namespace JsonStringifyProgrammer {
|
|
|
245
247
|
input,
|
|
246
248
|
(() => {
|
|
247
249
|
const partial = Metadata.initialize();
|
|
248
|
-
partial.atomics.push(
|
|
250
|
+
partial.atomics.push({
|
|
251
|
+
type: constant.type,
|
|
252
|
+
tags: [],
|
|
253
|
+
});
|
|
249
254
|
return partial;
|
|
250
255
|
})(),
|
|
251
256
|
explore,
|
|
@@ -267,7 +272,10 @@ export namespace JsonStringifyProgrammer {
|
|
|
267
272
|
input,
|
|
268
273
|
(() => {
|
|
269
274
|
const partial = Metadata.initialize();
|
|
270
|
-
partial.atomics.push(
|
|
275
|
+
partial.atomics.push({
|
|
276
|
+
type: "string",
|
|
277
|
+
tags: [],
|
|
278
|
+
});
|
|
271
279
|
return partial;
|
|
272
280
|
})(),
|
|
273
281
|
explore,
|
|
@@ -283,8 +291,8 @@ export namespace JsonStringifyProgrammer {
|
|
|
283
291
|
});
|
|
284
292
|
|
|
285
293
|
/// ATOMICS
|
|
286
|
-
for (const
|
|
287
|
-
if (AtomicPredicator.atomic(meta)(type))
|
|
294
|
+
for (const a of meta.atomics)
|
|
295
|
+
if (AtomicPredicator.atomic(meta)(a.type))
|
|
288
296
|
unions.push({
|
|
289
297
|
type: "atomic",
|
|
290
298
|
is: () =>
|
|
@@ -292,7 +300,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
292
300
|
input,
|
|
293
301
|
(() => {
|
|
294
302
|
const partial = Metadata.initialize();
|
|
295
|
-
partial.atomics.push(
|
|
303
|
+
partial.atomics.push(a);
|
|
296
304
|
return partial;
|
|
297
305
|
})(),
|
|
298
306
|
explore,
|
|
@@ -302,14 +310,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
302
310
|
value: () =>
|
|
303
311
|
decode_atomic(project)(importer)(
|
|
304
312
|
input,
|
|
305
|
-
type,
|
|
313
|
+
a.type,
|
|
306
314
|
explore,
|
|
307
315
|
),
|
|
308
316
|
});
|
|
309
317
|
|
|
310
318
|
// TUPLES
|
|
311
319
|
for (const tuple of meta.tuples) {
|
|
312
|
-
for (const child of tuple.elements)
|
|
320
|
+
for (const child of tuple.type.elements)
|
|
313
321
|
if (StringifyPredicator.undefindable(meta))
|
|
314
322
|
throw new Error(
|
|
315
323
|
`Error on typia.json.stringify(): tuple cannot contain undefined value - (${child.getName()}).`,
|
|
@@ -340,9 +348,9 @@ export namespace JsonStringifyProgrammer {
|
|
|
340
348
|
// ARRAYS
|
|
341
349
|
if (meta.arrays.length) {
|
|
342
350
|
for (const child of meta.arrays)
|
|
343
|
-
if (StringifyPredicator.undefindable(child.value))
|
|
351
|
+
if (StringifyPredicator.undefindable(child.type.value))
|
|
344
352
|
throw new Error(
|
|
345
|
-
`Error on typia.json.stringify(): array cannot contain undefined value (${child.value.getName()}).`,
|
|
353
|
+
`Error on typia.json.stringify(): array cannot contain undefined value (${child.type.value.getName()}).`,
|
|
346
354
|
);
|
|
347
355
|
const value: () => ts.Expression =
|
|
348
356
|
meta.arrays.length === 1
|
|
@@ -355,7 +363,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
355
363
|
from: "array",
|
|
356
364
|
},
|
|
357
365
|
)
|
|
358
|
-
: meta.arrays.some((elem) => elem.value.any)
|
|
366
|
+
: meta.arrays.some((elem) => elem.type.value.any)
|
|
359
367
|
? () =>
|
|
360
368
|
ts.factory.createCallExpression(
|
|
361
369
|
ts.factory.createIdentifier("JSON.stringify"),
|
|
@@ -512,10 +520,12 @@ export namespace JsonStringifyProgrammer {
|
|
|
512
520
|
array: MetadataArray,
|
|
513
521
|
explore: FeatureProgrammer.IExplore,
|
|
514
522
|
) =>
|
|
515
|
-
array.recursive
|
|
523
|
+
array.type.recursive
|
|
516
524
|
? ts.factory.createCallExpression(
|
|
517
525
|
ts.factory.createIdentifier(
|
|
518
|
-
importer.useLocal(
|
|
526
|
+
importer.useLocal(
|
|
527
|
+
`${config.prefix}a${array.type.index}`,
|
|
528
|
+
),
|
|
519
529
|
),
|
|
520
530
|
undefined,
|
|
521
531
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -524,14 +534,18 @@ export namespace JsonStringifyProgrammer {
|
|
|
524
534
|
from: "array",
|
|
525
535
|
})(input),
|
|
526
536
|
)
|
|
527
|
-
: decode_array_inline(config)(importer)(
|
|
537
|
+
: decode_array_inline(config)(importer)(
|
|
538
|
+
input,
|
|
539
|
+
array.type,
|
|
540
|
+
explore,
|
|
541
|
+
);
|
|
528
542
|
|
|
529
543
|
const decode_array_inline =
|
|
530
544
|
(config: FeatureProgrammer.IConfig) =>
|
|
531
545
|
(importer: FunctionImporter) =>
|
|
532
546
|
(
|
|
533
547
|
input: ts.Expression,
|
|
534
|
-
array:
|
|
548
|
+
array: MetadataArrayType,
|
|
535
549
|
explore: FeatureProgrammer.IExplore,
|
|
536
550
|
) =>
|
|
537
551
|
FeatureProgrammer.decode_array(config)(importer)(
|
|
@@ -547,10 +561,12 @@ export namespace JsonStringifyProgrammer {
|
|
|
547
561
|
tuple: MetadataTuple,
|
|
548
562
|
explore: FeatureProgrammer.IExplore,
|
|
549
563
|
): ts.Expression =>
|
|
550
|
-
tuple.recursive
|
|
564
|
+
tuple.type.recursive
|
|
551
565
|
? ts.factory.createCallExpression(
|
|
552
566
|
ts.factory.createIdentifier(
|
|
553
|
-
importer.useLocal(
|
|
567
|
+
importer.useLocal(
|
|
568
|
+
`${config.prefix}t${tuple.type.index}`,
|
|
569
|
+
),
|
|
554
570
|
),
|
|
555
571
|
undefined,
|
|
556
572
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -560,7 +576,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
560
576
|
)
|
|
561
577
|
: decode_tuple_inline(project)(config)(importer)(
|
|
562
578
|
input,
|
|
563
|
-
tuple,
|
|
579
|
+
tuple.type,
|
|
564
580
|
explore,
|
|
565
581
|
);
|
|
566
582
|
|
|
@@ -570,7 +586,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
570
586
|
(importer: FunctionImporter) =>
|
|
571
587
|
(
|
|
572
588
|
input: ts.Expression,
|
|
573
|
-
tuple:
|
|
589
|
+
tuple: MetadataTupleType,
|
|
574
590
|
explore: FeatureProgrammer.IExplore,
|
|
575
591
|
): ts.Expression => {
|
|
576
592
|
const children: ts.Expression[] = tuple.elements
|
|
@@ -749,7 +765,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
749
765
|
input: ts.Expression,
|
|
750
766
|
elements: T[],
|
|
751
767
|
explore: FeatureProgrammer.IExplore,
|
|
752
|
-
tags:
|
|
768
|
+
tags: IMetadataCommentTag[],
|
|
753
769
|
jsDocTags: IJsDocTagInfo[],
|
|
754
770
|
) => ts.ArrowFunction,
|
|
755
771
|
) =>
|
|
@@ -763,7 +779,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
763
779
|
(explore: FeatureProgrammer.IExplore) =>
|
|
764
780
|
(input: ts.Expression): ts.ArrowFunction =>
|
|
765
781
|
factory(parameters)(input, elements, explore, [], []);
|
|
766
|
-
if (elements.every((e) => e.recursive === false))
|
|
782
|
+
if (elements.every((e) => e.type.recursive === false))
|
|
767
783
|
ts.factory.createCallExpression(
|
|
768
784
|
arrow([])(explore)(input),
|
|
769
785
|
undefined,
|
|
@@ -779,7 +795,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
779
795
|
ts.factory.createIdentifier(
|
|
780
796
|
importer.emplaceUnion(
|
|
781
797
|
config.prefix,
|
|
782
|
-
elements.map((e) => e.name).join(" | "),
|
|
798
|
+
elements.map((e) => e.type.name).join(" | "),
|
|
783
799
|
() =>
|
|
784
800
|
arrow(
|
|
785
801
|
FeatureProgrammer.parameterDeclarations(config)(
|
|
@@ -937,11 +953,11 @@ export namespace JsonStringifyProgrammer {
|
|
|
937
953
|
constant: true,
|
|
938
954
|
absorb: true,
|
|
939
955
|
validate: (meta) => {
|
|
940
|
-
if (meta.atomics.find((
|
|
956
|
+
if (meta.atomics.find((a) => a.type === "bigint"))
|
|
941
957
|
throw new Error(NO_BIGINT);
|
|
942
958
|
else if (
|
|
943
959
|
meta.arrays.some(
|
|
944
|
-
(array) => array.value.isRequired() === false,
|
|
960
|
+
(array) => array.type.value.isRequired() === false,
|
|
945
961
|
)
|
|
946
962
|
)
|
|
947
963
|
throw new Error(NO_UNDEFINED_IN_ARRAY);
|
|
@@ -8,10 +8,12 @@ import { StatementFactory } from "../../factories/StatementFactory";
|
|
|
8
8
|
import { TypeFactory } from "../../factories/TypeFactory";
|
|
9
9
|
|
|
10
10
|
import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
|
|
11
|
-
import {
|
|
11
|
+
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
12
12
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
13
13
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
14
|
+
import { MetadataArrayType } from "../../schemas/metadata/MetadataArrayType";
|
|
14
15
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
16
|
+
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
15
17
|
|
|
16
18
|
import { IProject } from "../../transformers/IProject";
|
|
17
19
|
|
|
@@ -120,8 +122,8 @@ export namespace MiscCloneProgrammer {
|
|
|
120
122
|
// ANY TYPE
|
|
121
123
|
if (
|
|
122
124
|
meta.any ||
|
|
123
|
-
meta.arrays.some((a) => a.value.any) ||
|
|
124
|
-
meta.tuples.some((t) => t.elements.every((e) => e.any))
|
|
125
|
+
meta.arrays.some((a) => a.type.value.any) ||
|
|
126
|
+
meta.tuples.some((t) => t.type.elements.every((e) => e.any))
|
|
125
127
|
)
|
|
126
128
|
return ts.factory.createCallExpression(
|
|
127
129
|
importer.use("any"),
|
|
@@ -268,10 +270,12 @@ export namespace MiscCloneProgrammer {
|
|
|
268
270
|
array: MetadataArray,
|
|
269
271
|
explore: FeatureProgrammer.IExplore,
|
|
270
272
|
) =>
|
|
271
|
-
array.recursive
|
|
273
|
+
array.type.recursive
|
|
272
274
|
? ts.factory.createCallExpression(
|
|
273
275
|
ts.factory.createIdentifier(
|
|
274
|
-
importer.useLocal(
|
|
276
|
+
importer.useLocal(
|
|
277
|
+
`${config.prefix}a${array.type.index}`,
|
|
278
|
+
),
|
|
275
279
|
),
|
|
276
280
|
undefined,
|
|
277
281
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -280,14 +284,18 @@ export namespace MiscCloneProgrammer {
|
|
|
280
284
|
from: "array",
|
|
281
285
|
})(input),
|
|
282
286
|
)
|
|
283
|
-
: decode_array_inline(config)(importer)(
|
|
287
|
+
: decode_array_inline(config)(importer)(
|
|
288
|
+
input,
|
|
289
|
+
array.type,
|
|
290
|
+
explore,
|
|
291
|
+
);
|
|
284
292
|
|
|
285
293
|
const decode_array_inline =
|
|
286
294
|
(config: FeatureProgrammer.IConfig) =>
|
|
287
295
|
(importer: FunctionImporter) =>
|
|
288
296
|
(
|
|
289
297
|
input: ts.Expression,
|
|
290
|
-
array:
|
|
298
|
+
array: MetadataArrayType,
|
|
291
299
|
explore: FeatureProgrammer.IExplore,
|
|
292
300
|
) =>
|
|
293
301
|
FeatureProgrammer.decode_array(config)(importer)(CloneJoiner.array)(
|
|
@@ -307,10 +315,12 @@ export namespace MiscCloneProgrammer {
|
|
|
307
315
|
tuple: MetadataTuple,
|
|
308
316
|
explore: FeatureProgrammer.IExplore,
|
|
309
317
|
): ts.Expression =>
|
|
310
|
-
tuple.recursive
|
|
318
|
+
tuple.type.recursive
|
|
311
319
|
? ts.factory.createCallExpression(
|
|
312
320
|
ts.factory.createIdentifier(
|
|
313
|
-
importer.useLocal(
|
|
321
|
+
importer.useLocal(
|
|
322
|
+
`${config.prefix}t${tuple.type.index}`,
|
|
323
|
+
),
|
|
314
324
|
),
|
|
315
325
|
undefined,
|
|
316
326
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -320,7 +330,7 @@ export namespace MiscCloneProgrammer {
|
|
|
320
330
|
)
|
|
321
331
|
: decode_tuple_inline(project)(config)(importer)(
|
|
322
332
|
input,
|
|
323
|
-
tuple,
|
|
333
|
+
tuple.type,
|
|
324
334
|
explore,
|
|
325
335
|
);
|
|
326
336
|
|
|
@@ -330,7 +340,7 @@ export namespace MiscCloneProgrammer {
|
|
|
330
340
|
(importer: FunctionImporter) =>
|
|
331
341
|
(
|
|
332
342
|
input: ts.Expression,
|
|
333
|
-
tuple:
|
|
343
|
+
tuple: MetadataTupleType,
|
|
334
344
|
explore: FeatureProgrammer.IExplore,
|
|
335
345
|
): ts.Expression => {
|
|
336
346
|
const children: ts.Expression[] = tuple.elements
|
|
@@ -627,7 +637,7 @@ export namespace MiscCloneProgrammer {
|
|
|
627
637
|
input: ts.Expression,
|
|
628
638
|
elements: T[],
|
|
629
639
|
explore: FeatureProgrammer.IExplore,
|
|
630
|
-
tags:
|
|
640
|
+
tags: IMetadataCommentTag[],
|
|
631
641
|
jsDocTags: IJsDocTagInfo[],
|
|
632
642
|
) => ts.ArrowFunction,
|
|
633
643
|
) =>
|
|
@@ -641,7 +651,7 @@ export namespace MiscCloneProgrammer {
|
|
|
641
651
|
(explore: FeatureProgrammer.IExplore) =>
|
|
642
652
|
(input: ts.Expression): ts.ArrowFunction =>
|
|
643
653
|
factory(parameters)(input, elements, explore, [], []);
|
|
644
|
-
if (elements.every((e) => e.recursive === false))
|
|
654
|
+
if (elements.every((e) => e.type.recursive === false))
|
|
645
655
|
ts.factory.createCallExpression(
|
|
646
656
|
arrow([])(explore)(input),
|
|
647
657
|
undefined,
|
|
@@ -657,7 +667,7 @@ export namespace MiscCloneProgrammer {
|
|
|
657
667
|
ts.factory.createIdentifier(
|
|
658
668
|
importer.emplaceUnion(
|
|
659
669
|
config.prefix,
|
|
660
|
-
elements.map((e) => e.name).join(" | "),
|
|
670
|
+
elements.map((e) => e.type.name).join(" | "),
|
|
661
671
|
() =>
|
|
662
672
|
arrow(
|
|
663
673
|
FeatureProgrammer.parameterDeclarations(config)(
|
|
@@ -23,7 +23,7 @@ export namespace MiscLiteralsProgrammer {
|
|
|
23
23
|
meta.constants
|
|
24
24
|
.map((c) => c.values.length)
|
|
25
25
|
.reduce((a, b) => a + b, 0) +
|
|
26
|
-
meta.atomics.filter((
|
|
26
|
+
meta.atomics.filter((a) => a.type === "boolean").length;
|
|
27
27
|
if (0 === length) throw new Error(ErrorMessages.NO);
|
|
28
28
|
else if (meta.size() !== length)
|
|
29
29
|
throw new Error(ErrorMessages.ONLY);
|
|
@@ -31,7 +31,7 @@ export namespace MiscLiteralsProgrammer {
|
|
|
31
31
|
})(new MetadataCollection())(type);
|
|
32
32
|
const values: Set<Atomic.Type | null> = new Set([
|
|
33
33
|
...ArrayUtil.flat<Atomic.Type>(meta.constants.map((c) => c.values)),
|
|
34
|
-
...(meta.atomics.filter((
|
|
34
|
+
...(meta.atomics.filter((a) => a.type === "boolean").length
|
|
35
35
|
? [true, false]
|
|
36
36
|
: []),
|
|
37
37
|
...(meta.nullable ? [null] : []),
|
|
@@ -8,10 +8,12 @@ import { StatementFactory } from "../../factories/StatementFactory";
|
|
|
8
8
|
import { TypeFactory } from "../../factories/TypeFactory";
|
|
9
9
|
|
|
10
10
|
import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
|
|
11
|
-
import {
|
|
11
|
+
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
12
12
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
13
13
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
14
|
+
import { MetadataArrayType } from "../../schemas/metadata/MetadataArrayType";
|
|
14
15
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
16
|
+
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
15
17
|
|
|
16
18
|
import { IProject } from "../../transformers/IProject";
|
|
17
19
|
|
|
@@ -130,8 +132,8 @@ export namespace MiscPruneProgrammer {
|
|
|
130
132
|
// LIST UP UNION TYPES
|
|
131
133
|
//----
|
|
132
134
|
// TUPLES
|
|
133
|
-
for (const tuple of meta.tuples.filter((
|
|
134
|
-
|
|
135
|
+
for (const tuple of meta.tuples.filter((tuple) =>
|
|
136
|
+
tuple.type.elements.some((e) => filter(e.rest ?? e)),
|
|
135
137
|
))
|
|
136
138
|
unions.push({
|
|
137
139
|
type: "tuple",
|
|
@@ -156,7 +158,7 @@ export namespace MiscPruneProgrammer {
|
|
|
156
158
|
});
|
|
157
159
|
|
|
158
160
|
// ARRAYS
|
|
159
|
-
if (meta.arrays.filter((a) => filter(a.value)).length)
|
|
161
|
+
if (meta.arrays.filter((a) => filter(a.type.value)).length)
|
|
160
162
|
unions.push({
|
|
161
163
|
type: "array",
|
|
162
164
|
is: () => ExpressionFactory.isArray(input),
|
|
@@ -239,10 +241,12 @@ export namespace MiscPruneProgrammer {
|
|
|
239
241
|
array: MetadataArray,
|
|
240
242
|
explore: FeatureProgrammer.IExplore,
|
|
241
243
|
) =>
|
|
242
|
-
array.recursive
|
|
244
|
+
array.type.recursive
|
|
243
245
|
? ts.factory.createCallExpression(
|
|
244
246
|
ts.factory.createIdentifier(
|
|
245
|
-
importer.useLocal(
|
|
247
|
+
importer.useLocal(
|
|
248
|
+
`${config.prefix}a${array.type.index}`,
|
|
249
|
+
),
|
|
246
250
|
),
|
|
247
251
|
undefined,
|
|
248
252
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -251,14 +255,18 @@ export namespace MiscPruneProgrammer {
|
|
|
251
255
|
from: "array",
|
|
252
256
|
})(input),
|
|
253
257
|
)
|
|
254
|
-
: decode_array_inline(config)(importer)(
|
|
258
|
+
: decode_array_inline(config)(importer)(
|
|
259
|
+
input,
|
|
260
|
+
array.type,
|
|
261
|
+
explore,
|
|
262
|
+
);
|
|
255
263
|
|
|
256
264
|
const decode_array_inline =
|
|
257
265
|
(config: FeatureProgrammer.IConfig) =>
|
|
258
266
|
(importer: FunctionImporter) =>
|
|
259
267
|
(
|
|
260
268
|
input: ts.Expression,
|
|
261
|
-
array:
|
|
269
|
+
array: MetadataArrayType,
|
|
262
270
|
explore: FeatureProgrammer.IExplore,
|
|
263
271
|
): ts.Expression =>
|
|
264
272
|
FeatureProgrammer.decode_array(config)(importer)(PruneJoiner.array)(
|
|
@@ -278,10 +286,12 @@ export namespace MiscPruneProgrammer {
|
|
|
278
286
|
tuple: MetadataTuple,
|
|
279
287
|
explore: FeatureProgrammer.IExplore,
|
|
280
288
|
): ts.Expression | ts.Block =>
|
|
281
|
-
tuple.recursive
|
|
289
|
+
tuple.type.recursive
|
|
282
290
|
? ts.factory.createCallExpression(
|
|
283
291
|
ts.factory.createIdentifier(
|
|
284
|
-
importer.useLocal(
|
|
292
|
+
importer.useLocal(
|
|
293
|
+
`${config.prefix}t${tuple.type.index}`,
|
|
294
|
+
),
|
|
285
295
|
),
|
|
286
296
|
undefined,
|
|
287
297
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -291,7 +301,7 @@ export namespace MiscPruneProgrammer {
|
|
|
291
301
|
)
|
|
292
302
|
: decode_tuple_inline(project)(config)(importer)(
|
|
293
303
|
input,
|
|
294
|
-
tuple,
|
|
304
|
+
tuple.type,
|
|
295
305
|
explore,
|
|
296
306
|
);
|
|
297
307
|
|
|
@@ -301,7 +311,7 @@ export namespace MiscPruneProgrammer {
|
|
|
301
311
|
(importer: FunctionImporter) =>
|
|
302
312
|
(
|
|
303
313
|
input: ts.Expression,
|
|
304
|
-
tuple:
|
|
314
|
+
tuple: MetadataTupleType,
|
|
305
315
|
explore: FeatureProgrammer.IExplore,
|
|
306
316
|
): ts.Block => {
|
|
307
317
|
const children: ts.ConciseBody[] = tuple.elements
|
|
@@ -404,7 +414,7 @@ export namespace MiscPruneProgrammer {
|
|
|
404
414
|
input: ts.Expression,
|
|
405
415
|
elements: T[],
|
|
406
416
|
explore: FeatureProgrammer.IExplore,
|
|
407
|
-
tags:
|
|
417
|
+
tags: IMetadataCommentTag[],
|
|
408
418
|
jsDocTags: IJsDocTagInfo[],
|
|
409
419
|
) => ts.ArrowFunction,
|
|
410
420
|
) =>
|
|
@@ -418,7 +428,7 @@ export namespace MiscPruneProgrammer {
|
|
|
418
428
|
(explore: FeatureProgrammer.IExplore) =>
|
|
419
429
|
(input: ts.Expression): ts.ArrowFunction =>
|
|
420
430
|
factory(parameters)(input, elements, explore, [], []);
|
|
421
|
-
if (elements.every((e) => e.recursive === false))
|
|
431
|
+
if (elements.every((e) => e.type.recursive === false))
|
|
422
432
|
ts.factory.createCallExpression(
|
|
423
433
|
arrow([])(explore)(input),
|
|
424
434
|
undefined,
|
|
@@ -434,7 +444,7 @@ export namespace MiscPruneProgrammer {
|
|
|
434
444
|
ts.factory.createIdentifier(
|
|
435
445
|
importer.emplaceUnion(
|
|
436
446
|
config.prefix,
|
|
437
|
-
elements.map((e) => e.name).join(" | "),
|
|
447
|
+
elements.map((e) => e.type.name).join(" | "),
|
|
438
448
|
() =>
|
|
439
449
|
arrow(
|
|
440
450
|
FeatureProgrammer.parameterDeclarations(config)(
|
|
@@ -456,9 +466,9 @@ export namespace MiscPruneProgrammer {
|
|
|
456
466
|
meta.any === false &&
|
|
457
467
|
(meta.objects.length !== 0 ||
|
|
458
468
|
meta.tuples.some((t) =>
|
|
459
|
-
t.elements.some((e) => filter(e.rest ?? e)),
|
|
469
|
+
t.type.elements.some((e) => filter(e.rest ?? e)),
|
|
460
470
|
) ||
|
|
461
|
-
meta.arrays.some((e) => filter(e.value)));
|
|
471
|
+
meta.arrays.some((e) => filter(e.type.value)));
|
|
462
472
|
|
|
463
473
|
/* -----------------------------------------------------------
|
|
464
474
|
CONFIGURATIONS
|
|
@@ -8,7 +8,7 @@ import { ProtobufFactory } from "../../factories/ProtobufFactory";
|
|
|
8
8
|
import { StatementFactory } from "../../factories/StatementFactory";
|
|
9
9
|
import { TypeFactory } from "../../factories/TypeFactory";
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
12
12
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
13
13
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
14
14
|
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
@@ -253,7 +253,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
253
253
|
undefined,
|
|
254
254
|
[],
|
|
255
255
|
)
|
|
256
|
-
: value.atomics.some((
|
|
256
|
+
: value.atomics.some((a) => a.type === "string") ||
|
|
257
257
|
value.constants.some(
|
|
258
258
|
(c) =>
|
|
259
259
|
c.type === "string" && c.values.some((v) => v === ""),
|
|
@@ -280,7 +280,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
280
280
|
(
|
|
281
281
|
accessor: ts.ElementAccessExpression | ts.PropertyAccessExpression,
|
|
282
282
|
meta: Metadata,
|
|
283
|
-
tags:
|
|
283
|
+
tags: IMetadataCommentTag[],
|
|
284
284
|
): ts.CaseClause[] => {
|
|
285
285
|
const clauses: ts.CaseClause[] = [];
|
|
286
286
|
const emplace =
|
|
@@ -323,7 +323,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
323
323
|
emplace(atomic)(decode_atomic(atomic, tags));
|
|
324
324
|
if (meta.natives.length) emplace("bytes")(decode_bytes("bytes"));
|
|
325
325
|
for (const array of meta.arrays)
|
|
326
|
-
emplace(`Array<${array.value.getName()}>`)(
|
|
326
|
+
emplace(`Array<${array.type.value.getName()}>`)(
|
|
327
327
|
decode_array(accessor, array, required, tags),
|
|
328
328
|
);
|
|
329
329
|
for (const map of meta.maps)
|
|
@@ -350,7 +350,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
350
350
|
|
|
351
351
|
const decode_atomic = (
|
|
352
352
|
atomic: Atomic.Literal,
|
|
353
|
-
tags:
|
|
353
|
+
tags: IMetadataCommentTag[],
|
|
354
354
|
): ts.Expression => {
|
|
355
355
|
if (atomic === "string") return decode_bytes("string");
|
|
356
356
|
const method =
|
|
@@ -405,7 +405,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
405
405
|
accessor: ts.ElementAccessExpression | ts.PropertyAccessExpression,
|
|
406
406
|
array: MetadataArray,
|
|
407
407
|
required: boolean,
|
|
408
|
-
tags:
|
|
408
|
+
tags: IMetadataCommentTag[],
|
|
409
409
|
): ts.Statement[] => {
|
|
410
410
|
const statements: Array<ts.Expression | ts.Statement> = [];
|
|
411
411
|
if (required === false)
|
|
@@ -421,13 +421,13 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
421
421
|
),
|
|
422
422
|
),
|
|
423
423
|
);
|
|
424
|
-
const atomics = ProtobufUtil.getAtomics(array.value);
|
|
424
|
+
const atomics = ProtobufUtil.getAtomics(array.type.value);
|
|
425
425
|
const decoder = atomics.length
|
|
426
426
|
? () => decode_atomic(atomics[0]!, tags)
|
|
427
|
-
: array.value.natives.length
|
|
427
|
+
: array.type.value.natives.length
|
|
428
428
|
? () => decode_bytes("bytes")
|
|
429
|
-
: array.value.objects.length
|
|
430
|
-
? () => decode_regular_object(false)(array.value.objects[0]!)
|
|
429
|
+
: array.type.value.objects.length
|
|
430
|
+
? () => decode_regular_object(false)(array.type.value.objects[0]!)
|
|
431
431
|
: null;
|
|
432
432
|
if (decoder === null) throw new Error("Never reach here.");
|
|
433
433
|
else if (atomics.length && atomics[0] !== "string") {
|
|
@@ -566,7 +566,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
566
566
|
accessor: ts.ElementAccessExpression | ts.PropertyAccessExpression,
|
|
567
567
|
map: Metadata.Entry,
|
|
568
568
|
required: boolean,
|
|
569
|
-
tags:
|
|
569
|
+
tags: IMetadataCommentTag[],
|
|
570
570
|
): ts.Statement[] =>
|
|
571
571
|
decode_entry(project)(importer)({
|
|
572
572
|
initializer: () =>
|
|
@@ -605,7 +605,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
605
605
|
(
|
|
606
606
|
map: Metadata.Entry,
|
|
607
607
|
required: boolean,
|
|
608
|
-
tags:
|
|
608
|
+
tags: IMetadataCommentTag[],
|
|
609
609
|
): ts.Statement[] => {
|
|
610
610
|
const statements: ts.Statement[] = [
|
|
611
611
|
...(required
|