typia 3.3.12 → 3.4.0-dev.20221212
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/README.md +169 -403
- package/lib/IValidation.d.ts +10 -4
- package/lib/Primitive.d.ts +45 -0
- package/lib/Primitive.js +3 -0
- package/lib/Primitive.js.map +1 -0
- package/lib/executable/internal/TypiaSetupWizard.d.ts +4 -0
- package/lib/executable/internal/TypiaSetupWizard.js +200 -0
- package/lib/executable/internal/TypiaSetupWizard.js.map +1 -0
- package/lib/executable/typia.d.ts +1 -0
- package/lib/executable/typia.js +98 -0
- package/lib/executable/typia.js.map +1 -0
- package/lib/factories/CommentFactory.js +1 -1
- package/lib/factories/CommentFactory.js.map +1 -1
- package/lib/factories/ExpressionFactory.d.ts +1 -0
- package/lib/factories/ExpressionFactory.js +4 -0
- package/lib/factories/ExpressionFactory.js.map +1 -1
- package/lib/factories/IdentifierFactory.d.ts +1 -1
- package/lib/factories/IdentifierFactory.js +4 -2
- package/lib/factories/IdentifierFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.d.ts +2 -1
- package/lib/factories/MetadataCollection.js +24 -5
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataTagFactory.js +1 -1
- package/lib/factories/MetadataTagFactory.js.map +1 -1
- package/lib/factories/StatementFactory.d.ts +1 -3
- package/lib/factories/StatementFactory.js +3 -13
- package/lib/factories/StatementFactory.js.map +1 -1
- package/lib/factories/TemplateFactory.js +4 -0
- package/lib/factories/TemplateFactory.js.map +1 -1
- package/lib/factories/TypeFactory.d.ts +2 -1
- package/lib/factories/TypeFactory.js +14 -7
- package/lib/factories/TypeFactory.js.map +1 -1
- package/lib/factories/internal/explore_metadata.js +1 -1
- package/lib/factories/internal/explore_metadata.js.map +1 -1
- package/lib/factories/internal/iterate_metadata.js +12 -3
- package/lib/factories/internal/iterate_metadata.js.map +1 -1
- package/lib/factories/internal/iterate_metadata_array.js +2 -3
- package/lib/factories/internal/iterate_metadata_array.js.map +1 -1
- package/lib/factories/internal/iterate_metadata_atomic.js +30 -55
- package/lib/factories/internal/iterate_metadata_atomic.js.map +1 -1
- package/lib/factories/internal/iterate_metadata_coalesce.js +2 -3
- package/lib/factories/internal/iterate_metadata_coalesce.js.map +1 -1
- package/lib/factories/internal/iterate_metadata_map.d.ts +5 -0
- package/lib/factories/internal/iterate_metadata_map.js +30 -0
- package/lib/factories/internal/iterate_metadata_map.js.map +1 -0
- package/lib/factories/internal/iterate_metadata_native.d.ts +3 -0
- package/lib/factories/internal/iterate_metadata_native.js +230 -0
- package/lib/factories/internal/iterate_metadata_native.js.map +1 -0
- package/lib/factories/internal/iterate_metadata_set.d.ts +5 -0
- package/lib/factories/internal/iterate_metadata_set.js +26 -0
- package/lib/factories/internal/iterate_metadata_set.js.map +1 -0
- package/lib/factories/internal/iterate_metadata_tuple.d.ts +1 -1
- package/lib/factories/internal/iterate_metadata_tuple.js +25 -3
- package/lib/factories/internal/iterate_metadata_tuple.js.map +1 -1
- package/lib/functional/$every.d.ts +2 -0
- package/lib/functional/$every.js +12 -0
- package/lib/functional/$every.js.map +1 -0
- package/lib/functional/$guard.d.ts +1 -0
- package/lib/functional/$guard.js +18 -0
- package/lib/functional/$guard.js.map +1 -0
- package/lib/functional/$number.js +4 -4
- package/lib/functional/$number.js.map +1 -1
- package/lib/functional/$report.d.ts +2 -0
- package/lib/functional/$report.js +18 -0
- package/lib/functional/$report.js.map +1 -0
- package/lib/functional/$rest.d.ts +1 -0
- package/lib/functional/$rest.js +8 -0
- package/lib/functional/$rest.js.map +1 -0
- package/lib/index.d.ts +2 -2
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/metadata/IMetadata.d.ts +5 -0
- package/lib/metadata/IMetadataApplication.d.ts +6 -0
- package/lib/metadata/IMetadataApplication.js +3 -0
- package/lib/metadata/IMetadataApplication.js.map +1 -0
- package/lib/metadata/IMetadataConstant.d.ts +1 -1
- package/lib/metadata/IMetadataEntry.d.ts +5 -0
- package/lib/metadata/IMetadataEntry.js +3 -0
- package/lib/metadata/IMetadataEntry.js.map +1 -0
- package/lib/metadata/IMetadataTag.d.ts +1 -1
- package/lib/metadata/Metadata.d.ts +10 -0
- package/lib/metadata/Metadata.js +156 -59
- package/lib/metadata/Metadata.js.map +1 -1
- package/lib/metadata/MetadataObject.d.ts +0 -1
- package/lib/metadata/MetadataObject.js +10 -0
- package/lib/metadata/MetadataObject.js.map +1 -1
- package/lib/module.d.ts +603 -72
- package/lib/module.js +185 -23
- package/lib/module.js.map +1 -1
- package/lib/programmers/ApplicationProgrammer.js +2 -2
- package/lib/programmers/ApplicationProgrammer.js.map +1 -1
- package/lib/programmers/AssertParseProgrammer.d.ts +5 -0
- package/lib/programmers/AssertParseProgrammer.js +23 -0
- package/lib/programmers/AssertParseProgrammer.js.map +1 -0
- package/lib/programmers/AssertProgrammer.d.ts +1 -1
- package/lib/programmers/AssertProgrammer.js +133 -58
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/AssertStringifyProgrammer.d.ts +5 -0
- package/lib/programmers/AssertStringifyProgrammer.js +26 -0
- package/lib/programmers/AssertStringifyProgrammer.js.map +1 -0
- package/lib/programmers/CheckerProgrammer.d.ts +17 -7
- package/lib/programmers/CheckerProgrammer.js +284 -79
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +14 -9
- package/lib/programmers/FeatureProgrammer.js +76 -116
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsParseProgrammer.d.ts +5 -0
- package/lib/programmers/IsParseProgrammer.js +23 -0
- package/lib/programmers/IsParseProgrammer.js.map +1 -0
- package/lib/programmers/IsProgrammer.d.ts +5 -4
- package/lib/programmers/IsProgrammer.js +69 -44
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/IsStringifyProgrammer.d.ts +5 -0
- package/lib/programmers/IsStringifyProgrammer.js +24 -0
- package/lib/programmers/IsStringifyProgrammer.js.map +1 -0
- package/lib/programmers/StringifyProgrammer.js +118 -47
- package/lib/programmers/StringifyProgrammer.js.map +1 -1
- package/lib/programmers/ValidateParseProgrammer.d.ts +5 -0
- package/lib/programmers/ValidateParseProgrammer.js +24 -0
- package/lib/programmers/ValidateParseProgrammer.js.map +1 -0
- package/lib/programmers/ValidateProgrammer.d.ts +1 -1
- package/lib/programmers/ValidateProgrammer.js +124 -68
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/ValidateStringifyProgrammer.d.ts +5 -0
- package/lib/programmers/ValidateStringifyProgrammer.js +26 -0
- package/lib/programmers/ValidateStringifyProgrammer.js.map +1 -0
- package/lib/programmers/helpers/AtomicPredicator.d.ts +6 -0
- package/lib/programmers/helpers/AtomicPredicator.js +16 -0
- package/lib/programmers/helpers/AtomicPredicator.js.map +1 -0
- package/lib/programmers/helpers/FunctionImporeter.js +1 -1
- package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
- package/lib/programmers/helpers/OptionPredicator.d.ts +1 -1
- package/lib/programmers/helpers/OptionPredicator.js +7 -7
- package/lib/programmers/helpers/OptionPredicator.js.map +1 -1
- package/lib/programmers/helpers/StringifyJoinder.d.ts +2 -2
- package/lib/programmers/helpers/StringifyJoinder.js +5 -2
- package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +33 -4
- package/lib/programmers/helpers/UnionExplorer.js +85 -47
- 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.js +1 -1
- package/lib/programmers/internal/application_default.js.map +1 -1
- package/lib/programmers/internal/application_native.d.ts +4 -0
- package/lib/programmers/internal/application_native.js +35 -0
- package/lib/programmers/internal/application_native.js.map +1 -0
- package/lib/programmers/internal/application_number.js +6 -2
- package/lib/programmers/internal/application_number.js.map +1 -1
- package/lib/programmers/internal/application_object.js +44 -31
- package/lib/programmers/internal/application_object.js.map +1 -1
- package/lib/programmers/internal/application_schema.js +70 -36
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/internal/application_string.js +2 -2
- package/lib/programmers/internal/application_string.js.map +1 -1
- package/lib/programmers/internal/check_array.js +4 -10
- package/lib/programmers/internal/check_array.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_properties.js +40 -50
- package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/check_everything.js +1 -3
- package/lib/programmers/internal/check_everything.js.map +1 -1
- package/lib/programmers/internal/check_length.js +2 -2
- package/lib/programmers/internal/check_length.js.map +1 -1
- package/lib/programmers/internal/check_native.d.ts +1 -0
- package/lib/programmers/internal/check_native.js +9 -0
- package/lib/programmers/internal/check_native.js.map +1 -0
- package/lib/programmers/internal/check_number.js +1 -1
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_object.d.ts +12 -1
- package/lib/programmers/internal/check_object.js +12 -22
- package/lib/programmers/internal/check_object.js.map +1 -1
- package/lib/programmers/internal/decode_union_object.js +9 -7
- package/lib/programmers/internal/decode_union_object.js.map +1 -1
- package/lib/programmers/internal/feature_object_entries.d.ts +9 -0
- package/lib/programmers/internal/feature_object_entries.js +38 -0
- package/lib/programmers/internal/feature_object_entries.js.map +1 -0
- package/lib/programmers/internal/stringify_dynamic_properties.js +4 -2
- package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/stringify_native.d.ts +1 -0
- package/lib/programmers/internal/stringify_native.js +12 -0
- package/lib/programmers/internal/stringify_native.js.map +1 -0
- package/lib/schemas/IJsonComponents.d.ts +1 -1
- package/lib/schemas/IJsonSchema.d.ts +10 -8
- package/lib/transformers/CallExpressionTransformer.js +47 -10
- package/lib/transformers/CallExpressionTransformer.js.map +1 -1
- package/lib/transformers/FileTransformer.js +1 -1
- package/lib/transformers/features/{ApplicationTransformer.d.ts → miscellaneous/ApplicationTransformer.d.ts} +1 -1
- package/lib/transformers/features/{ApplicationTransformer.js → miscellaneous/ApplicationTransformer.js} +8 -8
- package/lib/transformers/features/miscellaneous/ApplicationTransformer.js.map +1 -0
- package/lib/transformers/features/{CreateTransformer.d.ts → miscellaneous/CreateInstanceTransformer.d.ts} +2 -2
- package/lib/transformers/features/{CreateTransformer.js → miscellaneous/CreateInstanceTransformer.js} +8 -8
- package/lib/transformers/features/miscellaneous/CreateInstanceTransformer.js.map +1 -0
- package/lib/transformers/features/miscellaneous/MetadataTransformer.d.ts +5 -0
- package/lib/transformers/features/miscellaneous/MetadataTransformer.js +43 -0
- package/lib/transformers/features/miscellaneous/MetadataTransformer.js.map +1 -0
- package/lib/transformers/features/parsers/AssertParseTransformer.d.ts +5 -0
- package/lib/transformers/features/parsers/AssertParseTransformer.js +21 -0
- package/lib/transformers/features/parsers/AssertParseTransformer.js.map +1 -0
- package/lib/transformers/features/parsers/CreateAssertParseTransformer.d.ts +5 -0
- package/lib/transformers/features/parsers/CreateAssertParseTransformer.js +17 -0
- package/lib/transformers/features/parsers/CreateAssertParseTransformer.js.map +1 -0
- package/lib/transformers/features/parsers/CreateIsParseTransformer.d.ts +5 -0
- package/lib/transformers/features/parsers/CreateIsParseTransformer.js +17 -0
- package/lib/transformers/features/parsers/CreateIsParseTransformer.js.map +1 -0
- package/lib/transformers/features/parsers/CreateValidateParseTransformer.d.ts +5 -0
- package/lib/transformers/features/parsers/CreateValidateParseTransformer.js +17 -0
- package/lib/transformers/features/parsers/CreateValidateParseTransformer.js.map +1 -0
- package/lib/transformers/features/parsers/IsParseTransformer.d.ts +5 -0
- package/lib/transformers/features/parsers/IsParseTransformer.js +21 -0
- package/lib/transformers/features/parsers/IsParseTransformer.js.map +1 -0
- package/lib/transformers/features/parsers/ValidateParseTransformer.d.ts +5 -0
- package/lib/transformers/features/parsers/ValidateParseTransformer.js +21 -0
- package/lib/transformers/features/parsers/ValidateParseTransformer.js.map +1 -0
- package/lib/transformers/features/stringifiers/AssertStringifyTransformer.d.ts +5 -0
- package/lib/transformers/features/stringifiers/AssertStringifyTransformer.js +23 -0
- package/lib/transformers/features/stringifiers/AssertStringifyTransformer.js.map +1 -0
- package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.d.ts +5 -0
- package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.js +17 -0
- package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.js.map +1 -0
- package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.d.ts +5 -0
- package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.js +17 -0
- package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.js.map +1 -0
- package/lib/transformers/features/stringifiers/CreateStringifyTransformer.d.ts +5 -0
- package/lib/transformers/features/stringifiers/CreateStringifyTransformer.js +17 -0
- package/lib/transformers/features/stringifiers/CreateStringifyTransformer.js.map +1 -0
- package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.d.ts +5 -0
- package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.js +17 -0
- package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.js.map +1 -0
- package/lib/transformers/features/stringifiers/IsStringifyTransformer.d.ts +5 -0
- package/lib/transformers/features/stringifiers/IsStringifyTransformer.js +23 -0
- package/lib/transformers/features/stringifiers/IsStringifyTransformer.js.map +1 -0
- package/lib/transformers/features/{StringifyTransformer.d.ts → stringifiers/StringifyTransformer.d.ts} +1 -1
- package/lib/transformers/features/{StringifyTransformer.js → stringifiers/StringifyTransformer.js} +3 -3
- package/lib/transformers/features/stringifiers/StringifyTransformer.js.map +1 -0
- package/lib/transformers/features/stringifiers/ValidateStringifyTransformer.d.ts +5 -0
- package/lib/transformers/features/stringifiers/ValidateStringifyTransformer.js +23 -0
- package/lib/transformers/features/stringifiers/ValidateStringifyTransformer.js.map +1 -0
- package/lib/transformers/features/{AssertTransformer.d.ts → validators/AssertTransformer.d.ts} +1 -1
- package/lib/transformers/features/{AssertTransformer.js → validators/AssertTransformer.js} +4 -4
- package/lib/transformers/features/validators/AssertTransformer.js.map +1 -0
- package/lib/transformers/features/validators/CreateAssertTransformer.d.ts +5 -0
- package/lib/transformers/features/validators/CreateAssertTransformer.js +24 -0
- package/lib/transformers/features/validators/CreateAssertTransformer.js.map +1 -0
- package/lib/transformers/features/validators/CreateIsTransformer.d.ts +5 -0
- package/lib/transformers/features/validators/CreateIsTransformer.js +24 -0
- package/lib/transformers/features/validators/CreateIsTransformer.js.map +1 -0
- package/lib/transformers/features/validators/CreateValidateTransformer.d.ts +5 -0
- package/lib/transformers/features/validators/CreateValidateTransformer.js +24 -0
- package/lib/transformers/features/validators/CreateValidateTransformer.js.map +1 -0
- package/lib/transformers/features/{IsTransformer.d.ts → validators/IsTransformer.d.ts} +1 -1
- package/lib/transformers/features/{IsTransformer.js → validators/IsTransformer.js} +3 -3
- package/lib/transformers/features/validators/IsTransformer.js.map +1 -0
- package/lib/transformers/features/{ValidateTransformer.d.ts → validators/ValidateTransformer.d.ts} +1 -1
- package/lib/transformers/features/{ValidateTransformer.js → validators/ValidateTransformer.js} +3 -3
- package/lib/transformers/features/validators/ValidateTransformer.js.map +1 -0
- package/lib/typings/ClassProperties.d.ts +1 -1
- package/lib/typings/OmitNever.d.ts +1 -1
- package/lib/typings/SpecialFields.d.ts +1 -1
- package/lib/typings/Writable.d.ts +1 -1
- package/lib/utils/PatternUtil.js +1 -1
- package/lib/utils/PatternUtil.js.map +1 -1
- package/package.json +114 -78
- package/src/IValidation.ts +21 -0
- package/src/Primitive.ts +82 -0
- package/src/TypeGuardError.ts +36 -0
- package/src/executable/internal/TypiaSetupWizard.ts +130 -0
- package/src/executable/typia.ts +34 -0
- package/src/factories/CommentFactory.ts +10 -0
- package/src/factories/ExpressionFactory.ts +52 -0
- package/src/factories/IdentifierFactory.ts +72 -0
- package/src/factories/LiteralFactory.ts +44 -0
- package/src/factories/MetadataCollection.ts +122 -0
- package/src/factories/MetadataFactory.ts +46 -0
- package/src/factories/MetadataTagFactory.ts +347 -0
- package/src/factories/StatementFactory.ts +60 -0
- package/src/factories/TemplateFactory.ts +56 -0
- package/src/factories/TypeFactory.ts +101 -0
- package/src/factories/ValueFactory.ts +12 -0
- package/src/factories/internal/MetadataHelper.ts +12 -0
- package/src/factories/internal/emplace_metadata_object.ts +140 -0
- package/src/factories/internal/explore_metadata.ts +91 -0
- package/src/factories/internal/iterate_metadata.ts +81 -0
- package/src/factories/internal/iterate_metadata_array.ts +29 -0
- package/src/factories/internal/iterate_metadata_atomic.ts +59 -0
- package/src/factories/internal/iterate_metadata_coalesce.ts +33 -0
- package/src/factories/internal/iterate_metadata_constant.ts +58 -0
- package/src/factories/internal/iterate_metadata_map.ts +41 -0
- package/src/factories/internal/iterate_metadata_native.ts +227 -0
- package/src/factories/internal/iterate_metadata_object.ts +45 -0
- package/src/factories/internal/iterate_metadata_resolve.ts +27 -0
- package/src/factories/internal/iterate_metadata_set.ts +33 -0
- package/src/factories/internal/iterate_metadata_template.ts +38 -0
- package/src/factories/internal/iterate_metadata_tuple.ts +51 -0
- package/src/factories/internal/iterate_metadata_union.ts +59 -0
- package/src/functional/$every.ts +11 -0
- package/src/functional/$guard.ts +35 -0
- package/src/functional/$is_email.ts +5 -0
- package/src/functional/$is_ipv4.ts +5 -0
- package/src/functional/$is_ipv6.ts +5 -0
- package/src/functional/$is_url.ts +5 -0
- package/src/functional/$is_uuid.ts +5 -0
- package/src/functional/$join.ts +50 -0
- package/src/functional/$number.ts +19 -0
- package/src/functional/$report.ts +15 -0
- package/src/functional/$rest.ts +3 -0
- package/src/functional/$string.ts +37 -0
- package/src/functional/$tail.ts +6 -0
- package/src/index.ts +4 -0
- package/src/metadata/IJsDocTagInfo.ts +10 -0
- package/src/metadata/IMetadata.ts +25 -0
- package/src/metadata/IMetadataApplication.ts +7 -0
- package/src/metadata/IMetadataConstant.ts +16 -0
- package/src/metadata/IMetadataEntry.ts +6 -0
- package/src/metadata/IMetadataObject.ts +29 -0
- package/src/metadata/IMetadataProperty.ts +11 -0
- package/src/metadata/IMetadataTag.ts +122 -0
- package/src/metadata/Metadata.ts +477 -0
- package/src/metadata/MetadataConstant.ts +3 -0
- package/src/metadata/MetadataObject.ts +131 -0
- package/src/metadata/MetadataProperty.ts +64 -0
- package/src/module.ts +1535 -0
- package/src/programmers/ApplicationProgrammer.ts +55 -0
- package/src/programmers/AssertParseProgrammer.ts +45 -0
- package/src/programmers/AssertProgrammer.ts +444 -0
- package/src/programmers/AssertStringifyProgrammer.ts +45 -0
- package/src/programmers/CheckerProgrammer.ts +798 -0
- package/src/programmers/FeatureProgrammer.ts +327 -0
- package/src/programmers/IsParseProgrammer.ts +51 -0
- package/src/programmers/IsProgrammer.ts +169 -0
- package/src/programmers/IsStringifyProgrammer.ts +49 -0
- package/src/programmers/StringifyProgrammer.ts +746 -0
- package/src/programmers/ValidateParseProgrammer.ts +49 -0
- package/src/programmers/ValidateProgrammer.ts +236 -0
- package/src/programmers/ValidateStringifyProgrammer.ts +60 -0
- package/src/programmers/helpers/AtomicPredicator.ts +15 -0
- package/src/programmers/helpers/FunctionImporeter.ts +31 -0
- package/src/programmers/helpers/IExpressionEntry.ts +10 -0
- package/src/programmers/helpers/OptionPredicator.ts +18 -0
- package/src/programmers/helpers/StringifyJoinder.ts +111 -0
- package/src/programmers/helpers/StringifyPredicator.ts +18 -0
- package/src/programmers/helpers/UnionExplorer.ts +437 -0
- package/src/programmers/helpers/UnionPredicator.ts +81 -0
- package/src/programmers/internal/application_array.ts +45 -0
- package/src/programmers/internal/application_boolean.ts +17 -0
- package/src/programmers/internal/application_constant.ts +29 -0
- package/src/programmers/internal/application_default.ts +17 -0
- package/src/programmers/internal/application_default_string.ts +32 -0
- package/src/programmers/internal/application_native.ts +29 -0
- package/src/programmers/internal/application_number.ts +76 -0
- package/src/programmers/internal/application_object.ts +103 -0
- package/src/programmers/internal/application_schema.ts +221 -0
- package/src/programmers/internal/application_string.ts +49 -0
- package/src/programmers/internal/application_templates.ts +27 -0
- package/src/programmers/internal/application_tuple.ts +25 -0
- package/src/programmers/internal/check_array.ts +44 -0
- package/src/programmers/internal/check_dynamic_properties.ts +146 -0
- package/src/programmers/internal/check_everything.ts +25 -0
- package/src/programmers/internal/check_length.ts +46 -0
- package/src/programmers/internal/check_native.ts +9 -0
- package/src/programmers/internal/check_number.ts +181 -0
- package/src/programmers/internal/check_object.ts +42 -0
- package/src/programmers/internal/check_string.ts +24 -0
- package/src/programmers/internal/check_string_tags.ts +63 -0
- package/src/programmers/internal/check_template.ts +50 -0
- package/src/programmers/internal/decode_union_object.ts +73 -0
- package/src/programmers/internal/feature_object_entries.ts +49 -0
- package/src/programmers/internal/metadata_to_pattern.ts +31 -0
- package/src/programmers/internal/stringify_dynamic_properties.ts +164 -0
- package/src/programmers/internal/stringify_native.ts +8 -0
- package/src/programmers/internal/stringify_regular_properties.ts +81 -0
- package/src/programmers/internal/template_to_pattern.ts +15 -0
- package/src/schemas/IJsonApplication.ts +9 -0
- package/src/schemas/IJsonComponents.ts +24 -0
- package/src/schemas/IJsonSchema.ts +92 -0
- package/src/transform.ts +20 -0
- package/src/transformers/CallExpressionTransformer.ts +124 -0
- package/src/transformers/ExpressionWithArgumentTransformer.ts +66 -0
- package/src/transformers/FileTransformer.ts +49 -0
- package/src/transformers/IProject.ts +11 -0
- package/src/transformers/ITransformOptions.ts +4 -0
- package/src/transformers/NodeTransformer.ts +19 -0
- package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +114 -0
- package/src/transformers/features/miscellaneous/CreateInstanceTransformer.ts +41 -0
- package/src/transformers/features/miscellaneous/MetadataTransformer.ts +55 -0
- package/src/transformers/features/parsers/AssertParseTransformer.ts +36 -0
- package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +32 -0
- package/src/transformers/features/parsers/CreateIsParseTransformer.ts +32 -0
- package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +32 -0
- package/src/transformers/features/parsers/IsParseTransformer.ts +36 -0
- package/src/transformers/features/parsers/ValidateParseTransformer.ts +36 -0
- package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +38 -0
- package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +32 -0
- package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +32 -0
- package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +31 -0
- package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +32 -0
- package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +38 -0
- package/src/transformers/features/stringifiers/StringifyTransformer.ts +36 -0
- package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +38 -0
- package/src/transformers/features/validators/AssertTransformer.ts +43 -0
- package/src/transformers/features/validators/CreateAssertTransformer.ts +35 -0
- package/src/transformers/features/validators/CreateIsTransformer.ts +35 -0
- package/src/transformers/features/validators/CreateValidateTransformer.ts +35 -0
- package/src/transformers/features/validators/IsTransformer.ts +43 -0
- package/src/transformers/features/validators/ValidateTransformer.ts +43 -0
- package/src/typings/Atomic.ts +17 -0
- package/src/typings/ClassProperties.ts +5 -0
- package/src/typings/OmitNever.ts +3 -0
- package/src/typings/SpecialFields.ts +3 -0
- package/src/typings/Writable.ts +11 -0
- package/src/utils/ArrayUtil.ts +49 -0
- package/src/utils/Escaper.ts +50 -0
- package/src/utils/MapUtil.ts +14 -0
- package/src/utils/PatternUtil.ts +30 -0
- package/src/utils/Singleton.ts +17 -0
- package/CODE_OF_CONDUCT.md +0 -133
- package/CONTRIBUTING.md +0 -104
- package/lib/transformers/features/ApplicationTransformer.js.map +0 -1
- package/lib/transformers/features/AssertTransformer.js.map +0 -1
- package/lib/transformers/features/CreateTransformer.js.map +0 -1
- package/lib/transformers/features/IsTransformer.js.map +0 -1
- package/lib/transformers/features/StringifyTransformer.js.map +0 -1
- package/lib/transformers/features/ValidateTransformer.js.map +0 -1
|
@@ -10,6 +10,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __values = (this && this.__values) || function(o) {
|
|
14
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
15
|
+
if (m) return m.call(o);
|
|
16
|
+
if (o && typeof o.length === "number") return {
|
|
17
|
+
next: function () {
|
|
18
|
+
if (o && i >= o.length) o = void 0;
|
|
19
|
+
return { value: o && o[i++], done: !o };
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
23
|
+
};
|
|
13
24
|
var __read = (this && this.__read) || function (o, n) {
|
|
14
25
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
26
|
if (!m) return o;
|
|
@@ -35,17 +46,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
35
46
|
}
|
|
36
47
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
37
48
|
};
|
|
38
|
-
var __values = (this && this.__values) || function(o) {
|
|
39
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
40
|
-
if (m) return m.call(o);
|
|
41
|
-
if (o && typeof o.length === "number") return {
|
|
42
|
-
next: function () {
|
|
43
|
-
if (o && i >= o.length) o = void 0;
|
|
44
|
-
return { value: o && o[i++], done: !o };
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
|
-
};
|
|
49
49
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
51
|
};
|
|
@@ -53,40 +53,36 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
53
53
|
exports.CheckerProgrammer = void 0;
|
|
54
54
|
var typescript_1 = __importDefault(require("typescript"));
|
|
55
55
|
var ExpressionFactory_1 = require("../factories/ExpressionFactory");
|
|
56
|
+
var IdentifierFactory_1 = require("../factories/IdentifierFactory");
|
|
56
57
|
var MetadataCollection_1 = require("../factories/MetadataCollection");
|
|
57
58
|
var MetadataFactory_1 = require("../factories/MetadataFactory");
|
|
58
59
|
var ValueFactory_1 = require("../factories/ValueFactory");
|
|
60
|
+
var Metadata_1 = require("../metadata/Metadata");
|
|
59
61
|
var FeatureProgrammer_1 = require("./FeatureProgrammer");
|
|
60
62
|
var OptionPredicator_1 = require("./helpers/OptionPredicator");
|
|
61
63
|
var UnionExplorer_1 = require("./helpers/UnionExplorer");
|
|
62
64
|
var check_array_1 = require("./internal/check_array");
|
|
65
|
+
var check_native_1 = require("./internal/check_native");
|
|
63
66
|
var check_number_1 = require("./internal/check_number");
|
|
64
67
|
var check_string_1 = require("./internal/check_string");
|
|
65
68
|
var check_template_1 = require("./internal/check_template");
|
|
66
69
|
var decode_union_object_1 = require("./internal/decode_union_object");
|
|
67
70
|
var CheckerProgrammer;
|
|
68
71
|
(function (CheckerProgrammer) {
|
|
69
|
-
function generate(project, config,
|
|
70
|
-
return FeatureProgrammer_1.FeatureProgrammer.generate(project, CONFIG(project, config, importer), function () {
|
|
71
|
-
return !importer.empty() || addition
|
|
72
|
-
? __spreadArray(__spreadArray([], __read(importer.declare(modulo)), false), __read((addition ? addition() : [])), false) : undefined;
|
|
73
|
-
});
|
|
72
|
+
function generate(project, config, importer, addition) {
|
|
73
|
+
return FeatureProgrammer_1.FeatureProgrammer.generate(project, CONFIG(project, config, importer), importer, function () { return (addition ? (addition ? addition() : []) : undefined); });
|
|
74
74
|
}
|
|
75
75
|
CheckerProgrammer.generate = generate;
|
|
76
|
-
CheckerProgrammer.generate_functors = function (project, config, importer) {
|
|
76
|
+
CheckerProgrammer.generate_functors = function (project, config, importer) {
|
|
77
|
+
return FeatureProgrammer_1.FeatureProgrammer.generate_functors(CONFIG(project, config, importer), importer);
|
|
78
|
+
};
|
|
77
79
|
CheckerProgrammer.generate_unioners = function (project, config, importer) {
|
|
78
80
|
return FeatureProgrammer_1.FeatureProgrammer.generate_unioners(CONFIG(project, __assign(__assign({}, config), { numeric: false }), importer));
|
|
79
81
|
};
|
|
80
|
-
CheckerProgrammer.DEFAULT_JOINER = function (object) { return ({
|
|
81
|
-
object: object,
|
|
82
|
-
array: check_array_1.check_array,
|
|
83
|
-
tuple: function (binaries) {
|
|
84
|
-
return binaries.reduce(function (x, y) { return typescript_1.default.factory.createLogicalAnd(x, y); });
|
|
85
|
-
},
|
|
86
|
-
}); };
|
|
87
82
|
function CONFIG(project, config, importer) {
|
|
88
83
|
var output = {
|
|
89
84
|
trace: config.trace,
|
|
85
|
+
path: config.path,
|
|
90
86
|
functors: config.functors,
|
|
91
87
|
unioners: config.unioners,
|
|
92
88
|
initializer: function (_a, type) {
|
|
@@ -98,25 +94,29 @@ var CheckerProgrammer;
|
|
|
98
94
|
});
|
|
99
95
|
return [collection, meta];
|
|
100
96
|
},
|
|
101
|
-
decoder: decode(project, config, importer),
|
|
97
|
+
decoder: config.decoder || decode(project, config, importer),
|
|
102
98
|
objector: {
|
|
103
|
-
checker: decode(project, config, importer),
|
|
99
|
+
checker: config.decoder || decode(project, config, importer),
|
|
104
100
|
decoder: decode_object(config),
|
|
105
101
|
joiner: config.joiner.object,
|
|
106
102
|
unionizer: config.equals
|
|
107
103
|
? (0, decode_union_object_1.decode_union_object)(decode_object(config))(function (input, obj, explore) {
|
|
108
104
|
return decode_object(config)(input, obj, __assign(__assign({}, explore), { tracable: true }));
|
|
109
|
-
})(function () {
|
|
110
|
-
return typescript_1.default.factory.createReturnStatement(
|
|
105
|
+
})(config.joiner.is || (function (expr) { return expr; }))(function (value, expected) {
|
|
106
|
+
return typescript_1.default.factory.createReturnStatement(config.joiner.failure(value, expected));
|
|
111
107
|
})
|
|
112
108
|
: function (input, targets, explore) {
|
|
113
|
-
return config.combiner(explore)("or")(input, targets.map(function (obj) {
|
|
114
|
-
|
|
115
|
-
|
|
109
|
+
return config.combiner(explore)("or")(input, targets.map(function (obj) { return ({
|
|
110
|
+
expression: decode_object(config)(input, obj, explore),
|
|
111
|
+
combined: true,
|
|
112
|
+
}); }), "(".concat(targets.map(function (t) { return t.name; }).join(" | "), ")"));
|
|
116
113
|
},
|
|
117
|
-
failure: function () {
|
|
118
|
-
return typescript_1.default.factory.createReturnStatement(
|
|
114
|
+
failure: function (value, expected) {
|
|
115
|
+
return typescript_1.default.factory.createReturnStatement(config.joiner.failure(value, expected));
|
|
119
116
|
},
|
|
117
|
+
is: config.joiner.is,
|
|
118
|
+
required: config.joiner.required,
|
|
119
|
+
full: config.joiner.full,
|
|
120
120
|
},
|
|
121
121
|
};
|
|
122
122
|
if (config.numeric === true)
|
|
@@ -125,11 +125,12 @@ var CheckerProgrammer;
|
|
|
125
125
|
};
|
|
126
126
|
return output;
|
|
127
127
|
}
|
|
128
|
-
function decode(project, config, importer) {
|
|
128
|
+
function decode(project, config, importer, checkTupleLength) {
|
|
129
|
+
if (checkTupleLength === void 0) { checkTupleLength = true; }
|
|
129
130
|
return function (input, meta, explore, tags) {
|
|
130
|
-
var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
|
|
131
|
+
var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e;
|
|
131
132
|
if (meta.any)
|
|
132
|
-
return
|
|
133
|
+
return config.success;
|
|
133
134
|
var top = [];
|
|
134
135
|
var binaries = [];
|
|
135
136
|
var add = create_add(binaries)(input);
|
|
@@ -139,27 +140,33 @@ var CheckerProgrammer;
|
|
|
139
140
|
: typescript_1.default.factory.createIdentifier(value.toString());
|
|
140
141
|
};
|
|
141
142
|
var checkOptional = meta.empty() || meta.isUnionBucket();
|
|
142
|
-
if (checkOptional ||
|
|
143
|
+
if (checkOptional ||
|
|
144
|
+
meta.nullable)
|
|
143
145
|
(meta.nullable ? add : create_add(top)(input))(meta.nullable, ValueFactory_1.ValueFactory.NULL());
|
|
144
146
|
if (checkOptional || !meta.required)
|
|
145
147
|
(meta.required ? create_add(top)(input) : add)(!meta.required, ValueFactory_1.ValueFactory.UNDEFINED());
|
|
146
|
-
if (meta.functional === true
|
|
147
|
-
(OptionPredicator_1.
|
|
148
|
-
meta.size() !== 1)
|
|
149
|
-
|
|
148
|
+
if (meta.functional === true)
|
|
149
|
+
if (OptionPredicator_1.OptionPredicator.functional(project.options) ||
|
|
150
|
+
meta.size() !== 1)
|
|
151
|
+
add(true, typescript_1.default.factory.createStringLiteral("function"), ValueFactory_1.ValueFactory.TYPEOF(input));
|
|
152
|
+
else
|
|
153
|
+
binaries.push({
|
|
154
|
+
combined: false,
|
|
155
|
+
expression: config.success,
|
|
156
|
+
});
|
|
150
157
|
try {
|
|
151
|
-
for (var
|
|
152
|
-
var constant =
|
|
158
|
+
for (var _f = __values(meta.constants), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
159
|
+
var constant = _g.value;
|
|
153
160
|
try {
|
|
154
|
-
for (var
|
|
155
|
-
var val =
|
|
161
|
+
for (var _h = (e_2 = void 0, __values(constant.values)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
162
|
+
var val = _j.value;
|
|
156
163
|
add(true, getConstantValue(val));
|
|
157
164
|
}
|
|
158
165
|
}
|
|
159
166
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
160
167
|
finally {
|
|
161
168
|
try {
|
|
162
|
-
if (
|
|
169
|
+
if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
|
|
163
170
|
}
|
|
164
171
|
finally { if (e_2) throw e_2.error; }
|
|
165
172
|
}
|
|
@@ -168,17 +175,23 @@ var CheckerProgrammer;
|
|
|
168
175
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
169
176
|
finally {
|
|
170
177
|
try {
|
|
171
|
-
if (
|
|
178
|
+
if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
|
|
172
179
|
}
|
|
173
180
|
finally { if (e_1) throw e_1.error; }
|
|
174
181
|
}
|
|
175
182
|
try {
|
|
176
|
-
for (var
|
|
177
|
-
var type =
|
|
183
|
+
for (var _k = __values(meta.atomics), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
184
|
+
var type = _l.value;
|
|
178
185
|
if (type === "number")
|
|
179
|
-
binaries.push(
|
|
186
|
+
binaries.push({
|
|
187
|
+
expression: (0, check_number_1.check_number)(project, config.numeric)(input, tags),
|
|
188
|
+
combined: false,
|
|
189
|
+
});
|
|
180
190
|
else if (type === "string")
|
|
181
|
-
binaries.push(
|
|
191
|
+
binaries.push({
|
|
192
|
+
expression: (0, check_string_1.check_string)(importer)(input, tags),
|
|
193
|
+
combined: false,
|
|
194
|
+
});
|
|
182
195
|
else
|
|
183
196
|
add(true, typescript_1.default.factory.createStringLiteral(type), ValueFactory_1.ValueFactory.TYPEOF(input));
|
|
184
197
|
}
|
|
@@ -186,63 +199,201 @@ var CheckerProgrammer;
|
|
|
186
199
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
187
200
|
finally {
|
|
188
201
|
try {
|
|
189
|
-
if (
|
|
202
|
+
if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
|
|
190
203
|
}
|
|
191
204
|
finally { if (e_3) throw e_3.error; }
|
|
192
205
|
}
|
|
193
206
|
if (meta.templates.length)
|
|
194
|
-
binaries.push(
|
|
207
|
+
binaries.push({
|
|
208
|
+
expression: (0, check_template_1.check_template)(importer)(input, meta.templates, tags),
|
|
209
|
+
combined: false,
|
|
210
|
+
});
|
|
195
211
|
if (meta.tuples.length > 0) {
|
|
196
212
|
var inner = [];
|
|
197
213
|
try {
|
|
198
|
-
for (var
|
|
199
|
-
var tuple =
|
|
200
|
-
inner.push(decode_tuple(project, config, importer)(input, tuple, explore, tags));
|
|
214
|
+
for (var _m = __values(meta.tuples), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
215
|
+
var tuple = _o.value;
|
|
216
|
+
inner.push(decode_tuple(project, config, importer, checkTupleLength)(input, tuple, explore, tags));
|
|
201
217
|
}
|
|
202
218
|
}
|
|
203
219
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
204
220
|
finally {
|
|
205
221
|
try {
|
|
206
|
-
if (
|
|
222
|
+
if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
|
|
207
223
|
}
|
|
208
224
|
finally { if (e_4) throw e_4.error; }
|
|
209
225
|
}
|
|
210
|
-
binaries.push(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
226
|
+
binaries.push({
|
|
227
|
+
expression: config.combiner(explore)("and")(input, __spreadArray(__spreadArray([], __read((checkTupleLength
|
|
228
|
+
? [
|
|
229
|
+
{
|
|
230
|
+
expression: ExpressionFactory_1.ExpressionFactory.isArray(input),
|
|
231
|
+
combined: false,
|
|
232
|
+
},
|
|
233
|
+
]
|
|
234
|
+
: [])), false), __read(inner.map(function (expression) { return ({
|
|
235
|
+
expression: expression,
|
|
236
|
+
combined: true,
|
|
237
|
+
}); })), false), meta.getName()),
|
|
238
|
+
combined: true,
|
|
239
|
+
});
|
|
215
240
|
}
|
|
216
241
|
if (meta.arrays.length > 0)
|
|
217
|
-
|
|
242
|
+
if (meta.arrays.every(function (elem) { return elem.any; }))
|
|
243
|
+
binaries.push({
|
|
244
|
+
expression: (0, check_array_1.check_array)(input, tags),
|
|
245
|
+
combined: false,
|
|
246
|
+
});
|
|
247
|
+
else
|
|
248
|
+
binaries.push({
|
|
249
|
+
expression: config.combiner(explore)("and")(input, __spreadArray(__spreadArray([], __read((checkTupleLength
|
|
250
|
+
? [
|
|
251
|
+
{
|
|
252
|
+
expression: (0, check_array_1.check_array)(input, tags),
|
|
253
|
+
combined: false,
|
|
254
|
+
},
|
|
255
|
+
]
|
|
256
|
+
: [])), false), [
|
|
257
|
+
{
|
|
258
|
+
expression: explore_array(project, config, importer)(input, meta.arrays, __assign(__assign({}, explore), { from: "array" }), tags),
|
|
259
|
+
combined: true,
|
|
260
|
+
},
|
|
261
|
+
], false), meta.getName()),
|
|
262
|
+
combined: true,
|
|
263
|
+
});
|
|
218
264
|
if (meta.objects.length > 0)
|
|
219
|
-
binaries.push(
|
|
220
|
-
|
|
265
|
+
binaries.push({
|
|
266
|
+
expression: config.combiner(explore)("and")(input, [
|
|
267
|
+
{
|
|
268
|
+
expression: ExpressionFactory_1.ExpressionFactory.isObject(input, true),
|
|
269
|
+
combined: false,
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
expression: explore_objects(config)(input, meta, __assign(__assign({}, explore), { from: "object" })),
|
|
273
|
+
combined: true,
|
|
274
|
+
},
|
|
275
|
+
], meta.getName()),
|
|
276
|
+
combined: true,
|
|
277
|
+
});
|
|
278
|
+
try {
|
|
279
|
+
for (var _p = __values(meta.natives), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
280
|
+
var native = _q.value;
|
|
281
|
+
binaries.push({
|
|
282
|
+
expression: (0, check_native_1.check_native)(native)(input),
|
|
283
|
+
combined: false,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
288
|
+
finally {
|
|
289
|
+
try {
|
|
290
|
+
if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
|
|
291
|
+
}
|
|
292
|
+
finally { if (e_5) throw e_5.error; }
|
|
293
|
+
}
|
|
294
|
+
if (meta.sets.length)
|
|
295
|
+
if (meta.sets.every(function (elem) { return elem.any; }))
|
|
296
|
+
binaries.push({
|
|
297
|
+
combined: false,
|
|
298
|
+
expression: (0, check_native_1.check_native)("Set")(input),
|
|
299
|
+
});
|
|
300
|
+
else
|
|
301
|
+
binaries.push({
|
|
302
|
+
combined: true,
|
|
303
|
+
expression: config.combiner(explore)("and")(input, [
|
|
304
|
+
{
|
|
305
|
+
combined: false,
|
|
306
|
+
expression: (0, check_native_1.check_native)("Set")(input),
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
combined: true,
|
|
310
|
+
expression: explore_set(project, config, importer)(input, meta.sets, __assign(__assign({}, explore), { from: "array" }), []),
|
|
311
|
+
},
|
|
312
|
+
], meta.getName()),
|
|
313
|
+
});
|
|
314
|
+
if (meta.maps.length)
|
|
315
|
+
if (meta.maps.every(function (elem) { return elem.key.any && elem.value.any; }))
|
|
316
|
+
binaries.push({
|
|
317
|
+
expression: (0, check_native_1.check_native)("Map")(input),
|
|
318
|
+
combined: false,
|
|
319
|
+
});
|
|
320
|
+
else
|
|
321
|
+
binaries.push({
|
|
322
|
+
combined: true,
|
|
323
|
+
expression: config.combiner(explore)("and")(input, [
|
|
324
|
+
{
|
|
325
|
+
combined: false,
|
|
326
|
+
expression: (0, check_native_1.check_native)("Map")(input),
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
combined: true,
|
|
330
|
+
expression: explore_map(project, config, importer)(input, meta.maps.map(function (m) { return [m.key, m.value]; }), __assign(__assign({}, explore), { from: "array" }), []),
|
|
331
|
+
},
|
|
332
|
+
], meta.getName()),
|
|
333
|
+
});
|
|
334
|
+
return top.length && binaries.length
|
|
221
335
|
? config.combiner(explore)("and")(input, __spreadArray(__spreadArray([], __read(top), false), [
|
|
222
|
-
|
|
336
|
+
{
|
|
337
|
+
expression: config.combiner(explore)("or")(input, binaries, meta.getName()),
|
|
338
|
+
combined: true,
|
|
339
|
+
},
|
|
223
340
|
], false), meta.getName())
|
|
224
|
-
:
|
|
341
|
+
: binaries.length
|
|
342
|
+
? config.combiner(explore)("or")(input, binaries, meta.getName())
|
|
343
|
+
: config.success;
|
|
225
344
|
};
|
|
226
345
|
}
|
|
227
346
|
CheckerProgrammer.decode = decode;
|
|
228
|
-
function decode_tuple(project, config, importer) {
|
|
347
|
+
function decode_tuple(project, config, importer, checkLength) {
|
|
229
348
|
return function (input, tuple, explore, tagList) {
|
|
230
|
-
var
|
|
231
|
-
|
|
349
|
+
var binaries = tuple
|
|
350
|
+
.filter(function (meta) { return meta.rest === null; })
|
|
351
|
+
.map(function (meta, index) {
|
|
232
352
|
return decode(project, config, importer)(typescript_1.default.factory.createElementAccessExpression(input, index), meta, __assign(__assign({}, explore), { from: "array", postfix: explore.postfix.length
|
|
233
353
|
? "".concat(explore.postfix.slice(0, -1), "[").concat(index, "]\"")
|
|
234
354
|
: "[".concat(index, "]") }), tagList);
|
|
235
355
|
});
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
356
|
+
var rest = tuple.length && tuple[tuple.length - 1].rest !== null
|
|
357
|
+
? decode(project, config, importer, false)(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(input, "slice"), undefined, [
|
|
358
|
+
typescript_1.default.factory.createNumericLiteral(tuple.length - 1),
|
|
359
|
+
]), (function () {
|
|
360
|
+
var wrapper = Metadata_1.Metadata.initialize();
|
|
361
|
+
wrapper.arrays.push(tuple[tuple.length - 1].rest);
|
|
362
|
+
return wrapper;
|
|
363
|
+
})(), __assign(__assign({}, explore), { start: tuple.length - 1 }), tagList)
|
|
364
|
+
: null;
|
|
365
|
+
return config.combiner(explore)("and")(input, __spreadArray(__spreadArray(__spreadArray([], __read((checkLength && rest === null
|
|
366
|
+
? [
|
|
367
|
+
{
|
|
368
|
+
combined: false,
|
|
369
|
+
expression: typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createPropertyAccessExpression(input, "length"), typescript_1.default.factory.createNumericLiteral(tuple.length)),
|
|
370
|
+
},
|
|
371
|
+
]
|
|
372
|
+
: [])), false), __read((config.joiner.tuple
|
|
373
|
+
? [
|
|
374
|
+
{
|
|
375
|
+
expression: config.joiner.tuple(binaries),
|
|
376
|
+
combined: true,
|
|
377
|
+
},
|
|
378
|
+
]
|
|
379
|
+
: binaries.map(function (expression) { return ({
|
|
380
|
+
expression: expression,
|
|
381
|
+
combined: true,
|
|
382
|
+
}); }))), false), __read((rest !== null
|
|
383
|
+
? [
|
|
384
|
+
{
|
|
385
|
+
expression: rest,
|
|
386
|
+
combined: true,
|
|
387
|
+
},
|
|
388
|
+
]
|
|
389
|
+
: [])), false), "[".concat(tuple.map(function (t) { return t.getName(); }).join(", "), "]"));
|
|
240
390
|
};
|
|
241
391
|
}
|
|
242
|
-
function decode_array(project, config, importer) {
|
|
392
|
+
function decode_array(project, config, importer, checkTupleLength) {
|
|
243
393
|
return FeatureProgrammer_1.FeatureProgrammer.decode_array({
|
|
244
394
|
trace: config.trace,
|
|
245
|
-
|
|
395
|
+
path: config.path,
|
|
396
|
+
decoder: decode(project, config, importer, checkTupleLength),
|
|
246
397
|
}, importer, config.joiner.array);
|
|
247
398
|
}
|
|
248
399
|
function decode_object(config) {
|
|
@@ -254,14 +405,65 @@ var CheckerProgrammer;
|
|
|
254
405
|
}
|
|
255
406
|
CheckerProgrammer.decode_object = decode_object;
|
|
256
407
|
var explore_array = function (project, config, importer) {
|
|
257
|
-
return UnionExplorer_1.UnionExplorer.array(
|
|
408
|
+
return UnionExplorer_1.UnionExplorer.array({
|
|
409
|
+
checker: decode(project, config, importer),
|
|
410
|
+
decoder: decode_array(project, config, importer, true),
|
|
411
|
+
empty: config.success,
|
|
412
|
+
success: config.success,
|
|
413
|
+
failure: function (input, expected, explore) {
|
|
414
|
+
return typescript_1.default.factory.createReturnStatement(config.joiner.failure(input, expected, explore));
|
|
415
|
+
},
|
|
416
|
+
});
|
|
417
|
+
};
|
|
418
|
+
var explore_set = function (project, config, importer) {
|
|
419
|
+
return UnionExplorer_1.UnionExplorer.set({
|
|
420
|
+
checker: decode(project, config, importer),
|
|
421
|
+
decoder: decode_array(project, config, importer, true),
|
|
422
|
+
empty: config.success,
|
|
423
|
+
success: config.success,
|
|
424
|
+
failure: function (input, expected, explore) {
|
|
425
|
+
return typescript_1.default.factory.createReturnStatement(config.joiner.failure(input, expected, explore));
|
|
426
|
+
},
|
|
427
|
+
});
|
|
428
|
+
};
|
|
429
|
+
var explore_map = function (project, config, importer) {
|
|
430
|
+
return UnionExplorer_1.UnionExplorer.map({
|
|
431
|
+
checker: function (input, entry, explore) {
|
|
432
|
+
var func = decode(project, config, importer);
|
|
433
|
+
return typescript_1.default.factory.createLogicalAnd(func(typescript_1.default.factory.createElementAccessExpression(input, 0), entry[0], __assign(__assign({}, explore), { postfix: "".concat(explore.postfix, "[0]") }), []), func(typescript_1.default.factory.createElementAccessExpression(input, 1), entry[1], __assign(__assign({}, explore), { postfix: "".concat(explore.postfix, "[1]") }), []));
|
|
434
|
+
},
|
|
435
|
+
decoder: function (input, target, explore) {
|
|
436
|
+
return decode_array(project, config, importer, false)(input, Metadata_1.Metadata.create({
|
|
437
|
+
any: false,
|
|
438
|
+
nullable: false,
|
|
439
|
+
required: true,
|
|
440
|
+
functional: false,
|
|
441
|
+
resolved: null,
|
|
442
|
+
constants: [],
|
|
443
|
+
atomics: [],
|
|
444
|
+
templates: [],
|
|
445
|
+
rest: null,
|
|
446
|
+
arrays: [],
|
|
447
|
+
tuples: [target],
|
|
448
|
+
objects: [],
|
|
449
|
+
natives: [],
|
|
450
|
+
sets: [],
|
|
451
|
+
maps: [],
|
|
452
|
+
}), explore, []);
|
|
453
|
+
},
|
|
454
|
+
empty: config.success,
|
|
455
|
+
success: config.success,
|
|
456
|
+
failure: function (input, expected, explore) {
|
|
457
|
+
return typescript_1.default.factory.createReturnStatement(config.joiner.failure(input, expected, explore));
|
|
458
|
+
},
|
|
459
|
+
});
|
|
258
460
|
};
|
|
259
461
|
var explore_objects = function (config) {
|
|
260
462
|
var objector = decode_object(config);
|
|
261
463
|
return function (input, meta, explore) {
|
|
262
464
|
if (meta.objects.length === 1)
|
|
263
465
|
return objector(input, meta.objects[0], explore);
|
|
264
|
-
return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("".concat(config.unioners
|
|
466
|
+
return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("".concat(config.unioners).concat(meta.union_index)), undefined, FeatureProgrammer_1.FeatureProgrammer.get_object_arguments(config)(explore)(input));
|
|
265
467
|
};
|
|
266
468
|
};
|
|
267
469
|
})(CheckerProgrammer = exports.CheckerProgrammer || (exports.CheckerProgrammer = {}));
|
|
@@ -272,7 +474,10 @@ var create_add = function (binaries) {
|
|
|
272
474
|
var factory = exact
|
|
273
475
|
? typescript_1.default.factory.createStrictEquality
|
|
274
476
|
: typescript_1.default.factory.createStrictInequality;
|
|
275
|
-
binaries.push(
|
|
477
|
+
binaries.push({
|
|
478
|
+
expression: factory(left, right),
|
|
479
|
+
combined: false,
|
|
480
|
+
});
|
|
276
481
|
};
|
|
277
482
|
};
|
|
278
483
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckerProgrammer.js","sourceRoot":"","sources":["../../src/programmers/CheckerProgrammer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CheckerProgrammer.js","sourceRoot":"","sources":["../../src/programmers/CheckerProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare namespace FeatureProgrammer {
|
|
|
10
10
|
interface IConfig {
|
|
11
11
|
functors: string;
|
|
12
12
|
unioners: string;
|
|
13
|
+
path: boolean;
|
|
13
14
|
trace: boolean;
|
|
14
15
|
initializer: Initializer;
|
|
15
16
|
decoder: Decoder<Metadata>;
|
|
@@ -22,11 +23,14 @@ export declare namespace FeatureProgrammer {
|
|
|
22
23
|
decoder: Decoder<MetadataObject>;
|
|
23
24
|
joiner: ObjectJoiner;
|
|
24
25
|
unionizer: Decoder<MetadataObject[]>;
|
|
25
|
-
failure: (
|
|
26
|
+
failure: (value: ts.Expression, expected: string, explore?: IExplore) => ts.Statement;
|
|
27
|
+
is?: (exp: ts.Expression) => ts.Expression;
|
|
28
|
+
required?: (exp: ts.Expression) => ts.Expression;
|
|
29
|
+
full?: (condition: ts.Expression) => (input: ts.Expression, expected: string, explore: IExplore) => ts.Expression;
|
|
26
30
|
}
|
|
27
31
|
interface IGenerator {
|
|
28
|
-
functors(col: MetadataCollection): ts.
|
|
29
|
-
unioners(col: MetadataCollection): ts.
|
|
32
|
+
functors(col: MetadataCollection): ts.VariableStatement[];
|
|
33
|
+
unioners(col: MetadataCollection): ts.VariableStatement[];
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
interface IExplore {
|
|
@@ -34,6 +38,7 @@ export declare namespace FeatureProgrammer {
|
|
|
34
38
|
source: "top" | "object";
|
|
35
39
|
from: "top" | "array" | "object";
|
|
36
40
|
postfix: string;
|
|
41
|
+
start?: number;
|
|
37
42
|
}
|
|
38
43
|
interface Initializer {
|
|
39
44
|
(project: IProject, type: ts.Type): [MetadataCollection, Metadata];
|
|
@@ -44,10 +49,10 @@ export declare namespace FeatureProgrammer {
|
|
|
44
49
|
interface ObjectJoiner {
|
|
45
50
|
(entries: IExpressionEntry[], parent: MetadataObject): ts.ConciseBody;
|
|
46
51
|
}
|
|
47
|
-
const generate: (project: IProject, config: IConfig, addition: (collection: MetadataCollection) => ts.Statement[] | undefined) => (type: ts.Type) => ts.ArrowFunction;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
function decode_array(config: Pick<IConfig, "trace" | "decoder">, importer: FunctionImporter, combiner: (input: ts.Expression, arrow: ts.ArrowFunction, tags: IMetadataTag[]) => ts.Expression): (input: ts.Expression, meta: Metadata, explore: IExplore, tags: IMetadataTag[]) => ts.Expression;
|
|
51
|
-
const decode_object: (config: Pick<IConfig, "trace" | "functors">) => (input: ts.Expression, obj: MetadataObject, explore: IExplore) => ts.CallExpression;
|
|
52
|
-
const get_object_arguments: (
|
|
52
|
+
const generate: (project: IProject, config: IConfig, importer: FunctionImporter, addition: (collection: MetadataCollection) => ts.Statement[] | undefined) => (type: ts.Type) => ts.ArrowFunction;
|
|
53
|
+
const generate_functors: (config: IConfig, importer: FunctionImporter) => (collection: MetadataCollection) => ts.VariableStatement[];
|
|
54
|
+
const generate_unioners: (config: IConfig) => (collection: MetadataCollection) => ts.VariableStatement[];
|
|
55
|
+
function decode_array(config: Pick<IConfig, "trace" | "path" | "decoder">, importer: FunctionImporter, combiner: (input: ts.Expression, arrow: ts.ArrowFunction, tags: IMetadataTag[]) => ts.Expression): (input: ts.Expression, meta: Metadata, explore: IExplore, tags: IMetadataTag[]) => ts.Expression;
|
|
56
|
+
const decode_object: (config: Pick<IConfig, "trace" | "path" | "functors">) => (input: ts.Expression, obj: MetadataObject, explore: IExplore) => ts.CallExpression;
|
|
57
|
+
const get_object_arguments: (config: Pick<IConfig, "path" | "trace">) => (explore: FeatureProgrammer.IExplore) => (input: ts.Expression) => ts.Expression[];
|
|
53
58
|
}
|