typia 6.10.0 → 6.10.1-dev.20240919
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/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs +44 -129
- package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs.map +1 -1
- package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs +19 -167
- package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs.map +1 -1
- package/lib/_virtual/_commonjsHelpers.mjs +1 -3
- package/lib/_virtual/_commonjsHelpers.mjs.map +1 -1
- package/lib/executable/TypiaSetupWizard.d.ts +1 -1
- package/lib/executable/TypiaSetupWizard.js +86 -67
- package/lib/executable/TypiaSetupWizard.js.map +1 -1
- package/lib/executable/setup/PackageManager.d.ts +1 -2
- package/lib/executable/setup/PackageManager.js +13 -10
- package/lib/executable/setup/PackageManager.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_function.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_function.js.map +1 -1
- package/lib/functional/Namespace/index.mjs +0 -1
- package/lib/functional/Namespace/index.mjs.map +1 -1
- package/lib/functional/Namespace/llm.mjs +2 -2
- package/lib/functional/Namespace/llm.mjs.map +1 -1
- package/lib/transformers/features/llm/LlmApplicationTransformer.js +4 -30
- package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
- package/package.json +2 -2
- package/src/AssertionGuard.ts +1 -1
- package/src/CamelCase.ts +75 -75
- package/src/IRandomGenerator.ts +66 -66
- package/src/IValidation.ts +21 -21
- package/src/PascalCase.ts +71 -71
- package/src/Primitive.ts +92 -92
- package/src/SnakeCase.ts +126 -126
- package/src/TypeGuardError.ts +37 -37
- package/src/executable/TypiaSetupWizard.ts +17 -3
- package/src/executable/setup/PackageManager.ts +16 -16
- package/src/factories/ExpressionFactory.ts +150 -150
- package/src/factories/IdentifierFactory.ts +70 -70
- package/src/factories/JsonMetadataFactory.ts +53 -53
- package/src/factories/LiteralFactory.ts +47 -47
- package/src/factories/MetadataTypeTagFactory.ts +336 -336
- package/src/factories/NumericRangeFactory.ts +72 -72
- package/src/factories/TemplateFactory.ts +56 -56
- package/src/factories/ValueFactory.ts +12 -12
- package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
- package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
- package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
- package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
- package/src/factories/internal/metadata/iterate_metadata_function.ts +3 -1
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +74 -74
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
- package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
- package/src/functional/$FormDataReader/index.ts +1 -1
- package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
- package/src/functional/$HeadersReader/index.ts +1 -1
- package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
- package/src/functional/$ParameterReader/index.ts +1 -1
- package/src/functional/$ProtobufReader.ts +194 -194
- package/src/functional/$ProtobufSizer.ts +144 -144
- package/src/functional/$ProtobufWriter.ts +145 -145
- package/src/functional/$QueryReader/$QueryReader.ts +46 -46
- package/src/functional/$QueryReader/index.ts +1 -1
- package/src/functional/$any.ts +3 -3
- package/src/functional/$clone.ts +48 -48
- package/src/functional/$convention.ts +37 -37
- package/src/functional/$dictionary.ts +22 -22
- package/src/functional/$every.ts +11 -11
- package/src/functional/$guard.ts +21 -21
- package/src/functional/$is_between.ts +2 -2
- package/src/functional/$join.ts +46 -46
- package/src/functional/$number.ts +12 -12
- package/src/functional/$report.ts +13 -13
- package/src/functional/$rest.ts +3 -3
- package/src/functional/$stoll.ts +8 -8
- package/src/functional/$string.ts +43 -43
- package/src/functional/$strlen.ts +7 -7
- package/src/functional/$tail.ts +5 -5
- package/src/functional/$throws.ts +10 -10
- package/src/functional/$varint.ts +130 -130
- package/src/functional/$zigzag.ts +39 -39
- package/src/functional/IProtobufWriter.ts +18 -18
- package/src/functional/Namespace/functional.ts +5 -5
- package/src/functional/Namespace/http.ts +9 -9
- 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/Namespace/protobuf.ts +20 -20
- package/src/functional/is.ts +10 -10
- package/src/functional.ts +872 -872
- package/src/http.ts +1266 -1266
- package/src/index.ts +4 -4
- package/src/misc.ts +757 -757
- package/src/notations.ts +1020 -1020
- package/src/programmers/TypiaProgrammer.ts +157 -157
- package/src/programmers/helpers/AtomicPredicator.ts +24 -24
- package/src/programmers/helpers/CloneJoiner.ts +130 -130
- package/src/programmers/helpers/FunctionImporeter.ts +1 -1
- package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
- package/src/programmers/helpers/ICheckEntry.ts +13 -13
- package/src/programmers/helpers/IExpressionEntry.ts +12 -12
- package/src/programmers/helpers/NotationJoiner.ts +132 -132
- package/src/programmers/helpers/OptionPredicator.ts +15 -15
- package/src/programmers/helpers/ProtobufUtil.ts +125 -125
- package/src/programmers/helpers/ProtobufWire.ts +34 -34
- package/src/programmers/helpers/PruneJoiner.ts +139 -139
- package/src/programmers/helpers/RandomJoiner.ts +145 -145
- package/src/programmers/helpers/RandomRanger.ts +171 -171
- package/src/programmers/helpers/StringifyJoinder.ts +105 -105
- package/src/programmers/helpers/StringifyPredicator.ts +12 -12
- package/src/programmers/helpers/UnionExplorer.ts +269 -269
- package/src/programmers/helpers/UnionPredicator.ts +77 -77
- package/src/programmers/helpers/disable_function_importer_declare.ts +33 -33
- package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
- package/src/programmers/internal/application_array.ts +61 -61
- 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 +62 -62
- 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_constant.ts +18 -18
- package/src/programmers/internal/application_v30_native.ts +28 -28
- package/src/programmers/internal/application_v31_alias.ts +41 -41
- package/src/programmers/internal/application_v31_native.ts +24 -24
- package/src/programmers/internal/application_v31_tuple.ts +21 -21
- package/src/programmers/internal/check_array_length.ts +45 -45
- package/src/programmers/internal/check_bigint.ts +49 -49
- package/src/programmers/internal/check_dynamic_key.ts +174 -174
- package/src/programmers/internal/check_dynamic_properties.ts +211 -211
- package/src/programmers/internal/check_everything.ts +23 -23
- package/src/programmers/internal/check_native.ts +21 -21
- package/src/programmers/internal/check_number.ts +107 -107
- package/src/programmers/internal/check_object.ts +61 -61
- package/src/programmers/internal/check_string.ts +48 -48
- package/src/programmers/internal/check_template.ts +46 -46
- package/src/programmers/internal/check_union_array_like.ts +307 -307
- package/src/programmers/internal/decode_union_object.ts +99 -99
- package/src/programmers/internal/feature_object_entries.ts +58 -58
- package/src/programmers/internal/metadata_to_pattern.ts +34 -34
- package/src/programmers/internal/postfix_of_tuple.ts +2 -2
- package/src/programmers/internal/prune_object_properties.ts +60 -60
- package/src/programmers/internal/random_custom.ts +37 -37
- package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
- package/src/programmers/internal/stringify_native.ts +7 -7
- package/src/programmers/internal/template_to_pattern.ts +15 -15
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +70 -70
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
- package/src/reflect.ts +63 -63
- package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
- package/src/schemas/metadata/IMetadataAlias.ts +12 -12
- package/src/schemas/metadata/IMetadataApplication.ts +7 -7
- package/src/schemas/metadata/IMetadataArray.ts +7 -7
- package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
- package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
- package/src/schemas/metadata/IMetadataComponents.ts +11 -11
- package/src/schemas/metadata/IMetadataConstant.ts +18 -18
- package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
- package/src/schemas/metadata/IMetadataEntry.ts +6 -6
- package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
- package/src/schemas/metadata/IMetadataObject.ts +13 -13
- package/src/schemas/metadata/IMetadataProperty.ts +9 -9
- package/src/schemas/metadata/IMetadataTuple.ts +7 -7
- package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
- package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
- package/src/schemas/metadata/MetadataAlias.ts +61 -61
- package/src/schemas/metadata/MetadataApplication.ts +44 -44
- package/src/schemas/metadata/MetadataArray.ts +49 -49
- package/src/schemas/metadata/MetadataArrayType.ts +57 -57
- package/src/schemas/metadata/MetadataComponents.ts +98 -98
- package/src/schemas/metadata/MetadataConstant.ts +34 -34
- package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
- package/src/schemas/metadata/MetadataEscaped.ts +51 -51
- package/src/schemas/metadata/MetadataObject.ts +139 -139
- package/src/schemas/metadata/MetadataProperty.ts +56 -56
- package/src/schemas/metadata/MetadataTemplate.ts +80 -80
- package/src/schemas/metadata/MetadataTuple.ts +32 -32
- package/src/schemas/metadata/MetadataTupleType.ts +67 -67
- package/src/tags/ContentMediaType.ts +10 -10
- package/src/tags/Format.ts +16 -16
- package/src/tags/MaxItems.ts +12 -12
- package/src/tags/MaxLength.ts +12 -12
- package/src/tags/MinItems.ts +12 -12
- package/src/tags/MinLength.ts +12 -12
- package/src/tags/TagBase.ts +76 -76
- package/src/tags/UniqueItems.ts +14 -14
- package/src/tags/index.ts +18 -18
- package/src/tags/internal/FormatCheatSheet.ts +73 -73
- package/src/transform.ts +35 -35
- package/src/transformers/IProject.ts +15 -15
- package/src/transformers/ITransformOptions.ts +62 -62
- package/src/transformers/ImportTransformer.ts +66 -66
- package/src/transformers/NodeTransformer.ts +13 -13
- package/src/transformers/features/AssertTransformer.ts +16 -16
- package/src/transformers/features/CreateAssertTransformer.ts +16 -16
- package/src/transformers/features/CreateIsTransformer.ts +10 -10
- package/src/transformers/features/CreateValidateTransformer.ts +13 -13
- package/src/transformers/features/IsTransformer.ts +10 -10
- package/src/transformers/features/ValidateTransformer.ts +11 -11
- package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
- package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
- package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
- package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
- package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
- package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
- package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
- package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
- package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
- package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
- package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
- package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
- package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
- package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
- package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
- package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
- package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
- package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
- package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
- package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
- package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
- package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
- package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
- package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
- package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
- package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
- package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
- package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
- package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
- package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
- package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
- package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
- package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
- package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +3 -7
- package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
- package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
- package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
- package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
- package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
- package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
- package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
- package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
- package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
- package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
- package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
- package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
- package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
- package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
- package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
- package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
- package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
- package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
- package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
- package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
- package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
- package/src/transformers/features/reflect/ReflectNameTransformer.ts +66 -66
- package/src/typings/Atomic.ts +13 -13
- package/src/typings/ClassProperties.ts +5 -5
- package/src/typings/Customizable.ts +5 -5
- package/src/typings/Equal.ts +18 -18
- package/src/typings/IsTuple.ts +9 -9
- package/src/typings/NativeClass.ts +23 -23
- package/src/typings/OmitNever.ts +3 -3
- package/src/typings/ProtobufAtomic.ts +19 -19
- package/src/typings/SpecialFields.ts +3 -3
- package/src/typings/ValidationPipe.ts +9 -9
- package/src/typings/ValueOf.ts +20 -20
- package/src/typings/Writable.ts +11 -11
- package/src/utils/ArrayUtil.ts +41 -41
- package/src/utils/MapUtil.ts +12 -12
- package/src/utils/NameEncoder.ts +32 -32
- package/src/utils/NamingConvention/NamingConvention.ts +89 -89
- package/src/utils/NamingConvention/index.ts +1 -1
- package/src/utils/PatternUtil.ts +29 -29
- package/src/utils/RandomGenerator/RandomGenerator.ts +119 -119
- package/src/utils/RandomGenerator/index.ts +1 -1
- package/src/utils/Singleton.ts +16 -16
- package/src/utils/StringUtil/StringUtil.ts +7 -7
- package/src/utils/StringUtil/index.ts +1 -1
- package/lib/_virtual/LlmSchemaSeparator.mjs +0 -4
- package/lib/_virtual/LlmSchemaSeparator.mjs.map +0 -1
- package/lib/_virtual/LlmTypeChecker.mjs +0 -4
- package/lib/_virtual/LlmTypeChecker.mjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
|
|
2
|
-
|
|
3
|
-
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
-
|
|
5
|
-
export namespace ProtobufDecodeTransformer {
|
|
6
|
-
export const transform = GenericTransformer.scalar("protobuf.decode")(
|
|
7
|
-
(project) => (modulo) => ProtobufDecodeProgrammer.write(project)(modulo),
|
|
8
|
-
);
|
|
9
|
-
}
|
|
1
|
+
import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
|
|
2
|
+
|
|
3
|
+
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
+
|
|
5
|
+
export namespace ProtobufDecodeTransformer {
|
|
6
|
+
export const transform = GenericTransformer.scalar("protobuf.decode")(
|
|
7
|
+
(project) => (modulo) => ProtobufDecodeProgrammer.write(project)(modulo),
|
|
8
|
+
);
|
|
9
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
|
|
2
|
-
|
|
3
|
-
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
-
|
|
5
|
-
export namespace ProtobufEncodeTransformer {
|
|
6
|
-
export const transform = GenericTransformer.scalar("protobuf.encode")(
|
|
7
|
-
(project) => (modulo) => ProtobufEncodeProgrammer.write(project)(modulo),
|
|
8
|
-
);
|
|
9
|
-
}
|
|
1
|
+
import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
|
|
2
|
+
|
|
3
|
+
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
+
|
|
5
|
+
export namespace ProtobufEncodeTransformer {
|
|
6
|
+
export const transform = GenericTransformer.scalar("protobuf.encode")(
|
|
7
|
+
(project) => (modulo) => ProtobufEncodeProgrammer.write(project)(modulo),
|
|
8
|
+
);
|
|
9
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ProtobufIsDecodeProgrammer } from "../../../programmers/protobuf/ProtobufIsDecodeProgrammer";
|
|
2
|
-
|
|
3
|
-
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
-
|
|
5
|
-
export namespace ProtobufIsDecodeTransformer {
|
|
6
|
-
export const transform = GenericTransformer.scalar("protobuf.isDecode")(
|
|
7
|
-
(project) => (modulo) => ProtobufIsDecodeProgrammer.write(project)(modulo),
|
|
8
|
-
);
|
|
9
|
-
}
|
|
1
|
+
import { ProtobufIsDecodeProgrammer } from "../../../programmers/protobuf/ProtobufIsDecodeProgrammer";
|
|
2
|
+
|
|
3
|
+
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
+
|
|
5
|
+
export namespace ProtobufIsDecodeTransformer {
|
|
6
|
+
export const transform = GenericTransformer.scalar("protobuf.isDecode")(
|
|
7
|
+
(project) => (modulo) => ProtobufIsDecodeProgrammer.write(project)(modulo),
|
|
8
|
+
);
|
|
9
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ProtobufIsEncodeProgrammer } from "../../../programmers/protobuf/ProtobufIsEncodeProgrammer";
|
|
2
|
-
|
|
3
|
-
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
-
|
|
5
|
-
export namespace ProtobufIsEncodeTransformer {
|
|
6
|
-
export const transform = GenericTransformer.scalar("protobuf.isEncode")(
|
|
7
|
-
(project) => (modulo) => ProtobufIsEncodeProgrammer.write(project)(modulo),
|
|
8
|
-
);
|
|
9
|
-
}
|
|
1
|
+
import { ProtobufIsEncodeProgrammer } from "../../../programmers/protobuf/ProtobufIsEncodeProgrammer";
|
|
2
|
+
|
|
3
|
+
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
+
|
|
5
|
+
export namespace ProtobufIsEncodeTransformer {
|
|
6
|
+
export const transform = GenericTransformer.scalar("protobuf.isEncode")(
|
|
7
|
+
(project) => (modulo) => ProtobufIsEncodeProgrammer.write(project)(modulo),
|
|
8
|
+
);
|
|
9
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ProtobufValidateDecodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateDecodeProgrammer";
|
|
2
|
-
|
|
3
|
-
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
-
|
|
5
|
-
export namespace ProtobufValidateDecodeTransformer {
|
|
6
|
-
export const transform = GenericTransformer.scalar("protobuf.validateDecode")(
|
|
7
|
-
(project) => (modulo) =>
|
|
8
|
-
ProtobufValidateDecodeProgrammer.write(project)(modulo),
|
|
9
|
-
);
|
|
10
|
-
}
|
|
1
|
+
import { ProtobufValidateDecodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateDecodeProgrammer";
|
|
2
|
+
|
|
3
|
+
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
+
|
|
5
|
+
export namespace ProtobufValidateDecodeTransformer {
|
|
6
|
+
export const transform = GenericTransformer.scalar("protobuf.validateDecode")(
|
|
7
|
+
(project) => (modulo) =>
|
|
8
|
+
ProtobufValidateDecodeProgrammer.write(project)(modulo),
|
|
9
|
+
);
|
|
10
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ProtobufValidateEncodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateEncodeProgrammer";
|
|
2
|
-
|
|
3
|
-
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
-
|
|
5
|
-
export namespace ProtobufValidateEncodeTransformer {
|
|
6
|
-
export const transform = GenericTransformer.scalar("protobuf.validateEncode")(
|
|
7
|
-
(project) => (modulo) =>
|
|
8
|
-
ProtobufValidateEncodeProgrammer.write(project)(modulo),
|
|
9
|
-
);
|
|
10
|
-
}
|
|
1
|
+
import { ProtobufValidateEncodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateEncodeProgrammer";
|
|
2
|
+
|
|
3
|
+
import { GenericTransformer } from "../../internal/GenericTransformer";
|
|
4
|
+
|
|
5
|
+
export namespace ProtobufValidateEncodeTransformer {
|
|
6
|
+
export const transform = GenericTransformer.scalar("protobuf.validateEncode")(
|
|
7
|
+
(project) => (modulo) =>
|
|
8
|
+
ProtobufValidateEncodeProgrammer.write(project)(modulo),
|
|
9
|
+
);
|
|
10
|
+
}
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { MetadataCollection } from "../../../factories/MetadataCollection";
|
|
4
|
-
import { MetadataFactory } from "../../../factories/MetadataFactory";
|
|
5
|
-
|
|
6
|
-
import { Metadata } from "../../../schemas/metadata/Metadata";
|
|
7
|
-
|
|
8
|
-
import { ValidationPipe } from "../../../typings/ValidationPipe";
|
|
9
|
-
|
|
10
|
-
import { IProject } from "../../IProject";
|
|
11
|
-
import { TransformerError } from "../../TransformerError";
|
|
12
|
-
|
|
13
|
-
export namespace ReflectNameTransformer {
|
|
14
|
-
export const transform =
|
|
15
|
-
(project: IProject) =>
|
|
16
|
-
(expression: ts.CallExpression): ts.Expression => {
|
|
17
|
-
if (!expression.typeArguments?.length)
|
|
18
|
-
throw new TransformerError({
|
|
19
|
-
code: "typia.reflect.metadata",
|
|
20
|
-
message: "no generic argument.",
|
|
21
|
-
});
|
|
22
|
-
const top: ts.Node = expression.typeArguments[0]!;
|
|
23
|
-
const regular: boolean = (() => {
|
|
24
|
-
// CHECK SECOND ARGUMENT EXISTENCE
|
|
25
|
-
const second: ts.Node | undefined = expression.typeArguments[1]!;
|
|
26
|
-
if (second === undefined) return false;
|
|
27
|
-
|
|
28
|
-
// GET BOOELAN VALUE
|
|
29
|
-
const value: Metadata = getMetadata(project)(second);
|
|
30
|
-
return value.size() === 1 &&
|
|
31
|
-
value.constants.length === 1 &&
|
|
32
|
-
value.constants[0]!.type === "boolean" &&
|
|
33
|
-
value.constants[0]!.values.length === 1
|
|
34
|
-
? (value.constants[0]!.values[0]!.value as boolean)
|
|
35
|
-
: false;
|
|
36
|
-
})();
|
|
37
|
-
|
|
38
|
-
// RETURNS NAME
|
|
39
|
-
return ts.factory.createStringLiteral(
|
|
40
|
-
regular ? getMetadata(project)(top).getName() : top.getFullText(),
|
|
41
|
-
);
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const getMetadata =
|
|
46
|
-
(project: IProject) =>
|
|
47
|
-
(node: ts.Node): Metadata => {
|
|
48
|
-
const type: ts.Type = project.checker.getTypeFromTypeNode(
|
|
49
|
-
node as ts.TypeNode,
|
|
50
|
-
);
|
|
51
|
-
const collection: MetadataCollection = new MetadataCollection({
|
|
52
|
-
replace: MetadataCollection.replace,
|
|
53
|
-
});
|
|
54
|
-
const result: ValidationPipe<Metadata, MetadataFactory.IError> =
|
|
55
|
-
MetadataFactory.analyze(
|
|
56
|
-
project.checker,
|
|
57
|
-
project.context,
|
|
58
|
-
)({
|
|
59
|
-
escape: false,
|
|
60
|
-
constant: true,
|
|
61
|
-
absorb: false,
|
|
62
|
-
})(collection)(type);
|
|
63
|
-
if (result.success === false)
|
|
64
|
-
throw TransformerError.from("typia.reflect.name")(result.errors);
|
|
65
|
-
return result.data;
|
|
66
|
-
};
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { MetadataCollection } from "../../../factories/MetadataCollection";
|
|
4
|
+
import { MetadataFactory } from "../../../factories/MetadataFactory";
|
|
5
|
+
|
|
6
|
+
import { Metadata } from "../../../schemas/metadata/Metadata";
|
|
7
|
+
|
|
8
|
+
import { ValidationPipe } from "../../../typings/ValidationPipe";
|
|
9
|
+
|
|
10
|
+
import { IProject } from "../../IProject";
|
|
11
|
+
import { TransformerError } from "../../TransformerError";
|
|
12
|
+
|
|
13
|
+
export namespace ReflectNameTransformer {
|
|
14
|
+
export const transform =
|
|
15
|
+
(project: IProject) =>
|
|
16
|
+
(expression: ts.CallExpression): ts.Expression => {
|
|
17
|
+
if (!expression.typeArguments?.length)
|
|
18
|
+
throw new TransformerError({
|
|
19
|
+
code: "typia.reflect.metadata",
|
|
20
|
+
message: "no generic argument.",
|
|
21
|
+
});
|
|
22
|
+
const top: ts.Node = expression.typeArguments[0]!;
|
|
23
|
+
const regular: boolean = (() => {
|
|
24
|
+
// CHECK SECOND ARGUMENT EXISTENCE
|
|
25
|
+
const second: ts.Node | undefined = expression.typeArguments[1]!;
|
|
26
|
+
if (second === undefined) return false;
|
|
27
|
+
|
|
28
|
+
// GET BOOELAN VALUE
|
|
29
|
+
const value: Metadata = getMetadata(project)(second);
|
|
30
|
+
return value.size() === 1 &&
|
|
31
|
+
value.constants.length === 1 &&
|
|
32
|
+
value.constants[0]!.type === "boolean" &&
|
|
33
|
+
value.constants[0]!.values.length === 1
|
|
34
|
+
? (value.constants[0]!.values[0]!.value as boolean)
|
|
35
|
+
: false;
|
|
36
|
+
})();
|
|
37
|
+
|
|
38
|
+
// RETURNS NAME
|
|
39
|
+
return ts.factory.createStringLiteral(
|
|
40
|
+
regular ? getMetadata(project)(top).getName() : top.getFullText(),
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const getMetadata =
|
|
46
|
+
(project: IProject) =>
|
|
47
|
+
(node: ts.Node): Metadata => {
|
|
48
|
+
const type: ts.Type = project.checker.getTypeFromTypeNode(
|
|
49
|
+
node as ts.TypeNode,
|
|
50
|
+
);
|
|
51
|
+
const collection: MetadataCollection = new MetadataCollection({
|
|
52
|
+
replace: MetadataCollection.replace,
|
|
53
|
+
});
|
|
54
|
+
const result: ValidationPipe<Metadata, MetadataFactory.IError> =
|
|
55
|
+
MetadataFactory.analyze(
|
|
56
|
+
project.checker,
|
|
57
|
+
project.context,
|
|
58
|
+
)({
|
|
59
|
+
escape: false,
|
|
60
|
+
constant: true,
|
|
61
|
+
absorb: false,
|
|
62
|
+
})(collection)(type);
|
|
63
|
+
if (result.success === false)
|
|
64
|
+
throw TransformerError.from("typia.reflect.name")(result.errors);
|
|
65
|
+
return result.data;
|
|
66
|
+
};
|
package/src/typings/Atomic.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export namespace Atomic {
|
|
2
|
-
export type Type = boolean | number | string | bigint;
|
|
3
|
-
|
|
4
|
-
export type Literal = "boolean" | "integer" | "number" | "string" | "bigint";
|
|
5
|
-
|
|
6
|
-
export type Mapper = {
|
|
7
|
-
boolean: boolean;
|
|
8
|
-
integer: number;
|
|
9
|
-
number: number;
|
|
10
|
-
string: string;
|
|
11
|
-
bigint: bigint;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
1
|
+
export namespace Atomic {
|
|
2
|
+
export type Type = boolean | number | string | bigint;
|
|
3
|
+
|
|
4
|
+
export type Literal = "boolean" | "integer" | "number" | "string" | "bigint";
|
|
5
|
+
|
|
6
|
+
export type Mapper = {
|
|
7
|
+
boolean: boolean;
|
|
8
|
+
integer: number;
|
|
9
|
+
number: number;
|
|
10
|
+
string: string;
|
|
11
|
+
bigint: bigint;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { OmitNever } from "./OmitNever";
|
|
2
|
-
|
|
3
|
-
export type ClassProperties<T extends object> = OmitNever<{
|
|
4
|
-
[K in keyof T]: T[K] extends Function ? never : T[K];
|
|
5
|
-
}>;
|
|
1
|
+
import { OmitNever } from "./OmitNever";
|
|
2
|
+
|
|
3
|
+
export type ClassProperties<T extends object> = OmitNever<{
|
|
4
|
+
[K in keyof T]: T[K] extends Function ? never : T[K];
|
|
5
|
+
}>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type Customizable = {
|
|
2
|
-
number: number;
|
|
3
|
-
string: string;
|
|
4
|
-
bigint: bigint;
|
|
5
|
-
};
|
|
1
|
+
export type Customizable = {
|
|
2
|
+
number: number;
|
|
3
|
+
string: string;
|
|
4
|
+
bigint: bigint;
|
|
5
|
+
};
|
package/src/typings/Equal.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compare the equivalence of the two types X and Y.
|
|
3
|
-
*
|
|
4
|
-
* The two types X and Y refer to any type that can be expressed in the type script, such as the union type and the object type.
|
|
5
|
-
*
|
|
6
|
-
* @template X One of the types to compare
|
|
7
|
-
* @template Y One of the types to compare
|
|
8
|
-
*
|
|
9
|
-
* ```ts
|
|
10
|
-
* type Answer = Equal<1 | 2, 1 | 2>; // true
|
|
11
|
-
* ```
|
|
12
|
-
*
|
|
13
|
-
* @author Kyungsu Kang - https://github.com/kakasoo
|
|
14
|
-
*/
|
|
15
|
-
export type Equal<X, Y> =
|
|
16
|
-
(<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2
|
|
17
|
-
? true
|
|
18
|
-
: false;
|
|
1
|
+
/**
|
|
2
|
+
* Compare the equivalence of the two types X and Y.
|
|
3
|
+
*
|
|
4
|
+
* The two types X and Y refer to any type that can be expressed in the type script, such as the union type and the object type.
|
|
5
|
+
*
|
|
6
|
+
* @template X One of the types to compare
|
|
7
|
+
* @template Y One of the types to compare
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* type Answer = Equal<1 | 2, 1 | 2>; // true
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @author Kyungsu Kang - https://github.com/kakasoo
|
|
14
|
+
*/
|
|
15
|
+
export type Equal<X, Y> =
|
|
16
|
+
(<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2
|
|
17
|
+
? true
|
|
18
|
+
: false;
|
package/src/typings/IsTuple.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export type IsTuple<T extends readonly any[] | { length: number }> = [
|
|
2
|
-
T,
|
|
3
|
-
] extends [never]
|
|
4
|
-
? false
|
|
5
|
-
: T extends readonly any[]
|
|
6
|
-
? number extends T["length"]
|
|
7
|
-
? false
|
|
8
|
-
: true
|
|
9
|
-
: false;
|
|
1
|
+
export type IsTuple<T extends readonly any[] | { length: number }> = [
|
|
2
|
+
T,
|
|
3
|
+
] extends [never]
|
|
4
|
+
? false
|
|
5
|
+
: T extends readonly any[]
|
|
6
|
+
? number extends T["length"]
|
|
7
|
+
? false
|
|
8
|
+
: true
|
|
9
|
+
: false;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export type NativeClass =
|
|
2
|
-
| Date
|
|
3
|
-
| Set<any>
|
|
4
|
-
| Map<any, any>
|
|
5
|
-
| WeakSet<any>
|
|
6
|
-
| WeakMap<any, any>
|
|
7
|
-
| Uint8Array
|
|
8
|
-
| Uint8ClampedArray
|
|
9
|
-
| Uint16Array
|
|
10
|
-
| Uint32Array
|
|
11
|
-
| BigUint64Array
|
|
12
|
-
| Int8Array
|
|
13
|
-
| Int16Array
|
|
14
|
-
| Int32Array
|
|
15
|
-
| BigInt64Array
|
|
16
|
-
| Float32Array
|
|
17
|
-
| Float64Array
|
|
18
|
-
| ArrayBuffer
|
|
19
|
-
| SharedArrayBuffer
|
|
20
|
-
| DataView
|
|
21
|
-
| Blob
|
|
22
|
-
| File
|
|
23
|
-
| RegExp;
|
|
1
|
+
export type NativeClass =
|
|
2
|
+
| Date
|
|
3
|
+
| Set<any>
|
|
4
|
+
| Map<any, any>
|
|
5
|
+
| WeakSet<any>
|
|
6
|
+
| WeakMap<any, any>
|
|
7
|
+
| Uint8Array
|
|
8
|
+
| Uint8ClampedArray
|
|
9
|
+
| Uint16Array
|
|
10
|
+
| Uint32Array
|
|
11
|
+
| BigUint64Array
|
|
12
|
+
| Int8Array
|
|
13
|
+
| Int16Array
|
|
14
|
+
| Int32Array
|
|
15
|
+
| BigInt64Array
|
|
16
|
+
| Float32Array
|
|
17
|
+
| Float64Array
|
|
18
|
+
| ArrayBuffer
|
|
19
|
+
| SharedArrayBuffer
|
|
20
|
+
| DataView
|
|
21
|
+
| Blob
|
|
22
|
+
| File
|
|
23
|
+
| RegExp;
|
package/src/typings/OmitNever.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { SpecialFields } from "./SpecialFields";
|
|
2
|
-
|
|
3
|
-
export type OmitNever<T extends object> = Omit<T, SpecialFields<T, never>>;
|
|
1
|
+
import { SpecialFields } from "./SpecialFields";
|
|
2
|
+
|
|
3
|
+
export type OmitNever<T extends object> = Omit<T, SpecialFields<T, never>>;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export type ProtobufAtomic =
|
|
2
|
-
| "bool"
|
|
3
|
-
| "int32"
|
|
4
|
-
| "uint32"
|
|
5
|
-
| "int64"
|
|
6
|
-
| "uint64"
|
|
7
|
-
| "float"
|
|
8
|
-
| "double"
|
|
9
|
-
| "string";
|
|
10
|
-
export namespace ProtobufAtomic {
|
|
11
|
-
export type Numeric =
|
|
12
|
-
| "int32"
|
|
13
|
-
| "uint32"
|
|
14
|
-
| "int64"
|
|
15
|
-
| "uint64"
|
|
16
|
-
| "float"
|
|
17
|
-
| "double";
|
|
18
|
-
export type BigNumeric = "int64" | "uint64";
|
|
19
|
-
}
|
|
1
|
+
export type ProtobufAtomic =
|
|
2
|
+
| "bool"
|
|
3
|
+
| "int32"
|
|
4
|
+
| "uint32"
|
|
5
|
+
| "int64"
|
|
6
|
+
| "uint64"
|
|
7
|
+
| "float"
|
|
8
|
+
| "double"
|
|
9
|
+
| "string";
|
|
10
|
+
export namespace ProtobufAtomic {
|
|
11
|
+
export type Numeric =
|
|
12
|
+
| "int32"
|
|
13
|
+
| "uint32"
|
|
14
|
+
| "int64"
|
|
15
|
+
| "uint64"
|
|
16
|
+
| "float"
|
|
17
|
+
| "double";
|
|
18
|
+
export type BigNumeric = "int64" | "uint64";
|
|
19
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type SpecialFields<Instance extends object, Target> = {
|
|
2
|
-
[P in keyof Instance]: Instance[P] extends Target ? P : never;
|
|
3
|
-
}[keyof Instance & string];
|
|
1
|
+
export type SpecialFields<Instance extends object, Target> = {
|
|
2
|
+
[P in keyof Instance]: Instance[P] extends Target ? P : never;
|
|
3
|
+
}[keyof Instance & string];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export type ValidationPipe<T, E> =
|
|
2
|
-
| {
|
|
3
|
-
success: true;
|
|
4
|
-
data: T;
|
|
5
|
-
}
|
|
6
|
-
| {
|
|
7
|
-
success: false;
|
|
8
|
-
errors: E[];
|
|
9
|
-
};
|
|
1
|
+
export type ValidationPipe<T, E> =
|
|
2
|
+
| {
|
|
3
|
+
success: true;
|
|
4
|
+
data: T;
|
|
5
|
+
}
|
|
6
|
+
| {
|
|
7
|
+
success: false;
|
|
8
|
+
errors: E[];
|
|
9
|
+
};
|
package/src/typings/ValueOf.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export type ValueOf<Instance> =
|
|
2
|
-
IsValueOf<Instance, Boolean> extends true
|
|
3
|
-
? boolean
|
|
4
|
-
: IsValueOf<Instance, Number> extends true
|
|
5
|
-
? number
|
|
6
|
-
: IsValueOf<Instance, String> extends true
|
|
7
|
-
? string
|
|
8
|
-
: Instance;
|
|
9
|
-
|
|
10
|
-
type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
|
|
11
|
-
? Object extends IValueOf<infer Primitive>
|
|
12
|
-
? Instance extends Primitive
|
|
13
|
-
? false
|
|
14
|
-
: true // not Primitive, but Object
|
|
15
|
-
: false // cannot be
|
|
16
|
-
: false;
|
|
17
|
-
|
|
18
|
-
interface IValueOf<T> {
|
|
19
|
-
valueOf(): T;
|
|
20
|
-
}
|
|
1
|
+
export type ValueOf<Instance> =
|
|
2
|
+
IsValueOf<Instance, Boolean> extends true
|
|
3
|
+
? boolean
|
|
4
|
+
: IsValueOf<Instance, Number> extends true
|
|
5
|
+
? number
|
|
6
|
+
: IsValueOf<Instance, String> extends true
|
|
7
|
+
? string
|
|
8
|
+
: Instance;
|
|
9
|
+
|
|
10
|
+
type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
|
|
11
|
+
? Object extends IValueOf<infer Primitive>
|
|
12
|
+
? Instance extends Primitive
|
|
13
|
+
? false
|
|
14
|
+
: true // not Primitive, but Object
|
|
15
|
+
: false // cannot be
|
|
16
|
+
: false;
|
|
17
|
+
|
|
18
|
+
interface IValueOf<T> {
|
|
19
|
+
valueOf(): T;
|
|
20
|
+
}
|
package/src/typings/Writable.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ClassProperties } from "./ClassProperties";
|
|
2
|
-
|
|
3
|
-
export type Writable<T extends object> = {
|
|
4
|
-
-readonly [P in keyof T]: T[P];
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export function Writable<T extends object>(
|
|
8
|
-
elem: T,
|
|
9
|
-
): Writable<ClassProperties<T>> {
|
|
10
|
-
return elem as any;
|
|
11
|
-
}
|
|
1
|
+
import { ClassProperties } from "./ClassProperties";
|
|
2
|
+
|
|
3
|
+
export type Writable<T extends object> = {
|
|
4
|
+
-readonly [P in keyof T]: T[P];
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export function Writable<T extends object>(
|
|
8
|
+
elem: T,
|
|
9
|
+
): Writable<ClassProperties<T>> {
|
|
10
|
+
return elem as any;
|
|
11
|
+
}
|
package/src/utils/ArrayUtil.ts
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
export namespace ArrayUtil {
|
|
2
|
-
export const has = <T>(array: T[], pred: (elem: T) => boolean): boolean =>
|
|
3
|
-
array.some(pred);
|
|
4
|
-
|
|
5
|
-
export const add = <T>(
|
|
6
|
-
array: T[],
|
|
7
|
-
value: T,
|
|
8
|
-
pred: (x: T, y: T) => boolean = (x, y) => x === y,
|
|
9
|
-
): boolean => {
|
|
10
|
-
if (array.some((elem) => pred(elem, value))) return false;
|
|
11
|
-
array.push(value);
|
|
12
|
-
return true;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const set = <Key, T>(
|
|
16
|
-
array: T[],
|
|
17
|
-
value: T,
|
|
18
|
-
key: (elem: T) => Key,
|
|
19
|
-
): void => {
|
|
20
|
-
if (array.some((elem) => key(elem) === key(value))) return;
|
|
21
|
-
array.push(value);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const take = <T>(
|
|
25
|
-
array: T[],
|
|
26
|
-
pred: (elem: T) => boolean,
|
|
27
|
-
init: () => T,
|
|
28
|
-
): T => {
|
|
29
|
-
const index: number = array.findIndex(pred);
|
|
30
|
-
if (index !== -1) return array[index]!;
|
|
31
|
-
|
|
32
|
-
const elem: T = init();
|
|
33
|
-
array.push(elem);
|
|
34
|
-
return elem;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const repeat = <T>(
|
|
38
|
-
count: number,
|
|
39
|
-
closure: (index: number, count: number) => T,
|
|
40
|
-
): T[] => new Array(count).fill("").map((_, index) => closure(index, count));
|
|
41
|
-
}
|
|
1
|
+
export namespace ArrayUtil {
|
|
2
|
+
export const has = <T>(array: T[], pred: (elem: T) => boolean): boolean =>
|
|
3
|
+
array.some(pred);
|
|
4
|
+
|
|
5
|
+
export const add = <T>(
|
|
6
|
+
array: T[],
|
|
7
|
+
value: T,
|
|
8
|
+
pred: (x: T, y: T) => boolean = (x, y) => x === y,
|
|
9
|
+
): boolean => {
|
|
10
|
+
if (array.some((elem) => pred(elem, value))) return false;
|
|
11
|
+
array.push(value);
|
|
12
|
+
return true;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const set = <Key, T>(
|
|
16
|
+
array: T[],
|
|
17
|
+
value: T,
|
|
18
|
+
key: (elem: T) => Key,
|
|
19
|
+
): void => {
|
|
20
|
+
if (array.some((elem) => key(elem) === key(value))) return;
|
|
21
|
+
array.push(value);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const take = <T>(
|
|
25
|
+
array: T[],
|
|
26
|
+
pred: (elem: T) => boolean,
|
|
27
|
+
init: () => T,
|
|
28
|
+
): T => {
|
|
29
|
+
const index: number = array.findIndex(pred);
|
|
30
|
+
if (index !== -1) return array[index]!;
|
|
31
|
+
|
|
32
|
+
const elem: T = init();
|
|
33
|
+
array.push(elem);
|
|
34
|
+
return elem;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const repeat = <T>(
|
|
38
|
+
count: number,
|
|
39
|
+
closure: (index: number, count: number) => T,
|
|
40
|
+
): T[] => new Array(count).fill("").map((_, index) => closure(index, count));
|
|
41
|
+
}
|