typia 5.0.0-dev.20230823 → 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/Primitive.d.ts +14 -12
- package/lib/Resolved.d.ts +46 -0
- package/lib/{schemas/metadata/IMetadataTag.js → Resolved.js} +1 -1
- package/lib/Resolved.js.map +1 -0
- 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/MetadataFactory.d.ts +1 -1
- package/lib/factories/MetadataTagFactory.d.ts +2 -2
- package/lib/factories/MetadataTagFactory.js +15 -13
- package/lib/factories/MetadataTagFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +11 -10
- 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/explore_metadata.js +3 -3
- package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
- 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 +26 -18
- 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_native.js +2 -10
- package/lib/factories/internal/metadata/iterate_metadata_native.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_resolve.js +6 -6
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js +4 -4
- 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/$ProtobufWriter.js.map +1 -1
- 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/json.d.ts +15 -15
- package/lib/misc.d.ts +42 -42
- package/lib/module.d.ts +20 -56
- package/lib/module.js +4 -17
- package/lib/module.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +2 -4
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +39 -30
- 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 +3 -5
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +328 -142
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +2 -4
- 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/FunctionImporeter.d.ts +2 -0
- package/lib/programmers/helpers/FunctionImporeter.js +2 -1
- package/lib/programmers/helpers/FunctionImporeter.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/StringifyPredicator.js +1 -2
- package/lib/programmers/helpers/StringifyPredicator.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/helpers/disable_function_importer_declare.js +1 -0
- package/lib/programmers/helpers/disable_function_importer_declare.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.d.ts +2 -2
- 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 +7 -7
- 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 +33 -27
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +124 -43
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscLiteralsProgrammer.js +3 -3
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +15 -15
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -3
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +8 -8
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +3 -3
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +2 -2
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +1 -1
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
- package/lib/protobuf.d.ts +631 -10
- package/lib/protobuf.js +13 -13
- package/lib/protobuf.js.map +1 -1
- package/lib/schemas/json/IJsonSchema.d.ts +2 -2
- package/lib/schemas/metadata/IMetadata.d.ts +13 -6
- 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/{IMetadataResolved.js → IMetadataAtomic.js} +1 -1
- 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/{IMetadataResolved.d.ts → IMetadataEscaped.d.ts} +1 -1
- package/lib/schemas/metadata/IMetadataEscaped.js +3 -0
- package/lib/schemas/metadata/IMetadataEscaped.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 +4 -4
- package/lib/schemas/metadata/Metadata.js +217 -157
- 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/{MetadataResolved.d.ts → MetadataEscaped.d.ts} +3 -3
- package/lib/schemas/metadata/{MetadataResolved.js → MetadataEscaped.js} +11 -11
- package/lib/schemas/metadata/MetadataEscaped.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/tags/Format.js +3 -0
- 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 +5 -3
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MetadataTransformer.js +1 -1
- package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
- package/lib/utils/RandomGenerator.js +3 -2
- package/lib/utils/RandomGenerator.js.map +1 -1
- package/package.json +2 -1
- package/src/Primitive.ts +19 -15
- package/src/Resolved.ts +116 -0
- package/src/factories/ExpressionFactory.ts +44 -0
- package/src/factories/IdentifierFactory.ts +15 -0
- package/src/factories/MetadataCollection.ts +18 -12
- package/src/factories/MetadataFactory.ts +1 -1
- package/src/factories/MetadataTagFactory.ts +28 -27
- package/src/factories/ProtobufFactory.ts +12 -10
- 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/explore_metadata.ts +3 -3
- 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 +29 -22
- 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_native.ts +0 -9
- package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
- package/src/factories/internal/metadata/iterate_metadata_resolve.ts +6 -6
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +4 -4
- 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/json.ts +15 -15
- package/src/misc.ts +42 -42
- package/src/module.ts +20 -72
- package/src/programmers/AssertProgrammer.ts +4 -2
- package/src/programmers/CheckerProgrammer.ts +81 -48
- package/src/programmers/FeatureProgrammer.ts +6 -6
- package/src/programmers/IsProgrammer.ts +5 -3
- package/src/programmers/RandomProgrammer.ts +360 -41
- package/src/programmers/ValidateProgrammer.ts +4 -2
- package/src/programmers/helpers/AtomicPredicator.ts +2 -2
- package/src/programmers/helpers/FunctionImporeter.ts +2 -0
- 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/StringifyPredicator.ts +1 -2
- package/src/programmers/helpers/UnionExplorer.ts +48 -34
- package/src/programmers/helpers/disable_function_importer_declare.ts +6 -1
- 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 +4 -4
- package/src/programmers/internal/application_schema.ts +7 -7
- 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 +47 -29
- package/src/programmers/misc/MiscAssertCloneProgrammer.ts +1 -1
- package/src/programmers/misc/MiscCloneProgrammer.ts +253 -55
- package/src/programmers/misc/MiscIsCloneProgrammer.ts +1 -1
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +3 -3
- package/src/programmers/misc/MiscPruneProgrammer.ts +31 -19
- package/src/programmers/misc/MiscValidateCloneProgrammer.ts +1 -1
- package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +18 -9
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +18 -14
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +15 -15
- package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -2
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -6
- package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +2 -2
- package/src/protobuf.ts +663 -31
- package/src/schemas/json/IJsonSchema.ts +2 -2
- package/src/schemas/metadata/IMetadata.ts +13 -7
- 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/{IMetadataResolved.ts → IMetadataEscaped.ts} +1 -1
- 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 +125 -63
- 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/{MetadataResolved.ts → MetadataEscaped.ts} +9 -9
- 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 +4 -3
- package/src/transformers/features/misc/MetadataTransformer.ts +1 -1
- package/src/typings/Atomic.ts +1 -0
- package/src/utils/RandomGenerator.ts +4 -2
- 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/IMetadataResolved.js.map +0 -1
- package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
- package/lib/schemas/metadata/MetadataResolved.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
package/src/misc.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { Namespace } from "./functional/Namespace";
|
|
|
12
12
|
import { Atomic } from "./typings/Atomic";
|
|
13
13
|
|
|
14
14
|
import { IValidation } from "./IValidation";
|
|
15
|
-
import {
|
|
15
|
+
import { Resolved } from "./Resolved";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* > You must configure the generic argument `T`.
|
|
@@ -62,8 +62,8 @@ export function literals(): never {
|
|
|
62
62
|
* Clone a data.
|
|
63
63
|
*
|
|
64
64
|
* Clones an instance following type `T`. If the target *input* value or its member
|
|
65
|
-
* variable contains a class instance
|
|
66
|
-
*
|
|
65
|
+
* variable contains a class instance having methods, those methods would not be
|
|
66
|
+
* cloned.
|
|
67
67
|
*
|
|
68
68
|
* For reference, this `typia.misc.clone()` function does not validate the input value
|
|
69
69
|
* type. It just believes that the input value is following the type `T`. Therefore,
|
|
@@ -76,7 +76,7 @@ export function literals(): never {
|
|
|
76
76
|
*
|
|
77
77
|
* @author Jeongho Nam - https://github.com/samchon
|
|
78
78
|
*/
|
|
79
|
-
export function clone<T>(input: T):
|
|
79
|
+
export function clone<T>(input: T): Resolved<T>;
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
82
|
* @internal
|
|
@@ -90,8 +90,8 @@ Object.assign(clone, Namespace.misc.clone("clone"));
|
|
|
90
90
|
* Clone a data with type assertion.
|
|
91
91
|
*
|
|
92
92
|
* Clones an instance following type `T`, with type assertion. If the target `input`
|
|
93
|
-
* value or its member variable contains a class instance
|
|
94
|
-
*
|
|
93
|
+
* value or its member variable contains a class instance having methods, those
|
|
94
|
+
* methods would not be cloned.
|
|
95
95
|
*
|
|
96
96
|
* In such reason, when `input` value is not matched with the type `T`, it throws an
|
|
97
97
|
* {@link TypeGuardError}. Otherwise, there's no problem on the `input` value, cloned
|
|
@@ -103,14 +103,14 @@ Object.assign(clone, Namespace.misc.clone("clone"));
|
|
|
103
103
|
*
|
|
104
104
|
* @author Jeongho Nam - https://github.com/samchon
|
|
105
105
|
*/
|
|
106
|
-
export function assertClone<T>(input: T):
|
|
106
|
+
export function assertClone<T>(input: T): Resolved<T>;
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
109
|
* Clone a data with type assertion.
|
|
110
110
|
*
|
|
111
111
|
* Clones an instance following type `T`, with type assertion. If the target `input`
|
|
112
|
-
* value or its member variable contains a class instance
|
|
113
|
-
*
|
|
112
|
+
* value or its member variable contains a class instance having methods, those
|
|
113
|
+
* methods would not be cloned.
|
|
114
114
|
*
|
|
115
115
|
* In such reason, when `input` value is not matched with the type `T`, it throws an
|
|
116
116
|
* {@link TypeGuardError}. Otherwise, there's no problem on the `input` value, cloned
|
|
@@ -122,7 +122,7 @@ export function assertClone<T>(input: T): Primitive<T>;
|
|
|
122
122
|
*
|
|
123
123
|
* @author Jeongho Nam - https://github.com/samchon
|
|
124
124
|
*/
|
|
125
|
-
export function assertClone<T>(input: unknown):
|
|
125
|
+
export function assertClone<T>(input: unknown): Resolved<T>;
|
|
126
126
|
|
|
127
127
|
/**
|
|
128
128
|
* @internal
|
|
@@ -137,8 +137,8 @@ Object.assign(assertClone, Namespace.misc.clone("assertClone"));
|
|
|
137
137
|
* Clone a data with type checking.
|
|
138
138
|
*
|
|
139
139
|
* Clones an instance following type `T`, with type checking. If the target `input`
|
|
140
|
-
* value or its member variable contains a class instance
|
|
141
|
-
*
|
|
140
|
+
* value or its member variable contains a class instance having methods, those
|
|
141
|
+
* methods would not be cloned.
|
|
142
142
|
*
|
|
143
143
|
* In such reason, when `input` value is not matched with the type `T`, it returns
|
|
144
144
|
* `null` value instead. Otherwise, there's no problem on the `input` value, cloned
|
|
@@ -150,14 +150,14 @@ Object.assign(assertClone, Namespace.misc.clone("assertClone"));
|
|
|
150
150
|
*
|
|
151
151
|
* @author Jeongho Nam - https://github.com/samchon
|
|
152
152
|
*/
|
|
153
|
-
export function isClone<T>(input: T):
|
|
153
|
+
export function isClone<T>(input: T): Resolved<T> | null;
|
|
154
154
|
|
|
155
155
|
/**
|
|
156
156
|
* Clone a data with type checking.
|
|
157
157
|
*
|
|
158
158
|
* Clones an instance following type `T`, with type checking. If the target `input`
|
|
159
|
-
* value or its member variable contains a class instance
|
|
160
|
-
*
|
|
159
|
+
* value or its member variable contains a class instance having methods, those
|
|
160
|
+
* methods would not be cloned.
|
|
161
161
|
*
|
|
162
162
|
* In such reason, when `input` value is not matched with the type `T`, it returns
|
|
163
163
|
* `null` value instead. Otherwise, there's no problem on the `input` value, cloned
|
|
@@ -169,7 +169,7 @@ export function isClone<T>(input: T): Primitive<T> | null;
|
|
|
169
169
|
*
|
|
170
170
|
* @author Jeongho Nam - https://github.com/samchon
|
|
171
171
|
*/
|
|
172
|
-
export function isClone<T>(input: unknown):
|
|
172
|
+
export function isClone<T>(input: unknown): Resolved<T> | null;
|
|
173
173
|
|
|
174
174
|
/**
|
|
175
175
|
* @internal
|
|
@@ -184,8 +184,8 @@ Object.assign(isClone, Namespace.misc.clone("isClone"));
|
|
|
184
184
|
* Clone a data with detailed type validation.
|
|
185
185
|
*
|
|
186
186
|
* Clones an instance following type `T`, with detailed type validation. If the target
|
|
187
|
-
* `input` value or its member variable contains a class instance
|
|
188
|
-
*
|
|
187
|
+
* `input` value or its member variable contains a class instance having methods,
|
|
188
|
+
* those methods would not be cloned.
|
|
189
189
|
*
|
|
190
190
|
* In such reason, when `input` value is not matched with the type `T`, it returns
|
|
191
191
|
* {@link IValidation.Failure} value. Otherwise, there's no problem on the `input`
|
|
@@ -196,14 +196,14 @@ Object.assign(isClone, Namespace.misc.clone("isClone"));
|
|
|
196
196
|
* @param input A value to be cloned
|
|
197
197
|
* @returns Validation result with cloned value
|
|
198
198
|
*/
|
|
199
|
-
export function validateClone<T>(input: T): IValidation<
|
|
199
|
+
export function validateClone<T>(input: T): IValidation<Resolved<T>>;
|
|
200
200
|
|
|
201
201
|
/**
|
|
202
202
|
* Clone a data with detailed type validation.
|
|
203
203
|
*
|
|
204
204
|
* Clones an instance following type `T`, with detailed type validation. If the target
|
|
205
|
-
* `input` value or its member variable contains a class instance
|
|
206
|
-
*
|
|
205
|
+
* `input` value or its member variable contains a class instance having methods,
|
|
206
|
+
* those methods would not be cloned.
|
|
207
207
|
*
|
|
208
208
|
* In such reason, when `input` value is not matched with the type `T`, it returns
|
|
209
209
|
* {@link IValidation.Failure} value. Otherwise, there's no problem on the `input`
|
|
@@ -214,7 +214,7 @@ export function validateClone<T>(input: T): IValidation<Primitive<T>>;
|
|
|
214
214
|
* @param input A value to be cloned
|
|
215
215
|
* @returns Validation result with cloned value
|
|
216
216
|
*/
|
|
217
|
-
export function validateClone<T>(input: unknown): IValidation<
|
|
217
|
+
export function validateClone<T>(input: unknown): IValidation<Resolved<T>>;
|
|
218
218
|
|
|
219
219
|
/**
|
|
220
220
|
* @internal
|
|
@@ -406,8 +406,8 @@ Object.assign(validatePrune, Namespace.validate());
|
|
|
406
406
|
/**
|
|
407
407
|
* Creates a reusable {@link clone} function.
|
|
408
408
|
*
|
|
409
|
-
* @danger You
|
|
410
|
-
* @
|
|
409
|
+
* @danger You must configure the generic argument `T`
|
|
410
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
411
411
|
* @throws compile error
|
|
412
412
|
*
|
|
413
413
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -422,7 +422,7 @@ export function createClone(): never;
|
|
|
422
422
|
*
|
|
423
423
|
* @author Jeongho Nam - https://github.com/samchon
|
|
424
424
|
*/
|
|
425
|
-
export function createClone<T>(): (input: T) =>
|
|
425
|
+
export function createClone<T>(): (input: T) => Resolved<T>;
|
|
426
426
|
|
|
427
427
|
/**
|
|
428
428
|
* @internal
|
|
@@ -435,8 +435,8 @@ Object.assign(createClone, clone);
|
|
|
435
435
|
/**
|
|
436
436
|
* Creates a reusable {@link assertClone} function.
|
|
437
437
|
*
|
|
438
|
-
* @danger You
|
|
439
|
-
* @
|
|
438
|
+
* @danger You must configure the generic argument `T`
|
|
439
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
440
440
|
* @throws compile error
|
|
441
441
|
*
|
|
442
442
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -451,7 +451,7 @@ export function createAssertClone(): never;
|
|
|
451
451
|
*
|
|
452
452
|
* @author Jeongho Nam - https://github.com/samchon
|
|
453
453
|
*/
|
|
454
|
-
export function createAssertClone<T>(): (input: unknown) =>
|
|
454
|
+
export function createAssertClone<T>(): (input: unknown) => Resolved<T>;
|
|
455
455
|
|
|
456
456
|
/**
|
|
457
457
|
* @internal
|
|
@@ -464,8 +464,8 @@ Object.assign(createAssertClone, assertClone);
|
|
|
464
464
|
/**
|
|
465
465
|
* Creates a reusable {@link isClone} function.
|
|
466
466
|
*
|
|
467
|
-
* @danger You
|
|
468
|
-
* @
|
|
467
|
+
* @danger You must configure the generic argument `T`
|
|
468
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
469
469
|
* @throws compile error
|
|
470
470
|
*
|
|
471
471
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -480,7 +480,7 @@ export function createIsClone(): never;
|
|
|
480
480
|
*
|
|
481
481
|
* @author Jeongho Nam - https://github.com/samchon
|
|
482
482
|
*/
|
|
483
|
-
export function createIsClone<T>(): (input: unknown) =>
|
|
483
|
+
export function createIsClone<T>(): (input: unknown) => Resolved<T> | null;
|
|
484
484
|
|
|
485
485
|
/**
|
|
486
486
|
* @internal
|
|
@@ -493,8 +493,8 @@ Object.assign(createIsClone, isClone);
|
|
|
493
493
|
/**
|
|
494
494
|
* Creates a reusable {@link validateClone} function.
|
|
495
495
|
*
|
|
496
|
-
* @danger You
|
|
497
|
-
* @
|
|
496
|
+
* @danger You must configure the generic argument `T`
|
|
497
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
498
498
|
* @throws compile error
|
|
499
499
|
*
|
|
500
500
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -511,7 +511,7 @@ export function createValidateClone(): never;
|
|
|
511
511
|
*/
|
|
512
512
|
export function createValidateClone<T>(): (
|
|
513
513
|
input: unknown,
|
|
514
|
-
) => IValidation<
|
|
514
|
+
) => IValidation<Resolved<T>>;
|
|
515
515
|
|
|
516
516
|
/**
|
|
517
517
|
* @internal
|
|
@@ -524,8 +524,8 @@ Object.assign(createValidateClone, validateClone);
|
|
|
524
524
|
/**
|
|
525
525
|
* Creates a reusable {@link prune} function.
|
|
526
526
|
*
|
|
527
|
-
* @danger You
|
|
528
|
-
* @
|
|
527
|
+
* @danger You must configure the generic argument `T`
|
|
528
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
529
529
|
* @throws compile error
|
|
530
530
|
*
|
|
531
531
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -553,8 +553,8 @@ Object.assign(createPrune, prune);
|
|
|
553
553
|
/**
|
|
554
554
|
* Creates a reusable {@link assertPrune} function.
|
|
555
555
|
*
|
|
556
|
-
* @danger You
|
|
557
|
-
* @
|
|
556
|
+
* @danger You must configure the generic argument `T`
|
|
557
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
558
558
|
* @throws compile error
|
|
559
559
|
*
|
|
560
560
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -582,8 +582,8 @@ Object.assign(createAssertPrune, assertPrune);
|
|
|
582
582
|
/**
|
|
583
583
|
* Creates a reusable {@link isPrune} function.
|
|
584
584
|
*
|
|
585
|
-
* @danger You
|
|
586
|
-
* @
|
|
585
|
+
* @danger You must configure the generic argument `T`
|
|
586
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
587
587
|
* @throws compile error
|
|
588
588
|
*
|
|
589
589
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -611,8 +611,8 @@ Object.assign(createIsPrune, isPrune);
|
|
|
611
611
|
/**
|
|
612
612
|
* Creates a reusable {@link validatePrune} function.
|
|
613
613
|
*
|
|
614
|
-
* @danger You
|
|
615
|
-
* @
|
|
614
|
+
* @danger You must configure the generic argument `T`
|
|
615
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
616
616
|
* @throws compile error
|
|
617
617
|
*
|
|
618
618
|
* @author Jeongho Nam - https://github.com/samchon
|
package/src/module.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { $dictionary } from "./functional/$dictionary";
|
|
2
1
|
import { Namespace } from "./functional/Namespace";
|
|
3
2
|
|
|
4
3
|
import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
|
|
5
4
|
|
|
6
|
-
import { MapUtil } from "./utils/MapUtil";
|
|
7
|
-
|
|
8
|
-
import { CustomValidatorMap } from "./CustomValidatorMap";
|
|
9
5
|
import { IRandomGenerator } from "./IRandomGenerator";
|
|
10
6
|
import { IValidation } from "./IValidation";
|
|
11
|
-
import {
|
|
7
|
+
import { Resolved } from "./Resolved";
|
|
12
8
|
|
|
13
9
|
export * as json from "./json";
|
|
14
|
-
export * as protobuf from "./protobuf";
|
|
15
10
|
export * as misc from "./misc";
|
|
11
|
+
export * as protobuf from "./protobuf";
|
|
12
|
+
export * as tags from "./tags";
|
|
16
13
|
|
|
17
14
|
export * from "./schemas/json/IJsonApplication";
|
|
18
15
|
export * from "./schemas/json/IJsonComponents";
|
|
@@ -20,58 +17,9 @@ export * from "./schemas/json/IJsonSchema";
|
|
|
20
17
|
export * from "./IRandomGenerator";
|
|
21
18
|
export * from "./IValidation";
|
|
22
19
|
export * from "./Primitive";
|
|
20
|
+
export * from "./Resolved";
|
|
23
21
|
export * from "./TypeGuardError";
|
|
24
22
|
|
|
25
|
-
/**
|
|
26
|
-
* Custom validators.
|
|
27
|
-
*
|
|
28
|
-
* If you want to add a custom validation logic utilizing comment tags,
|
|
29
|
-
* add a closure function with its tag and type name. Below example code
|
|
30
|
-
* would helpful to understand how to use this instance.
|
|
31
|
-
*
|
|
32
|
-
* ```ts
|
|
33
|
-
* typia.customValidators.insert("powerOf")("number")(
|
|
34
|
-
* (text: string) => {
|
|
35
|
-
* const denominator: number = Math.log(Number(text));
|
|
36
|
-
* return (value: number) => {
|
|
37
|
-
* value = Math.log(value) / denominator;
|
|
38
|
-
* return value === Math.floor(value);
|
|
39
|
-
* };
|
|
40
|
-
* }
|
|
41
|
-
* );
|
|
42
|
-
* typia.customValidators.insert("dollar")("string")(
|
|
43
|
-
* () => (value: string) => value.startsWith("$"),
|
|
44
|
-
* );
|
|
45
|
-
*
|
|
46
|
-
* interface TagCustom {
|
|
47
|
-
* /**
|
|
48
|
-
* * @powerOf 10
|
|
49
|
-
* *\/
|
|
50
|
-
* powerOf: number;
|
|
51
|
-
*
|
|
52
|
-
* /**
|
|
53
|
-
* * @dollar
|
|
54
|
-
* *\/
|
|
55
|
-
* dollar: string;
|
|
56
|
-
* }
|
|
57
|
-
* ```
|
|
58
|
-
*
|
|
59
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
60
|
-
*/
|
|
61
|
-
export const customValidators: CustomValidatorMap = {
|
|
62
|
-
size: (name?: string) =>
|
|
63
|
-
name ? $dictionary.get(name)?.size ?? 0 : $dictionary.size,
|
|
64
|
-
has: (name) => (type) => $dictionary.get(name)?.has(type) ?? false,
|
|
65
|
-
get: (name) => (type) => $dictionary.get(name)?.get(type),
|
|
66
|
-
insert: (name) => (type) => (closure) => {
|
|
67
|
-
const internal = MapUtil.take($dictionary)(name, () => new Map());
|
|
68
|
-
if (internal.has(type)) return false;
|
|
69
|
-
internal.set(type, closure);
|
|
70
|
-
return true;
|
|
71
|
-
},
|
|
72
|
-
erase: (name) => (type) => $dictionary.get(name)?.delete(type) ?? false,
|
|
73
|
-
};
|
|
74
|
-
|
|
75
23
|
/* -----------------------------------------------------------
|
|
76
24
|
BASIC VALIDATORS
|
|
77
25
|
----------------------------------------------------------- */
|
|
@@ -461,7 +409,7 @@ export function random(generator?: Partial<IRandomGenerator>): never;
|
|
|
461
409
|
*
|
|
462
410
|
* @author Jeongho Nam - https://github.com/samchon
|
|
463
411
|
*/
|
|
464
|
-
export function random<T>(generator?: Partial<IRandomGenerator>):
|
|
412
|
+
export function random<T>(generator?: Partial<IRandomGenerator>): Resolved<T>;
|
|
465
413
|
|
|
466
414
|
/**
|
|
467
415
|
* @internal
|
|
@@ -494,8 +442,8 @@ export function metadata(): never {
|
|
|
494
442
|
/**
|
|
495
443
|
* Creates a reusable {@link assert} function.
|
|
496
444
|
*
|
|
497
|
-
* @danger You
|
|
498
|
-
* @
|
|
445
|
+
* @danger You must configure the generic argument `T`
|
|
446
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
499
447
|
* @throws compile error
|
|
500
448
|
*
|
|
501
449
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -523,8 +471,8 @@ Object.assign(createAssert, assert);
|
|
|
523
471
|
/**
|
|
524
472
|
* Creates a reusable {@link is} function.
|
|
525
473
|
*
|
|
526
|
-
* @danger You
|
|
527
|
-
* @
|
|
474
|
+
* @danger You must configure the generic argument `T`
|
|
475
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
528
476
|
* @throws compile error
|
|
529
477
|
*
|
|
530
478
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -552,8 +500,8 @@ Object.assign(createIs, is);
|
|
|
552
500
|
/**
|
|
553
501
|
* Creates a reusable {@link validate} function.
|
|
554
502
|
*
|
|
555
|
-
* @danger You
|
|
556
|
-
* @
|
|
503
|
+
* @danger You must configure the generic argument `T`
|
|
504
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
557
505
|
* @throws compile error
|
|
558
506
|
*
|
|
559
507
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -581,8 +529,8 @@ Object.assign(createValidate, validate);
|
|
|
581
529
|
/**
|
|
582
530
|
* Creates a reusable {@link assertEquals} function.
|
|
583
531
|
*
|
|
584
|
-
* @danger You
|
|
585
|
-
* @
|
|
532
|
+
* @danger You must configure the generic argument `T`
|
|
533
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
586
534
|
* @throws compile error
|
|
587
535
|
*
|
|
588
536
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -610,8 +558,8 @@ Object.assign(createAssertEquals, assertEquals);
|
|
|
610
558
|
/**
|
|
611
559
|
* Creates a reusable {@link equals} function.
|
|
612
560
|
*
|
|
613
|
-
* @danger You
|
|
614
|
-
* @
|
|
561
|
+
* @danger You must configure the generic argument `T`
|
|
562
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
615
563
|
* @throws compile error
|
|
616
564
|
*
|
|
617
565
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -639,8 +587,8 @@ Object.assign(createEquals, equals);
|
|
|
639
587
|
/**
|
|
640
588
|
* Creates a reusable {@link validateEquals} function.
|
|
641
589
|
*
|
|
642
|
-
* @danger You
|
|
643
|
-
* @
|
|
590
|
+
* @danger You must configure the generic argument `T`
|
|
591
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
644
592
|
* @throws compile error
|
|
645
593
|
*
|
|
646
594
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -668,9 +616,9 @@ Object.assign(createValidateEquals, validateEquals);
|
|
|
668
616
|
/**
|
|
669
617
|
* Creates a reusable {@link random} function.
|
|
670
618
|
*
|
|
671
|
-
* @danger You
|
|
619
|
+
* @danger You must configure the generic argument `T`
|
|
672
620
|
* @param generator Random data generator
|
|
673
|
-
* @
|
|
621
|
+
* @returns Nothing until you configure the generic argument `T`
|
|
674
622
|
* @throws compile error
|
|
675
623
|
*
|
|
676
624
|
* @author Jeongho Nam - https://github.com/samchon
|
|
@@ -688,7 +636,7 @@ export function createRandom(generator?: Partial<IRandomGenerator>): never;
|
|
|
688
636
|
*/
|
|
689
637
|
export function createRandom<T>(
|
|
690
638
|
generator?: Partial<IRandomGenerator>,
|
|
691
|
-
): () =>
|
|
639
|
+
): () => Resolved<T>;
|
|
692
640
|
|
|
693
641
|
/**
|
|
694
642
|
* @internal
|
|
@@ -18,7 +18,9 @@ export namespace AssertProgrammer {
|
|
|
18
18
|
(modulo: ts.LeftHandSideExpression) =>
|
|
19
19
|
(equals: boolean) =>
|
|
20
20
|
(type: ts.Type, name?: string) => {
|
|
21
|
-
const importer: FunctionImporter = new FunctionImporter(
|
|
21
|
+
const importer: FunctionImporter = new FunctionImporter(
|
|
22
|
+
modulo.getText(),
|
|
23
|
+
);
|
|
22
24
|
const is = IsProgrammer.write(project)(modulo, true)(equals)(
|
|
23
25
|
type,
|
|
24
26
|
name ?? TypeFactory.getFullName(project.checker)(type),
|
|
@@ -31,7 +33,7 @@ export namespace AssertProgrammer {
|
|
|
31
33
|
equals,
|
|
32
34
|
atomist: (explore) => (tuple) => (input) =>
|
|
33
35
|
[
|
|
34
|
-
tuple.expression,
|
|
36
|
+
...(tuple.expression ? [tuple.expression] : []),
|
|
35
37
|
...tuple.tags.map((tag) =>
|
|
36
38
|
ts.factory.createLogicalOr(
|
|
37
39
|
tag.expression,
|