typia 7.0.0-dev.20241003 → 7.0.0-dev.20241005
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/factories/IdentifierFactory.d.ts +1 -1
- package/lib/functional/Namespace/index.d.ts +0 -1
- package/lib/functional/Namespace/index.js +1 -2
- package/lib/functional/Namespace/index.js.map +1 -1
- package/lib/functional.d.ts +18 -54
- package/lib/functional.js +18 -75
- package/lib/functional.js.map +1 -1
- package/lib/http.d.ts +39 -91
- package/lib/http.js +26 -121
- package/lib/http.js.map +1 -1
- package/lib/index.mjs +251 -1498
- package/lib/index.mjs.map +1 -1
- package/lib/internal/$ProtobufReader.d.ts +35 -0
- package/lib/internal/$ProtobufReader.js +166 -0
- package/lib/internal/$ProtobufReader.js.map +1 -0
- package/lib/internal/$ProtobufSizer.d.ts +36 -0
- package/lib/internal/$ProtobufSizer.js +125 -0
- package/lib/internal/$ProtobufSizer.js.map +1 -0
- package/lib/internal/$ProtobufWriter.d.ts +45 -0
- package/lib/internal/$ProtobufWriter.js +104 -0
- package/lib/internal/$ProtobufWriter.js.map +1 -0
- package/lib/internal/$accessExpressionAsString.d.ts +1 -0
- package/lib/internal/$accessExpressionAsString.js +50 -0
- package/lib/internal/$accessExpressionAsString.js.map +1 -0
- package/lib/internal/$assertGuard.d.ts +2 -0
- package/lib/internal/$assertGuard.js +15 -0
- package/lib/internal/$assertGuard.js.map +1 -0
- package/lib/internal/$functionalTypeGuardErrorFactory.d.ts +2 -0
- package/lib/internal/$functionalTypeGuardErrorFactory.js +9 -0
- package/lib/internal/$functionalTypeGuardErrorFactory.js.map +1 -0
- package/lib/internal/$httpFormDataReadArray.d.ts +1 -0
- package/lib/internal/$httpFormDataReadArray.js +6 -0
- package/lib/internal/$httpFormDataReadArray.js.map +1 -0
- package/lib/internal/$httpFormDataReadBigint.d.ts +1 -0
- package/lib/internal/$httpFormDataReadBigint.js +22 -0
- package/lib/internal/$httpFormDataReadBigint.js.map +1 -0
- package/lib/internal/$httpFormDataReadBlob.d.ts +1 -0
- package/lib/internal/$httpFormDataReadBlob.js +14 -0
- package/lib/internal/$httpFormDataReadBlob.js.map +1 -0
- package/lib/internal/$httpFormDataReadBoolean.d.ts +1 -0
- package/lib/internal/$httpFormDataReadBoolean.js +20 -0
- package/lib/internal/$httpFormDataReadBoolean.js.map +1 -0
- package/lib/internal/$httpFormDataReadFile.d.ts +1 -0
- package/lib/internal/$httpFormDataReadFile.js +14 -0
- package/lib/internal/$httpFormDataReadFile.js.map +1 -0
- package/lib/internal/$httpFormDataReadNumber.d.ts +1 -0
- package/lib/internal/$httpFormDataReadNumber.js +18 -0
- package/lib/internal/$httpFormDataReadNumber.js.map +1 -0
- package/lib/internal/$httpFormDataReadString.d.ts +1 -0
- package/lib/internal/$httpFormDataReadString.js +14 -0
- package/lib/internal/$httpFormDataReadString.js.map +1 -0
- package/lib/internal/$httpHeaderReadBigint.d.ts +1 -0
- package/lib/internal/$httpHeaderReadBigint.js +16 -0
- package/lib/internal/$httpHeaderReadBigint.js.map +1 -0
- package/lib/internal/$httpHeaderReadBoolean.d.ts +1 -0
- package/lib/internal/$httpHeaderReadBoolean.js +14 -0
- package/lib/internal/$httpHeaderReadBoolean.js.map +1 -0
- package/lib/internal/$httpHeaderReadNumber.d.ts +1 -0
- package/lib/internal/$httpHeaderReadNumber.js +12 -0
- package/lib/internal/$httpHeaderReadNumber.js.map +1 -0
- package/lib/internal/$httpParameterBigint.d.ts +1 -0
- package/lib/internal/$httpParameterBigint.js +16 -0
- package/lib/internal/$httpParameterBigint.js.map +1 -0
- package/lib/internal/$httpParameterBoolean.d.ts +1 -0
- package/lib/internal/$httpParameterBoolean.js +14 -0
- package/lib/internal/$httpParameterBoolean.js.map +1 -0
- package/lib/internal/$httpParameterNumber.d.ts +1 -0
- package/lib/internal/$httpParameterNumber.js +12 -0
- package/lib/internal/$httpParameterNumber.js.map +1 -0
- package/lib/internal/$httpParameterString.d.ts +1 -0
- package/lib/internal/$httpParameterString.js +8 -0
- package/lib/internal/$httpParameterString.js.map +1 -0
- package/lib/internal/$httpQueryParseURLSearchParams.d.ts +1 -0
- package/lib/internal/$httpQueryParseURLSearchParams.js +13 -0
- package/lib/internal/$httpQueryParseURLSearchParams.js.map +1 -0
- package/lib/internal/$httpQueryReadArray.d.ts +1 -0
- package/lib/internal/$httpQueryReadArray.js +6 -0
- package/lib/internal/$httpQueryReadArray.js.map +1 -0
- package/lib/internal/$httpQueryReadBigint.d.ts +1 -0
- package/lib/internal/$httpQueryReadBigint.js +16 -0
- package/lib/internal/$httpQueryReadBigint.js.map +1 -0
- package/lib/internal/$httpQueryReadBoolean.d.ts +1 -0
- package/lib/internal/$httpQueryReadBoolean.js +18 -0
- package/lib/internal/$httpQueryReadBoolean.js.map +1 -0
- package/lib/internal/$httpQueryReadNumber.d.ts +1 -0
- package/lib/internal/$httpQueryReadNumber.js +12 -0
- package/lib/internal/$httpQueryReadNumber.js.map +1 -0
- package/lib/internal/$httpQueryReadString.d.ts +1 -0
- package/lib/internal/$httpQueryReadString.js +8 -0
- package/lib/internal/$httpQueryReadString.js.map +1 -0
- package/lib/internal/$isBetween.d.ts +1 -0
- package/lib/internal/$isBetween.js +8 -0
- package/lib/internal/$isBetween.js.map +1 -0
- package/lib/internal/$isBigintString.d.ts +1 -0
- package/lib/internal/$isBigintString.js +14 -0
- package/lib/internal/$isBigintString.js.map +1 -0
- package/lib/internal/$jsonStringifyNumber.d.ts +1 -0
- package/lib/internal/$jsonStringifyNumber.js +16 -0
- package/lib/internal/$jsonStringifyNumber.js.map +1 -0
- package/lib/internal/$jsonStringifyRest.d.ts +1 -0
- package/lib/internal/$jsonStringifyRest.js +8 -0
- package/lib/internal/$jsonStringifyRest.js.map +1 -0
- package/lib/internal/$jsonStringifyString.d.ts +1 -0
- package/lib/internal/$jsonStringifyString.js +43 -0
- package/lib/internal/$jsonStringifyString.js.map +1 -0
- package/lib/internal/$jsonStringifyTail.d.ts +1 -0
- package/lib/internal/$jsonStringifyTail.js +8 -0
- package/lib/internal/$jsonStringifyTail.js.map +1 -0
- package/lib/internal/$llmApplicationFinalize.d.ts +2 -0
- package/lib/internal/$llmApplicationFinalize.js +42 -0
- package/lib/internal/$llmApplicationFinalize.js.map +1 -0
- package/lib/internal/$miscCloneAny.d.ts +2 -0
- package/lib/internal/$miscCloneAny.js +100 -0
- package/lib/internal/$miscCloneAny.js.map +1 -0
- package/lib/internal/$notationAny.d.ts +1 -0
- package/lib/internal/$notationAny.js +60 -0
- package/lib/internal/$notationAny.js.map +1 -0
- package/lib/internal/$notationCamel.d.ts +1 -0
- package/lib/internal/$notationCamel.js +18 -0
- package/lib/internal/$notationCamel.js.map +1 -0
- package/lib/internal/$notationPascal.d.ts +1 -0
- package/lib/internal/$notationPascal.js +12 -0
- package/lib/internal/$notationPascal.js.map +1 -0
- package/lib/internal/$notationSnake.d.ts +1 -0
- package/lib/internal/$notationSnake.js +51 -0
- package/lib/internal/$notationSnake.js.map +1 -0
- package/lib/internal/$randomArray.d.ts +4 -0
- package/lib/internal/$randomArray.js +19 -0
- package/lib/internal/$randomArray.js.map +1 -0
- package/lib/internal/$randomBigint.d.ts +2 -0
- package/lib/internal/$randomBigint.js +14 -0
- package/lib/internal/$randomBigint.js.map +1 -0
- package/lib/internal/$randomBoolean.d.ts +1 -0
- package/lib/internal/$randomBoolean.js +6 -0
- package/lib/internal/$randomBoolean.js.map +1 -0
- package/lib/internal/$randomByte.d.ts +1 -0
- package/lib/internal/$randomByte.js +7 -0
- package/lib/internal/$randomByte.js.map +1 -0
- package/lib/internal/$randomFormatDate.d.ts +4 -0
- package/lib/internal/$randomFormatDate.js +17 -0
- package/lib/internal/$randomFormatDate.js.map +1 -0
- package/lib/internal/$randomFormatDatetime.d.ts +4 -0
- package/lib/internal/$randomFormatDatetime.js +15 -0
- package/lib/internal/$randomFormatDatetime.js.map +1 -0
- package/lib/internal/$randomFormatDuration.d.ts +1 -0
- package/lib/internal/$randomFormatDuration.js +55 -0
- package/lib/internal/$randomFormatDuration.js.map +1 -0
- package/lib/internal/$randomFormatEmail.d.ts +1 -0
- package/lib/internal/$randomFormatEmail.js +16 -0
- package/lib/internal/$randomFormatEmail.js.map +1 -0
- package/lib/internal/$randomFormatHostname.d.ts +1 -0
- package/lib/internal/$randomFormatHostname.js +10 -0
- package/lib/internal/$randomFormatHostname.js.map +1 -0
- package/lib/internal/$randomFormatIdnEmail.d.ts +1 -0
- package/lib/internal/$randomFormatIdnEmail.js +7 -0
- package/lib/internal/$randomFormatIdnEmail.js.map +1 -0
- package/lib/internal/$randomFormatIdnHostname.d.ts +1 -0
- package/lib/internal/$randomFormatIdnHostname.js +7 -0
- package/lib/internal/$randomFormatIdnHostname.js.map +1 -0
- package/lib/internal/$randomFormatIpv4.d.ts +1 -0
- package/lib/internal/$randomFormatIpv4.js +15 -0
- package/lib/internal/$randomFormatIpv4.js.map +1 -0
- package/lib/internal/$randomFormatIpv6.d.ts +1 -0
- package/lib/internal/$randomFormatIpv6.js +15 -0
- package/lib/internal/$randomFormatIpv6.js.map +1 -0
- package/lib/internal/$randomFormatIri.d.ts +1 -0
- package/lib/internal/$randomFormatIri.js +7 -0
- package/lib/internal/$randomFormatIri.js.map +1 -0
- package/lib/internal/$randomFormatIriReference.d.ts +1 -0
- package/lib/internal/$randomFormatIriReference.js +7 -0
- package/lib/internal/$randomFormatIriReference.js.map +1 -0
- package/lib/internal/$randomFormatJsonPointer.d.ts +1 -0
- package/lib/internal/$randomFormatJsonPointer.js +12 -0
- package/lib/internal/$randomFormatJsonPointer.js.map +1 -0
- package/lib/internal/$randomFormatPassword.d.ts +1 -0
- package/lib/internal/$randomFormatPassword.js +13 -0
- package/lib/internal/$randomFormatPassword.js.map +1 -0
- package/lib/internal/$randomFormatRegex.d.ts +1 -0
- package/lib/internal/$randomFormatRegex.js +7 -0
- package/lib/internal/$randomFormatRegex.js.map +1 -0
- package/lib/internal/$randomFormatRelativeJsonPointer.d.ts +1 -0
- package/lib/internal/$randomFormatRelativeJsonPointer.js +13 -0
- package/lib/internal/$randomFormatRelativeJsonPointer.js.map +1 -0
- package/lib/internal/$randomFormatTime.d.ts +1 -0
- package/lib/internal/$randomFormatTime.js +15 -0
- package/lib/internal/$randomFormatTime.js.map +1 -0
- package/lib/internal/$randomFormatUri.d.ts +1 -0
- package/lib/internal/$randomFormatUri.js +7 -0
- package/lib/internal/$randomFormatUri.js.map +1 -0
- package/lib/internal/$randomFormatUriReference.d.ts +1 -0
- package/lib/internal/$randomFormatUriReference.js +7 -0
- package/lib/internal/$randomFormatUriReference.js.map +1 -0
- package/lib/internal/$randomFormatUriTemplate.d.ts +1 -0
- package/lib/internal/$randomFormatUriTemplate.js +7 -0
- package/lib/internal/$randomFormatUriTemplate.js.map +1 -0
- package/lib/internal/$randomFormatUrl.d.ts +1 -0
- package/lib/internal/$randomFormatUrl.js +16 -0
- package/lib/internal/$randomFormatUrl.js.map +1 -0
- package/lib/internal/$randomInteger.d.ts +2 -0
- package/lib/internal/$randomInteger.js +39 -0
- package/lib/internal/$randomInteger.js.map +1 -0
- package/lib/internal/$randomNumber.d.ts +2 -0
- package/lib/internal/$randomNumber.js +56 -0
- package/lib/internal/$randomNumber.js.map +1 -0
- package/lib/internal/$randomPattern.d.ts +1 -0
- package/lib/internal/$randomPattern.js +18 -0
- package/lib/internal/$randomPattern.js.map +1 -0
- package/lib/internal/$randomPick.d.ts +1 -0
- package/lib/internal/$randomPick.js +13 -0
- package/lib/internal/$randomPick.js.map +1 -0
- package/lib/internal/$randomString.d.ts +2 -0
- package/lib/internal/$randomString.js +23 -0
- package/lib/internal/$randomString.js.map +1 -0
- package/lib/internal/$randomUuid.d.ts +1 -0
- package/lib/internal/$randomUuid.js +12 -0
- package/lib/internal/$randomUuid.js.map +1 -0
- package/lib/internal/$throwTypeGuardError.d.ts +2 -0
- package/lib/internal/$throwTypeGuardError.js +9 -0
- package/lib/internal/$throwTypeGuardError.js.map +1 -0
- package/lib/internal/$validateReport.d.ts +2 -0
- package/lib/internal/$validateReport.js +18 -0
- package/lib/internal/$validateReport.js.map +1 -0
- package/lib/internal/private/$__IProtobufWriter.d.ts +15 -0
- package/lib/internal/private/$__IProtobufWriter.js +3 -0
- package/lib/internal/private/$__IProtobufWriter.js.map +1 -0
- package/lib/internal/private/$__notationCapitalize.d.ts +1 -0
- package/lib/internal/private/$__notationCapitalize.js +8 -0
- package/lib/internal/private/$__notationCapitalize.js.map +1 -0
- package/lib/internal/private/$__notationUnsnake.d.ts +4 -0
- package/lib/internal/private/$__notationUnsnake.js +28 -0
- package/lib/internal/private/$__notationUnsnake.js.map +1 -0
- package/lib/json.d.ts +27 -55
- package/lib/json.js +14 -62
- package/lib/json.js.map +1 -1
- package/lib/misc.d.ts +30 -62
- package/lib/misc.js +16 -80
- package/lib/misc.js.map +1 -1
- package/lib/module.d.ts +32 -64
- package/lib/module.js +17 -38
- package/lib/module.js.map +1 -1
- package/lib/notations.d.ts +45 -93
- package/lib/notations.js +24 -114
- package/lib/notations.js.map +1 -1
- package/lib/programmers/AssertProgrammer.d.ts +2 -2
- package/lib/programmers/AssertProgrammer.js +24 -17
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.d.ts +9 -9
- package/lib/programmers/CheckerProgrammer.js +46 -46
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +8 -8
- package/lib/programmers/FeatureProgrammer.js +10 -10
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/ImportProgrammer.d.ts +10 -0
- package/lib/programmers/ImportProgrammer.js +119 -0
- package/lib/programmers/ImportProgrammer.js.map +1 -0
- package/lib/programmers/IsProgrammer.d.ts +6 -6
- package/lib/programmers/IsProgrammer.js +11 -13
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.d.ts +2 -2
- package/lib/programmers/RandomProgrammer.js +63 -63
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.d.ts +2 -2
- package/lib/programmers/ValidateProgrammer.js +9 -10
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +1 -1
- package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +2 -3
- package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +1 -1
- package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +1 -1
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
- package/lib/programmers/helpers/{FunctionImporter.d.ts → FunctionProgrammer.d.ts} +4 -1
- package/lib/programmers/helpers/{FunctionImporter.js → FunctionProgrammer.js} +19 -16
- package/lib/programmers/helpers/FunctionProgrammer.js.map +1 -0
- package/lib/programmers/helpers/StringifyJoinder.d.ts +2 -2
- package/lib/programmers/helpers/StringifyJoinder.js +1 -1
- package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
- package/lib/programmers/helpers/disable_function_programmer_declare.d.ts +2 -0
- package/lib/programmers/helpers/disable_function_programmer_declare.js +19 -0
- package/lib/programmers/helpers/disable_function_programmer_declare.js.map +1 -0
- package/lib/programmers/http/HttpAssertFormDataProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpAssertFormDataProgrammer.js +4 -4
- package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpAssertHeadersProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpAssertHeadersProgrammer.js +4 -4
- package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpAssertQueryProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpAssertQueryProgrammer.js +4 -4
- package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpFormDataProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpFormDataProgrammer.js +13 -12
- package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpHeadersProgrammer.d.ts +3 -3
- package/lib/programmers/http/HttpHeadersProgrammer.js +37 -31
- package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpIsFormDataProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpIsFormDataProgrammer.js +4 -4
- package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpIsHeadersProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpIsHeadersProgrammer.js +4 -4
- package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpIsQueryProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpIsQueryProgrammer.js +4 -4
- package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpParameterProgrammer.js +3 -4
- package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpQueryProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpQueryProgrammer.js +14 -13
- package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpValidateFormDataProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpValidateFormDataProgrammer.js +4 -4
- package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpValidateHeadersProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpValidateHeadersProgrammer.js +4 -4
- package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpValidateQueryProgrammer.d.ts +2 -2
- package/lib/programmers/http/HttpValidateQueryProgrammer.js +4 -4
- package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_key.js +2 -2
- package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_properties.js +1 -2
- package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/check_object.js +0 -1
- package/lib/programmers/internal/check_object.js.map +1 -1
- package/lib/programmers/internal/feature_object_entries.js +3 -2
- package/lib/programmers/internal/feature_object_entries.js.map +1 -1
- package/lib/programmers/json/JsonAssertParseProgrammer.d.ts +2 -2
- package/lib/programmers/json/JsonAssertParseProgrammer.js +4 -4
- package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonAssertStringifyProgrammer.d.ts +2 -2
- package/lib/programmers/json/JsonAssertStringifyProgrammer.js +4 -4
- package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonIsParseProgrammer.d.ts +2 -2
- package/lib/programmers/json/JsonIsParseProgrammer.js +4 -4
- package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonIsStringifyProgrammer.d.ts +2 -2
- package/lib/programmers/json/JsonIsStringifyProgrammer.js +4 -4
- package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.d.ts +2 -2
- package/lib/programmers/json/JsonStringifyProgrammer.js +38 -33
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonValidateParseProgrammer.d.ts +2 -2
- package/lib/programmers/json/JsonValidateParseProgrammer.js +4 -4
- package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonValidateStringifyProgrammer.d.ts +2 -2
- package/lib/programmers/json/JsonValidateStringifyProgrammer.js +4 -4
- package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.d.ts +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.js +11 -11
- package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.d.ts +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js +12 -12
- package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js +4 -4
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscAssertPruneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscAssertPruneProgrammer.js +4 -4
- package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscCloneProgrammer.js +43 -37
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscIsCloneProgrammer.js +4 -4
- package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscIsPruneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscIsPruneProgrammer.js +4 -4
- package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscPruneProgrammer.js +33 -29
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscValidateCloneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js +4 -4
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscValidatePruneProgrammer.d.ts +2 -2
- package/lib/programmers/misc/MiscValidatePruneProgrammer.js +4 -4
- package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationAssertGeneralProgrammer.d.ts +2 -2
- package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +4 -4
- package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +2 -2
- package/lib/programmers/notations/NotationGeneralProgrammer.js +49 -35
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationIsGeneralProgrammer.d.ts +2 -2
- package/lib/programmers/notations/NotationIsGeneralProgrammer.js +4 -4
- package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationValidateGeneralProgrammer.d.ts +2 -2
- package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +4 -4
- package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +4 -4
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +4 -4
- package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +14 -14
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +26 -22
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +4 -4
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +4 -4
- package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +4 -4
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.d.ts +2 -2
- package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +4 -4
- package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
- package/lib/protobuf.d.ts +31 -63
- package/lib/protobuf.js +16 -83
- package/lib/protobuf.js.map +1 -1
- package/lib/reflect.d.ts +2 -4
- package/lib/reflect.js +1 -3
- package/lib/reflect.js.map +1 -1
- package/lib/transformers/FileTransformer.d.ts +1 -1
- package/lib/transformers/FileTransformer.js +36 -2
- package/lib/transformers/FileTransformer.js.map +1 -1
- package/lib/transformers/ITypiaContext.d.ts +2 -0
- package/lib/transformers/features/llm/LlmApplicationTransformer.js +1 -3
- package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
- package/lib/utils/NamingConvention.d.ts +5 -0
- package/lib/utils/NamingConvention.js +102 -0
- package/lib/utils/NamingConvention.js.map +1 -0
- package/lib/utils/StringUtil.d.ts +8 -0
- package/lib/utils/StringUtil.js +19 -0
- package/lib/utils/StringUtil.js.map +1 -0
- package/package.json +2 -2
- package/src/CamelCase.ts +75 -75
- package/src/IRandomGenerator.ts +0 -1
- package/src/PascalCase.ts +71 -71
- package/src/Primitive.ts +92 -92
- package/src/SnakeCase.ts +126 -126
- package/src/factories/ExpressionFactory.ts +164 -164
- package/src/factories/IdentifierFactory.ts +89 -89
- package/src/factories/MetadataTypeTagFactory.ts +385 -385
- package/src/factories/NumericRangeFactory.ts +72 -72
- package/src/factories/TemplateFactory.ts +64 -64
- package/src/functional/$clone.ts +48 -48
- package/src/functional/$throws.ts +10 -10
- package/src/functional/Namespace/index.ts +0 -2
- package/src/functional/Namespace/json.ts +15 -15
- package/src/functional/Namespace/misc.ts +14 -14
- package/src/functional/Namespace/notations.ts +23 -23
- package/src/functional.ts +36 -158
- package/src/http.ts +79 -303
- package/src/internal/$ProtobufReader.ts +194 -0
- package/src/internal/$ProtobufSizer.ts +151 -0
- package/src/internal/$ProtobufWriter.ts +145 -0
- package/src/internal/$accessExpressionAsString.ts +46 -0
- package/src/internal/$assertGuard.ts +13 -0
- package/src/internal/$functionalTypeGuardErrorFactory.ts +4 -0
- package/src/internal/$httpFormDataReadArray.ts +4 -0
- package/src/internal/$httpFormDataReadBigint.ts +18 -0
- package/src/internal/$httpFormDataReadBlob.ts +10 -0
- package/src/internal/$httpFormDataReadBoolean.ts +16 -0
- package/src/internal/$httpFormDataReadFile.ts +10 -0
- package/src/internal/$httpFormDataReadNumber.ts +15 -0
- package/src/internal/$httpFormDataReadString.ts +10 -0
- package/src/internal/$httpHeaderReadBigint.ts +10 -0
- package/src/internal/$httpHeaderReadBoolean.ts +8 -0
- package/src/internal/$httpHeaderReadNumber.ts +7 -0
- package/src/internal/$httpParameterBigint.ts +10 -0
- package/src/internal/$httpParameterBoolean.ts +8 -0
- package/src/internal/$httpParameterNumber.ts +7 -0
- package/src/internal/$httpParameterString.ts +2 -0
- package/src/internal/$httpQueryParseURLSearchParams.ts +10 -0
- package/src/internal/$httpQueryReadArray.ts +4 -0
- package/src/internal/$httpQueryReadBigint.ts +12 -0
- package/src/internal/$httpQueryReadBoolean.ts +14 -0
- package/src/internal/$httpQueryReadNumber.ts +9 -0
- package/src/internal/$httpQueryReadString.ts +4 -0
- package/src/internal/$isBetween.ts +2 -0
- package/src/internal/$isBigintString.ts +8 -0
- package/src/internal/$jsonStringifyNumber.ts +12 -0
- package/src/internal/$jsonStringifyRest.ts +3 -0
- package/src/internal/$jsonStringifyString.ts +43 -0
- package/src/internal/$jsonStringifyTail.ts +2 -0
- package/src/internal/$llmApplicationFinalize.ts +18 -0
- package/src/internal/$miscCloneAny.ts +48 -0
- package/src/internal/$notationAny.ts +37 -0
- package/src/internal/$notationCamel.ts +13 -0
- package/src/internal/$notationPascal.ts +8 -0
- package/src/{utils/NamingConvention/NamingConvention.ts → internal/$notationSnake.ts} +43 -87
- package/src/internal/$randomArray.ts +20 -0
- package/src/internal/$randomBigint.ts +15 -0
- package/src/internal/$randomBoolean.ts +1 -0
- package/src/internal/$randomByte.ts +3 -0
- package/src/internal/$randomFormatDate.ts +17 -0
- package/src/internal/$randomFormatDatetime.ts +15 -0
- package/src/internal/$randomFormatDuration.ts +26 -0
- package/src/internal/$randomFormatEmail.ts +11 -0
- package/src/internal/$randomFormatHostname.ts +6 -0
- package/src/internal/$randomFormatIdnEmail.ts +3 -0
- package/src/internal/$randomFormatIdnHostname.ts +3 -0
- package/src/internal/$randomFormatIpv4.ts +10 -0
- package/src/internal/$randomFormatIpv6.ts +10 -0
- package/src/internal/$randomFormatIri.ts +3 -0
- package/src/internal/$randomFormatIriReference.ts +3 -0
- package/src/internal/$randomFormatJsonPointer.ts +7 -0
- package/src/internal/$randomFormatPassword.ts +8 -0
- package/src/internal/$randomFormatRegex.ts +4 -0
- package/src/internal/$randomFormatRelativeJsonPointer.ts +8 -0
- package/src/internal/$randomFormatTime.ts +13 -0
- package/src/internal/$randomFormatUri.ts +3 -0
- package/src/internal/$randomFormatUriReference.ts +3 -0
- package/src/internal/$randomFormatUriTemplate.ts +3 -0
- package/src/internal/$randomFormatUrl.ts +11 -0
- package/src/internal/$randomInteger.ts +44 -0
- package/src/internal/$randomNumber.ts +71 -0
- package/src/internal/$randomPattern.ts +10 -0
- package/src/internal/$randomPick.ts +8 -0
- package/src/internal/$randomString.ts +24 -0
- package/src/internal/$randomUuid.ts +6 -0
- package/src/internal/$throwTypeGuardError.ts +5 -0
- package/src/internal/$validateReport.ts +13 -0
- package/src/internal/private/$__IProtobufWriter.ts +18 -0
- package/src/internal/private/$__notationCapitalize.ts +2 -0
- package/src/internal/private/$__notationUnsnake.ts +24 -0
- package/src/json.ts +47 -134
- package/src/misc.ts +52 -151
- package/src/module.ts +50 -128
- package/src/notations.ts +76 -269
- package/src/programmers/AssertProgrammer.ts +51 -36
- package/src/programmers/CheckerProgrammer.ts +69 -69
- package/src/programmers/FeatureProgrammer.ts +18 -18
- package/src/programmers/ImportProgrammer.ts +109 -0
- package/src/programmers/IsProgrammer.ts +16 -18
- package/src/programmers/RandomProgrammer.ts +80 -80
- package/src/programmers/ValidateProgrammer.ts +15 -21
- package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +4 -9
- package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +1 -1
- package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +1 -1
- package/src/programmers/helpers/AtomicPredicator.ts +35 -35
- package/src/programmers/helpers/CloneJoiner.ts +143 -143
- package/src/programmers/helpers/{FunctionImporter.ts → FunctionProgrammer.ts} +4 -1
- package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
- package/src/programmers/helpers/NotationJoiner.ts +144 -144
- package/src/programmers/helpers/ProtobufUtil.ts +125 -125
- package/src/programmers/helpers/PruneJoiner.ts +148 -148
- package/src/programmers/helpers/RandomJoiner.ts +162 -162
- package/src/programmers/helpers/StringifyJoinder.ts +115 -114
- package/src/programmers/helpers/StringifyPredicator.ts +13 -13
- package/src/programmers/helpers/UnionExplorer.ts +372 -372
- package/src/programmers/helpers/UnionPredicator.ts +77 -77
- package/src/programmers/helpers/disable_function_programmer_declare.ts +35 -0
- package/src/programmers/http/HttpAssertFormDataProgrammer.ts +5 -5
- package/src/programmers/http/HttpAssertHeadersProgrammer.ts +5 -5
- package/src/programmers/http/HttpAssertQueryProgrammer.ts +5 -5
- package/src/programmers/http/HttpFormDataProgrammer.ts +20 -17
- package/src/programmers/http/HttpHeadersProgrammer.ts +62 -36
- package/src/programmers/http/HttpIsFormDataProgrammer.ts +5 -5
- package/src/programmers/http/HttpIsHeadersProgrammer.ts +5 -5
- package/src/programmers/http/HttpIsQueryProgrammer.ts +5 -5
- package/src/programmers/http/HttpParameterProgrammer.ts +6 -9
- package/src/programmers/http/HttpQueryProgrammer.ts +21 -18
- package/src/programmers/http/HttpValidateFormDataProgrammer.ts +5 -5
- package/src/programmers/http/HttpValidateHeadersProgrammer.ts +5 -5
- package/src/programmers/http/HttpValidateQueryProgrammer.ts +5 -5
- package/src/programmers/internal/application_array.ts +56 -56
- package/src/programmers/internal/application_boolean.ts +25 -25
- package/src/programmers/internal/application_description.ts +12 -12
- package/src/programmers/internal/application_number.ts +25 -25
- package/src/programmers/internal/application_plugin.ts +19 -19
- package/src/programmers/internal/application_string.ts +25 -25
- package/src/programmers/internal/application_templates.ts +64 -64
- package/src/programmers/internal/application_title.ts +20 -20
- package/src/programmers/internal/application_union_discriminator.ts +35 -35
- package/src/programmers/internal/application_v30_native.ts +29 -29
- package/src/programmers/internal/application_v31_alias.ts +47 -47
- package/src/programmers/internal/application_v31_native.ts +25 -25
- package/src/programmers/internal/application_v31_tuple.ts +22 -22
- package/src/programmers/internal/check_dynamic_key.ts +2 -4
- package/src/programmers/internal/check_dynamic_properties.ts +1 -5
- package/src/programmers/internal/check_everything.ts +23 -23
- package/src/programmers/internal/check_native.ts +27 -27
- package/src/programmers/internal/check_object.ts +0 -3
- package/src/programmers/internal/check_template.ts +48 -48
- package/src/programmers/internal/check_union_array_like.ts +334 -334
- package/src/programmers/internal/decode_union_object.ts +116 -116
- package/src/programmers/internal/feature_object_entries.ts +61 -58
- package/src/programmers/internal/metadata_to_pattern.ts +42 -42
- package/src/programmers/internal/postfix_of_tuple.ts +5 -5
- package/src/programmers/internal/prune_object_properties.ts +63 -63
- package/src/programmers/internal/random_custom.ts +39 -39
- package/src/programmers/internal/template_to_pattern.ts +23 -23
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
- package/src/programmers/json/JsonAssertParseProgrammer.ts +5 -5
- package/src/programmers/json/JsonAssertStringifyProgrammer.ts +5 -5
- package/src/programmers/json/JsonIsParseProgrammer.ts +5 -5
- package/src/programmers/json/JsonIsStringifyProgrammer.ts +5 -5
- package/src/programmers/json/JsonStringifyProgrammer.ts +60 -51
- package/src/programmers/json/JsonValidateParseProgrammer.ts +5 -5
- package/src/programmers/json/JsonValidateStringifyProgrammer.ts +5 -5
- package/src/programmers/llm/LlmApplicationProgrammer.ts +12 -12
- package/src/programmers/llm/LlmSchemaProgrammer.ts +14 -12
- package/src/programmers/misc/MiscAssertCloneProgrammer.ts +5 -5
- package/src/programmers/misc/MiscAssertPruneProgrammer.ts +5 -5
- package/src/programmers/misc/MiscCloneProgrammer.ts +63 -53
- package/src/programmers/misc/MiscIsCloneProgrammer.ts +5 -5
- package/src/programmers/misc/MiscIsPruneProgrammer.ts +5 -5
- package/src/programmers/misc/MiscPruneProgrammer.ts +51 -43
- package/src/programmers/misc/MiscValidateCloneProgrammer.ts +5 -5
- package/src/programmers/misc/MiscValidatePruneProgrammer.ts +5 -5
- package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +5 -5
- package/src/programmers/notations/NotationGeneralProgrammer.ts +79 -59
- package/src/programmers/notations/NotationIsGeneralProgrammer.ts +5 -5
- package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +5 -5
- package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +5 -5
- package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +5 -5
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +21 -21
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +41 -32
- package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +5 -5
- package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +5 -5
- package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +5 -5
- package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +5 -5
- package/src/protobuf.ts +51 -182
- package/src/reflect.ts +3 -9
- package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
- package/src/schemas/metadata/MetadataObject.ts +139 -139
- package/src/transformers/FileTransformer.ts +21 -2
- package/src/transformers/ITypiaContext.ts +3 -0
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +1 -6
- package/src/typings/Equal.ts +18 -18
- package/src/typings/IsTuple.ts +9 -9
- package/src/typings/NativeClass.ts +23 -23
- package/src/typings/ValueOf.ts +20 -20
- package/src/utils/MapUtil.ts +14 -14
- package/src/utils/NameEncoder.ts +32 -32
- package/src/utils/NamingConvention.ts +94 -0
- package/src/utils/StringUtil.ts +16 -0
- package/lib/functional/$every.d.ts +0 -2
- package/lib/functional/$every.js +0 -12
- package/lib/functional/$every.js.map +0 -1
- package/lib/programmers/helpers/FunctionImporter.js.map +0 -1
- package/lib/programmers/helpers/disable_function_importer_declare.d.ts +0 -2
- package/lib/programmers/helpers/disable_function_importer_declare.js +0 -19
- package/lib/programmers/helpers/disable_function_importer_declare.js.map +0 -1
- package/lib/utils/NamingConvention/NamingConvention.d.ts +0 -3
- package/lib/utils/NamingConvention/NamingConvention.js +0 -93
- package/lib/utils/NamingConvention/NamingConvention.js.map +0 -1
- package/lib/utils/NamingConvention/index.d.ts +0 -1
- package/lib/utils/NamingConvention/index.js +0 -28
- package/lib/utils/NamingConvention/index.js.map +0 -1
- package/lib/utils/StringUtil/StringUtil.d.ts +0 -6
- package/lib/utils/StringUtil/StringUtil.js +0 -18
- package/lib/utils/StringUtil/StringUtil.js.map +0 -1
- package/lib/utils/StringUtil/index.d.ts +0 -1
- package/lib/utils/StringUtil/index.js +0 -28
- package/lib/utils/StringUtil/index.js.map +0 -1
- package/src/functional/$every.ts +0 -11
- package/src/programmers/helpers/disable_function_importer_declare.ts +0 -33
- package/src/utils/NamingConvention/index.ts +0 -1
- package/src/utils/StringUtil/StringUtil.ts +0 -14
- package/src/utils/StringUtil/index.ts +0 -1
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
4
|
-
|
|
5
|
-
import { FeatureProgrammer } from "../FeatureProgrammer";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export const decode_union_object = (props: {
|
|
11
|
-
checker: (next: {
|
|
12
|
-
input: ts.Expression;
|
|
13
|
-
object: MetadataObject;
|
|
14
|
-
explore: FeatureProgrammer.IExplore;
|
|
15
|
-
}) => ts.Expression;
|
|
16
|
-
decoder: (next: {
|
|
17
|
-
input: ts.Expression;
|
|
18
|
-
object: MetadataObject;
|
|
19
|
-
explore: FeatureProgrammer.IExplore;
|
|
20
|
-
}) => ts.Expression;
|
|
21
|
-
success: (exp: ts.Expression) => ts.Expression;
|
|
22
|
-
escaper: (next: { input: ts.Expression; expected: string }) => ts.Statement;
|
|
23
|
-
objects: MetadataObject[];
|
|
24
|
-
input: ts.Expression;
|
|
25
|
-
explore: FeatureProgrammer.IExplore;
|
|
26
|
-
}): ts.CallExpression =>
|
|
27
|
-
ts.factory.createCallExpression(
|
|
28
|
-
ts.factory.createArrowFunction(
|
|
29
|
-
undefined,
|
|
30
|
-
undefined,
|
|
31
|
-
[],
|
|
32
|
-
undefined,
|
|
33
|
-
undefined,
|
|
34
|
-
iterate({
|
|
35
|
-
escaper: props.escaper,
|
|
36
|
-
input: props.input,
|
|
37
|
-
unions: props.objects.map((object) => ({
|
|
38
|
-
type: "object",
|
|
39
|
-
is: () =>
|
|
40
|
-
props.success(
|
|
41
|
-
props.checker({
|
|
42
|
-
input: props.input,
|
|
43
|
-
explore: props.explore,
|
|
44
|
-
object,
|
|
45
|
-
}),
|
|
46
|
-
),
|
|
47
|
-
value: () =>
|
|
48
|
-
props.decoder({
|
|
49
|
-
input: props.input,
|
|
50
|
-
explore: props.explore,
|
|
51
|
-
object,
|
|
52
|
-
}),
|
|
53
|
-
})),
|
|
54
|
-
expected: `(${props.objects.map((t) => t.name).join(" | ")})`,
|
|
55
|
-
}),
|
|
56
|
-
),
|
|
57
|
-
undefined,
|
|
58
|
-
undefined,
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @internal
|
|
63
|
-
*/
|
|
64
|
-
const iterate = (props: {
|
|
65
|
-
escaper: (next: { input: ts.Expression; expected: string }) => ts.Statement;
|
|
66
|
-
unions: IUnion[];
|
|
67
|
-
expected: string;
|
|
68
|
-
input: ts.Expression;
|
|
69
|
-
}) => {
|
|
70
|
-
interface IBranch {
|
|
71
|
-
condition: null | ts.Expression;
|
|
72
|
-
value: ts.Expression;
|
|
73
|
-
}
|
|
74
|
-
const branches: IBranch[] = [];
|
|
75
|
-
|
|
76
|
-
for (const u of props.unions) {
|
|
77
|
-
const condition: ts.Expression = u.is();
|
|
78
|
-
if (condition.kind === ts.SyntaxKind.TrueKeyword) {
|
|
79
|
-
branches.push({
|
|
80
|
-
condition: null,
|
|
81
|
-
value: u.value(),
|
|
82
|
-
});
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
branches.push({
|
|
86
|
-
condition,
|
|
87
|
-
value: u.value(),
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
if (branches.length === 0)
|
|
91
|
-
return ts.factory.createBlock([props.escaper(props)], true);
|
|
92
|
-
else if (branches.length === 1 && branches[0]!.condition === null)
|
|
93
|
-
return branches[0]!.value;
|
|
94
|
-
|
|
95
|
-
const statements: ts.Statement[] = branches.map((b) =>
|
|
96
|
-
b.condition !== null
|
|
97
|
-
? ts.factory.createIfStatement(
|
|
98
|
-
b.condition,
|
|
99
|
-
ts.factory.createReturnStatement(b.value),
|
|
100
|
-
undefined,
|
|
101
|
-
)
|
|
102
|
-
: ts.factory.createReturnStatement(b.value),
|
|
103
|
-
);
|
|
104
|
-
if (branches.at(-1)!.condition !== null)
|
|
105
|
-
statements.push(props.escaper(props));
|
|
106
|
-
return ts.factory.createBlock(statements, true);
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
|
-
interface IUnion {
|
|
113
|
-
type: string;
|
|
114
|
-
is: () => ts.Expression;
|
|
115
|
-
value: () => ts.Expression;
|
|
116
|
-
}
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
4
|
+
|
|
5
|
+
import { FeatureProgrammer } from "../FeatureProgrammer";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export const decode_union_object = (props: {
|
|
11
|
+
checker: (next: {
|
|
12
|
+
input: ts.Expression;
|
|
13
|
+
object: MetadataObject;
|
|
14
|
+
explore: FeatureProgrammer.IExplore;
|
|
15
|
+
}) => ts.Expression;
|
|
16
|
+
decoder: (next: {
|
|
17
|
+
input: ts.Expression;
|
|
18
|
+
object: MetadataObject;
|
|
19
|
+
explore: FeatureProgrammer.IExplore;
|
|
20
|
+
}) => ts.Expression;
|
|
21
|
+
success: (exp: ts.Expression) => ts.Expression;
|
|
22
|
+
escaper: (next: { input: ts.Expression; expected: string }) => ts.Statement;
|
|
23
|
+
objects: MetadataObject[];
|
|
24
|
+
input: ts.Expression;
|
|
25
|
+
explore: FeatureProgrammer.IExplore;
|
|
26
|
+
}): ts.CallExpression =>
|
|
27
|
+
ts.factory.createCallExpression(
|
|
28
|
+
ts.factory.createArrowFunction(
|
|
29
|
+
undefined,
|
|
30
|
+
undefined,
|
|
31
|
+
[],
|
|
32
|
+
undefined,
|
|
33
|
+
undefined,
|
|
34
|
+
iterate({
|
|
35
|
+
escaper: props.escaper,
|
|
36
|
+
input: props.input,
|
|
37
|
+
unions: props.objects.map((object) => ({
|
|
38
|
+
type: "object",
|
|
39
|
+
is: () =>
|
|
40
|
+
props.success(
|
|
41
|
+
props.checker({
|
|
42
|
+
input: props.input,
|
|
43
|
+
explore: props.explore,
|
|
44
|
+
object,
|
|
45
|
+
}),
|
|
46
|
+
),
|
|
47
|
+
value: () =>
|
|
48
|
+
props.decoder({
|
|
49
|
+
input: props.input,
|
|
50
|
+
explore: props.explore,
|
|
51
|
+
object,
|
|
52
|
+
}),
|
|
53
|
+
})),
|
|
54
|
+
expected: `(${props.objects.map((t) => t.name).join(" | ")})`,
|
|
55
|
+
}),
|
|
56
|
+
),
|
|
57
|
+
undefined,
|
|
58
|
+
undefined,
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
const iterate = (props: {
|
|
65
|
+
escaper: (next: { input: ts.Expression; expected: string }) => ts.Statement;
|
|
66
|
+
unions: IUnion[];
|
|
67
|
+
expected: string;
|
|
68
|
+
input: ts.Expression;
|
|
69
|
+
}) => {
|
|
70
|
+
interface IBranch {
|
|
71
|
+
condition: null | ts.Expression;
|
|
72
|
+
value: ts.Expression;
|
|
73
|
+
}
|
|
74
|
+
const branches: IBranch[] = [];
|
|
75
|
+
|
|
76
|
+
for (const u of props.unions) {
|
|
77
|
+
const condition: ts.Expression = u.is();
|
|
78
|
+
if (condition.kind === ts.SyntaxKind.TrueKeyword) {
|
|
79
|
+
branches.push({
|
|
80
|
+
condition: null,
|
|
81
|
+
value: u.value(),
|
|
82
|
+
});
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
branches.push({
|
|
86
|
+
condition,
|
|
87
|
+
value: u.value(),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
if (branches.length === 0)
|
|
91
|
+
return ts.factory.createBlock([props.escaper(props)], true);
|
|
92
|
+
else if (branches.length === 1 && branches[0]!.condition === null)
|
|
93
|
+
return branches[0]!.value;
|
|
94
|
+
|
|
95
|
+
const statements: ts.Statement[] = branches.map((b) =>
|
|
96
|
+
b.condition !== null
|
|
97
|
+
? ts.factory.createIfStatement(
|
|
98
|
+
b.condition,
|
|
99
|
+
ts.factory.createReturnStatement(b.value),
|
|
100
|
+
undefined,
|
|
101
|
+
)
|
|
102
|
+
: ts.factory.createReturnStatement(b.value),
|
|
103
|
+
);
|
|
104
|
+
if (branches.at(-1)!.condition !== null)
|
|
105
|
+
statements.push(props.escaper(props));
|
|
106
|
+
return ts.factory.createBlock(statements, true);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
interface IUnion {
|
|
113
|
+
type: string;
|
|
114
|
+
is: () => ts.Expression;
|
|
115
|
+
value: () => ts.Expression;
|
|
116
|
+
}
|
|
@@ -1,58 +1,61 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { IdentifierFactory } from "../../factories/IdentifierFactory";
|
|
4
|
-
|
|
5
|
-
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { IdentifierFactory } from "../../factories/IdentifierFactory";
|
|
4
|
+
|
|
5
|
+
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
6
|
+
|
|
7
|
+
import { ITypiaContext } from "../../transformers/ITypiaContext";
|
|
8
|
+
|
|
9
|
+
import { Escaper } from "../../utils/Escaper";
|
|
10
|
+
|
|
11
|
+
import { FeatureProgrammer } from "../FeatureProgrammer";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export const feature_object_entries = <Output extends ts.ConciseBody>(props: {
|
|
17
|
+
config: Pick<FeatureProgrammer.IConfig<Output>, "decoder" | "path" | "trace">;
|
|
18
|
+
context: ITypiaContext;
|
|
19
|
+
object: MetadataObject;
|
|
20
|
+
input: ts.Expression;
|
|
21
|
+
from?: "object" | "top" | "array";
|
|
22
|
+
}) =>
|
|
23
|
+
props.object.properties.map((next) => {
|
|
24
|
+
const sole: string | null = next.key.getSoleLiteral();
|
|
25
|
+
const propInput =
|
|
26
|
+
sole === null
|
|
27
|
+
? ts.factory.createIdentifier("value")
|
|
28
|
+
: Escaper.variable(sole)
|
|
29
|
+
? ts.factory.createPropertyAccessExpression(
|
|
30
|
+
props.input,
|
|
31
|
+
ts.factory.createIdentifier(sole),
|
|
32
|
+
)
|
|
33
|
+
: ts.factory.createElementAccessExpression(
|
|
34
|
+
props.input,
|
|
35
|
+
ts.factory.createStringLiteral(sole),
|
|
36
|
+
);
|
|
37
|
+
return {
|
|
38
|
+
input: propInput,
|
|
39
|
+
key: next.key,
|
|
40
|
+
meta: next.value,
|
|
41
|
+
expression: props.config.decoder({
|
|
42
|
+
input: propInput,
|
|
43
|
+
metadata: next.value,
|
|
44
|
+
explore: {
|
|
45
|
+
tracable: props.config.path || props.config.trace,
|
|
46
|
+
source: "function",
|
|
47
|
+
from: props.from ?? "object",
|
|
48
|
+
postfix: props.config.trace
|
|
49
|
+
? sole !== null
|
|
50
|
+
? IdentifierFactory.postfix(sole)
|
|
51
|
+
: (() => {
|
|
52
|
+
props.context.importer.internal(ACCESSOR);
|
|
53
|
+
return `${props.context.importer.getInternalText(ACCESSOR)}(key)`;
|
|
54
|
+
})()
|
|
55
|
+
: "",
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const ACCESSOR = "accessExpressionAsString";
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
2
|
-
|
|
3
|
-
import { PatternUtil } from "../../utils/PatternUtil";
|
|
4
|
-
|
|
5
|
-
import { template_to_pattern } from "./template_to_pattern";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export const metadata_to_pattern = (props: {
|
|
11
|
-
top: boolean;
|
|
12
|
-
metadata: Metadata;
|
|
13
|
-
}): string => {
|
|
14
|
-
if (props.metadata.atomics.find((a) => a.type === "string") !== undefined)
|
|
15
|
-
return "(.*)";
|
|
16
|
-
|
|
17
|
-
const values: string[] = props.metadata.constants
|
|
18
|
-
.map((c) => {
|
|
19
|
-
if (c.type !== "string") return c.values.map((v) => v.toString());
|
|
20
|
-
return (c.values.map((v) => v.value) as string[]).map((str) =>
|
|
21
|
-
PatternUtil.escape(str),
|
|
22
|
-
);
|
|
23
|
-
})
|
|
24
|
-
.flat();
|
|
25
|
-
for (const a of props.metadata.atomics)
|
|
26
|
-
if (a.type === "number" || a.type === "bigint")
|
|
27
|
-
values.push(PatternUtil.NUMBER);
|
|
28
|
-
else if (a.type === "boolean") values.push(PatternUtil.BOOLEAN);
|
|
29
|
-
for (const { row } of props.metadata.templates)
|
|
30
|
-
values.push(
|
|
31
|
-
"(" +
|
|
32
|
-
template_to_pattern({
|
|
33
|
-
top: false,
|
|
34
|
-
template: row,
|
|
35
|
-
}) +
|
|
36
|
-
")",
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
const pattern: string =
|
|
40
|
-
values.length === 1 ? values[0]! : "(" + values.join("|") + ")";
|
|
41
|
-
return props.top ? PatternUtil.fix(pattern) : pattern;
|
|
42
|
-
};
|
|
1
|
+
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
2
|
+
|
|
3
|
+
import { PatternUtil } from "../../utils/PatternUtil";
|
|
4
|
+
|
|
5
|
+
import { template_to_pattern } from "./template_to_pattern";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export const metadata_to_pattern = (props: {
|
|
11
|
+
top: boolean;
|
|
12
|
+
metadata: Metadata;
|
|
13
|
+
}): string => {
|
|
14
|
+
if (props.metadata.atomics.find((a) => a.type === "string") !== undefined)
|
|
15
|
+
return "(.*)";
|
|
16
|
+
|
|
17
|
+
const values: string[] = props.metadata.constants
|
|
18
|
+
.map((c) => {
|
|
19
|
+
if (c.type !== "string") return c.values.map((v) => v.toString());
|
|
20
|
+
return (c.values.map((v) => v.value) as string[]).map((str) =>
|
|
21
|
+
PatternUtil.escape(str),
|
|
22
|
+
);
|
|
23
|
+
})
|
|
24
|
+
.flat();
|
|
25
|
+
for (const a of props.metadata.atomics)
|
|
26
|
+
if (a.type === "number" || a.type === "bigint")
|
|
27
|
+
values.push(PatternUtil.NUMBER);
|
|
28
|
+
else if (a.type === "boolean") values.push(PatternUtil.BOOLEAN);
|
|
29
|
+
for (const { row } of props.metadata.templates)
|
|
30
|
+
values.push(
|
|
31
|
+
"(" +
|
|
32
|
+
template_to_pattern({
|
|
33
|
+
top: false,
|
|
34
|
+
template: row,
|
|
35
|
+
}) +
|
|
36
|
+
")",
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const pattern: string =
|
|
40
|
+
values.length === 1 ? values[0]! : "(" + values.join("|") + ")";
|
|
41
|
+
return props.top ? PatternUtil.fix(pattern) : pattern;
|
|
42
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*/
|
|
4
|
-
export const postfix_of_tuple = (str: string): string =>
|
|
5
|
-
str.endsWith('"') ? str.slice(0, -1) : `${str} + "`;
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export const postfix_of_tuple = (str: string): string =>
|
|
5
|
+
str.endsWith('"') ? str.slice(0, -1) : `${str} + "`;
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { StatementFactory } from "../../factories/StatementFactory";
|
|
4
|
-
|
|
5
|
-
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
6
|
-
|
|
7
|
-
import { metadata_to_pattern } from "./metadata_to_pattern";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export const prune_object_properties = (object: MetadataObject) => {
|
|
13
|
-
const input: ts.Expression = ts.factory.createIdentifier("input");
|
|
14
|
-
const key: ts.Expression = ts.factory.createIdentifier("key");
|
|
15
|
-
|
|
16
|
-
const condition: ts.Expression[] = object.properties.map((prop) => {
|
|
17
|
-
const name: string | null = prop.key.getSoleLiteral();
|
|
18
|
-
if (name !== null)
|
|
19
|
-
return ts.factory.createStrictEquality(
|
|
20
|
-
ts.factory.createStringLiteral(name),
|
|
21
|
-
ts.factory.createIdentifier("key"),
|
|
22
|
-
);
|
|
23
|
-
return ts.factory.createCallExpression(
|
|
24
|
-
ts.factory.createIdentifier(
|
|
25
|
-
`RegExp(/${metadata_to_pattern({
|
|
26
|
-
top: true,
|
|
27
|
-
metadata: prop.key,
|
|
28
|
-
})}/).test`,
|
|
29
|
-
),
|
|
30
|
-
undefined,
|
|
31
|
-
[key],
|
|
32
|
-
);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
const statements: ts.Statement[] = [];
|
|
36
|
-
if (condition.length)
|
|
37
|
-
statements.push(
|
|
38
|
-
ts.factory.createIfStatement(
|
|
39
|
-
condition.reduce((a, b) => ts.factory.createLogicalOr(a, b)),
|
|
40
|
-
ts.factory.createContinueStatement(),
|
|
41
|
-
),
|
|
42
|
-
);
|
|
43
|
-
statements.push(
|
|
44
|
-
ts.factory.createExpressionStatement(
|
|
45
|
-
ts.factory.createDeleteExpression(
|
|
46
|
-
ts.factory.createElementAccessExpression(input, key),
|
|
47
|
-
),
|
|
48
|
-
),
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
return ts.factory.createForOfStatement(
|
|
52
|
-
undefined,
|
|
53
|
-
StatementFactory.constant({ name: "key" }).declarationList,
|
|
54
|
-
ts.factory.createCallExpression(
|
|
55
|
-
ts.factory.createIdentifier("Object.keys"),
|
|
56
|
-
undefined,
|
|
57
|
-
[input],
|
|
58
|
-
),
|
|
59
|
-
statements.length === 1
|
|
60
|
-
? statements[0]!
|
|
61
|
-
: ts.factory.createBlock(statements, true),
|
|
62
|
-
);
|
|
63
|
-
};
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { StatementFactory } from "../../factories/StatementFactory";
|
|
4
|
+
|
|
5
|
+
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
6
|
+
|
|
7
|
+
import { metadata_to_pattern } from "./metadata_to_pattern";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export const prune_object_properties = (object: MetadataObject) => {
|
|
13
|
+
const input: ts.Expression = ts.factory.createIdentifier("input");
|
|
14
|
+
const key: ts.Expression = ts.factory.createIdentifier("key");
|
|
15
|
+
|
|
16
|
+
const condition: ts.Expression[] = object.properties.map((prop) => {
|
|
17
|
+
const name: string | null = prop.key.getSoleLiteral();
|
|
18
|
+
if (name !== null)
|
|
19
|
+
return ts.factory.createStrictEquality(
|
|
20
|
+
ts.factory.createStringLiteral(name),
|
|
21
|
+
ts.factory.createIdentifier("key"),
|
|
22
|
+
);
|
|
23
|
+
return ts.factory.createCallExpression(
|
|
24
|
+
ts.factory.createIdentifier(
|
|
25
|
+
`RegExp(/${metadata_to_pattern({
|
|
26
|
+
top: true,
|
|
27
|
+
metadata: prop.key,
|
|
28
|
+
})}/).test`,
|
|
29
|
+
),
|
|
30
|
+
undefined,
|
|
31
|
+
[key],
|
|
32
|
+
);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const statements: ts.Statement[] = [];
|
|
36
|
+
if (condition.length)
|
|
37
|
+
statements.push(
|
|
38
|
+
ts.factory.createIfStatement(
|
|
39
|
+
condition.reduce((a, b) => ts.factory.createLogicalOr(a, b)),
|
|
40
|
+
ts.factory.createContinueStatement(),
|
|
41
|
+
),
|
|
42
|
+
);
|
|
43
|
+
statements.push(
|
|
44
|
+
ts.factory.createExpressionStatement(
|
|
45
|
+
ts.factory.createDeleteExpression(
|
|
46
|
+
ts.factory.createElementAccessExpression(input, key),
|
|
47
|
+
),
|
|
48
|
+
),
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
return ts.factory.createForOfStatement(
|
|
52
|
+
undefined,
|
|
53
|
+
StatementFactory.constant({ name: "key" }).declarationList,
|
|
54
|
+
ts.factory.createCallExpression(
|
|
55
|
+
ts.factory.createIdentifier("Object.keys"),
|
|
56
|
+
undefined,
|
|
57
|
+
[input],
|
|
58
|
+
),
|
|
59
|
+
statements.length === 1
|
|
60
|
+
? statements[0]!
|
|
61
|
+
: ts.factory.createBlock(statements, true),
|
|
62
|
+
);
|
|
63
|
+
};
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { ExpressionFactory } from "../../factories/ExpressionFactory";
|
|
4
|
-
import { LiteralFactory } from "../../factories/LiteralFactory";
|
|
5
|
-
|
|
6
|
-
import { IMetadataTypeTag } from "../../schemas/metadata/IMetadataTypeTag";
|
|
7
|
-
|
|
8
|
-
import { Customizable } from "../../typings/Customizable";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
export const random_custom = (props: {
|
|
14
|
-
accessor: (name: string) => ts.Expression;
|
|
15
|
-
type: keyof Customizable;
|
|
16
|
-
tags: IMetadataTypeTag[];
|
|
17
|
-
expression: ts.Expression;
|
|
18
|
-
}) =>
|
|
19
|
-
ExpressionFactory.coalesce(
|
|
20
|
-
ts.factory.createCallChain(
|
|
21
|
-
ts.factory.createPropertyAccessChain(
|
|
22
|
-
props.accessor("customs"),
|
|
23
|
-
ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
|
|
24
|
-
ts.factory.createIdentifier(props.type),
|
|
25
|
-
),
|
|
26
|
-
ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
|
|
27
|
-
undefined,
|
|
28
|
-
[
|
|
29
|
-
LiteralFactory.generate(
|
|
30
|
-
props.tags.map((t) => ({
|
|
31
|
-
name: t.name,
|
|
32
|
-
kind: t.kind,
|
|
33
|
-
value: t.value,
|
|
34
|
-
})),
|
|
35
|
-
),
|
|
36
|
-
],
|
|
37
|
-
),
|
|
38
|
-
props.expression,
|
|
39
|
-
);
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { ExpressionFactory } from "../../factories/ExpressionFactory";
|
|
4
|
+
import { LiteralFactory } from "../../factories/LiteralFactory";
|
|
5
|
+
|
|
6
|
+
import { IMetadataTypeTag } from "../../schemas/metadata/IMetadataTypeTag";
|
|
7
|
+
|
|
8
|
+
import { Customizable } from "../../typings/Customizable";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export const random_custom = (props: {
|
|
14
|
+
accessor: (name: string) => ts.Expression;
|
|
15
|
+
type: keyof Customizable;
|
|
16
|
+
tags: IMetadataTypeTag[];
|
|
17
|
+
expression: ts.Expression;
|
|
18
|
+
}) =>
|
|
19
|
+
ExpressionFactory.coalesce(
|
|
20
|
+
ts.factory.createCallChain(
|
|
21
|
+
ts.factory.createPropertyAccessChain(
|
|
22
|
+
props.accessor("customs"),
|
|
23
|
+
ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
|
|
24
|
+
ts.factory.createIdentifier(props.type),
|
|
25
|
+
),
|
|
26
|
+
ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
|
|
27
|
+
undefined,
|
|
28
|
+
[
|
|
29
|
+
LiteralFactory.generate(
|
|
30
|
+
props.tags.map((t) => ({
|
|
31
|
+
name: t.name,
|
|
32
|
+
kind: t.kind,
|
|
33
|
+
value: t.value,
|
|
34
|
+
})),
|
|
35
|
+
),
|
|
36
|
+
],
|
|
37
|
+
),
|
|
38
|
+
props.expression,
|
|
39
|
+
);
|