typia 5.0.0-dev.20230827 → 5.0.0-dev.20230828
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/executable/TypiaGenerateWizard.js +1 -1
- package/lib/executable/TypiaGenerateWizard.js.map +1 -1
- package/lib/executable/TypiaSetupWizard.js +1 -1
- package/lib/executable/TypiaSetupWizard.js.map +1 -1
- package/lib/executable/setup/PackageManager.js +1 -1
- package/lib/executable/setup/PackageManager.js.map +1 -1
- package/lib/executable/setup/PluginConfigurator.js +2 -2
- package/lib/executable/setup/PluginConfigurator.js.map +1 -1
- package/lib/factories/ExpressionFactory.js +2 -2
- package/lib/factories/ExpressionFactory.js.map +1 -1
- package/lib/factories/JsonMetadataFactory.d.ts +7 -0
- package/lib/factories/JsonMetadataFactory.js +38 -0
- package/lib/factories/JsonMetadataFactory.js.map +1 -0
- package/lib/factories/LiteralFactory.js +1 -1
- package/lib/factories/LiteralFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.js +0 -1
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataCommentTagFactory.js +129 -118
- package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
- package/lib/factories/MetadataFactory.d.ts +22 -2
- package/lib/factories/MetadataFactory.js +221 -17
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/MetadataTypeTagFactory.d.ts +3 -2
- package/lib/factories/MetadataTypeTagFactory.js +246 -173
- package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +73 -68
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/TypeFactory.d.ts +0 -1
- package/lib/factories/TypeFactory.js +0 -5
- package/lib/factories/TypeFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.js +20 -7
- package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js +20 -7
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.js +100 -84
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_tuple.js +34 -21
- package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
- package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
- package/lib/factories/internal/metadata/explore_metadata.js +12 -12
- package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js +39 -19
- package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_alias.js +12 -10
- package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_array.js +11 -9
- package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.js +47 -45
- package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +16 -20
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +145 -135
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.js +28 -15
- package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +16 -14
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js +28 -15
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js +24 -11
- package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js +28 -15
- package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js +11 -9
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_union.js +20 -7
- package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +13 -8
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +1 -1
- package/lib/programmers/FeatureProgrammer.js +1 -1
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.js +1 -1
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +9 -4
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/TypiaProgrammer.js +58 -28
- package/lib/programmers/TypiaProgrammer.js.map +1 -1
- package/lib/programmers/internal/application_escaped.d.ts +4 -0
- package/lib/programmers/internal/{application_resolved.js → application_escaped.js} +4 -4
- package/lib/programmers/internal/application_escaped.js.map +1 -0
- package/lib/programmers/internal/application_schema.js +5 -5
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/json/JsonApplicationProgrammer.js +5 -1
- package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonAssertParseProgrammer.js +2 -0
- package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonIsParseProgrammer.js +2 -0
- package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +20 -62
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonValidateParseProgrammer.js +2 -0
- package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +13 -8
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscLiteralsProgrammer.js +10 -5
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +13 -8
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/schemas/metadata/Metadata.js +4 -4
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/transform.d.ts +2 -1
- package/lib/transform.js +11 -3
- package/lib/transform.js.map +1 -1
- package/lib/transformers/CallExpressionTransformer.d.ts +1 -1
- package/lib/transformers/CallExpressionTransformer.js +2 -1
- package/lib/transformers/CallExpressionTransformer.js.map +1 -1
- package/lib/transformers/FileTransformer.js +18 -8
- package/lib/transformers/FileTransformer.js.map +1 -1
- package/lib/transformers/IProject.d.ts +3 -0
- package/lib/transformers/NodeTransformer.d.ts +1 -1
- package/lib/transformers/TransformerError.d.ts +12 -0
- package/lib/transformers/TransformerError.js +66 -0
- package/lib/transformers/TransformerError.js.map +1 -0
- package/lib/transformers/features/AssertTransformer.d.ts +1 -0
- package/lib/transformers/features/CreateAssertTransformer.d.ts +1 -0
- package/lib/transformers/features/CreateIsTransformer.d.ts +1 -0
- package/lib/transformers/features/CreateRandomTransformer.js +9 -4
- package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
- package/lib/transformers/features/CreateValidateTransformer.d.ts +1 -0
- package/lib/transformers/features/IsTransformer.d.ts +1 -0
- package/lib/transformers/features/RandomTransformer.js +9 -4
- package/lib/transformers/features/RandomTransformer.js.map +1 -1
- package/lib/transformers/features/ValidateTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonApplicationTransformer.js +79 -19
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/json/JsonAssertParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonAssertStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateAssertParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateIsParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateValidateParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.d.ts +1 -0
- package/lib/transformers/features/json/JsonIsParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonIsStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonValidateParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonValidateStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MetadataTransformer.js +13 -5
- package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscAssertCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscAssertPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreatePruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscIsCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscIsPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscLiteralsTransformer.js +9 -4
- package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscValidateCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscValidatePruneTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +9 -2
- package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
- package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.d.ts +1 -0
- package/lib/transformers/internal/GenericTransformer.js +17 -4
- package/lib/transformers/internal/GenericTransformer.js.map +1 -1
- package/lib/typings/ValidationPipe.d.ts +7 -0
- package/lib/typings/ValidationPipe.js +3 -0
- package/lib/typings/ValidationPipe.js.map +1 -0
- package/package.json +3 -1
- package/src/executable/TypiaGenerateWizard.ts +1 -1
- package/src/executable/TypiaSetupWizard.ts +1 -1
- package/src/executable/setup/PackageManager.ts +1 -1
- package/src/executable/setup/PluginConfigurator.ts +2 -2
- package/src/factories/ExpressionFactory.ts +2 -2
- package/src/factories/JsonMetadataFactory.ts +43 -0
- package/src/factories/LiteralFactory.ts +2 -1
- package/src/factories/MetadataCollection.ts +0 -5
- package/src/factories/MetadataCommentTagFactory.ts +130 -84
- package/src/factories/MetadataFactory.ts +169 -7
- package/src/factories/MetadataTypeTagFactory.ts +191 -141
- package/src/factories/ProtobufFactory.ts +86 -93
- package/src/factories/TypeFactory.ts +0 -5
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +12 -5
- package/src/factories/internal/metadata/emplace_metadata_array_type.ts +12 -5
- package/src/factories/internal/metadata/emplace_metadata_object.ts +20 -5
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +12 -2
- package/src/factories/internal/metadata/explore_metadata.ts +5 -11
- package/src/factories/internal/metadata/iterate_metadata.ts +44 -24
- package/src/factories/internal/metadata/iterate_metadata_alias.ts +7 -2
- package/src/factories/internal/metadata/iterate_metadata_array.ts +7 -2
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +30 -29
- package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +21 -22
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +33 -17
- package/src/factories/internal/metadata/iterate_metadata_map.ts +20 -4
- package/src/factories/internal/metadata/iterate_metadata_object.ts +2 -1
- package/src/factories/internal/metadata/iterate_metadata_resolve.ts +15 -12
- package/src/factories/internal/metadata/iterate_metadata_set.ts +11 -2
- package/src/factories/internal/metadata/iterate_metadata_template.ts +12 -3
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +7 -2
- package/src/factories/internal/metadata/iterate_metadata_union.ts +10 -7
- package/src/programmers/CheckerProgrammer.ts +8 -2
- package/src/programmers/FeatureProgrammer.ts +4 -1
- package/src/programmers/IsProgrammer.ts +1 -1
- package/src/programmers/RandomProgrammer.ts +18 -17
- package/src/programmers/TypiaProgrammer.ts +27 -2
- package/src/programmers/internal/{application_resolved.ts → application_escaped.ts} +1 -1
- package/src/programmers/internal/application_schema.ts +5 -5
- package/src/programmers/json/JsonApplicationProgrammer.ts +6 -3
- package/src/programmers/json/JsonAssertParseProgrammer.ts +7 -2
- package/src/programmers/json/JsonIsParseProgrammer.ts +7 -2
- package/src/programmers/json/JsonStringifyProgrammer.ts +7 -37
- package/src/programmers/json/JsonValidateParseProgrammer.ts +7 -2
- package/src/programmers/json/JsonValidateStringifyProgrammer.ts +1 -1
- package/src/programmers/misc/MiscCloneProgrammer.ts +14 -11
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +11 -6
- package/src/programmers/misc/MiscPruneProgrammer.ts +8 -2
- package/src/schemas/metadata/Metadata.ts +4 -4
- package/src/transform.ts +13 -5
- package/src/transformers/CallExpressionTransformer.ts +6 -3
- package/src/transformers/FileTransformer.ts +25 -13
- package/src/transformers/IProject.ts +3 -0
- package/src/transformers/NodeTransformer.ts +1 -1
- package/src/transformers/TransformerError.ts +55 -0
- package/src/transformers/features/CreateRandomTransformer.ts +11 -7
- package/src/transformers/features/RandomTransformer.ts +11 -7
- package/src/transformers/features/json/JsonApplicationTransformer.ts +39 -35
- package/src/transformers/features/misc/MetadataTransformer.ts +18 -10
- package/src/transformers/features/misc/MiscLiteralsTransformer.ts +11 -7
- package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +9 -7
- package/src/transformers/internal/GenericTransformer.ts +17 -10
- package/src/typings/ValidationPipe.ts +9 -0
- package/lib/programmers/internal/application_resolved.d.ts +0 -4
- package/lib/programmers/internal/application_resolved.js.map +0 -1
|
@@ -3,6 +3,7 @@ import ts from "typescript";
|
|
|
3
3
|
import { RandomProgrammer } from "../../programmers/RandomProgrammer";
|
|
4
4
|
|
|
5
5
|
import { IProject } from "../IProject";
|
|
6
|
+
import { TransformerError } from "../TransformerError";
|
|
6
7
|
|
|
7
8
|
export namespace RandomTransformer {
|
|
8
9
|
export const transform =
|
|
@@ -10,13 +11,21 @@ export namespace RandomTransformer {
|
|
|
10
11
|
(modulo: ts.LeftHandSideExpression) =>
|
|
11
12
|
(expression: ts.CallExpression): ts.Expression => {
|
|
12
13
|
// CHECK GENERIC ARGUMENT EXISTENCE
|
|
13
|
-
if (!expression.typeArguments?.[0])
|
|
14
|
+
if (!expression.typeArguments?.[0])
|
|
15
|
+
throw new TransformerError({
|
|
16
|
+
code: `typia.${modulo.getText()}`,
|
|
17
|
+
message: "generic argument is not specified.",
|
|
18
|
+
});
|
|
14
19
|
|
|
15
20
|
// GET TYPE INFO
|
|
16
21
|
const node: ts.TypeNode = expression.typeArguments[0];
|
|
17
22
|
const type: ts.Type = project.checker.getTypeFromTypeNode(node);
|
|
18
23
|
|
|
19
|
-
if (type.isTypeParameter())
|
|
24
|
+
if (type.isTypeParameter())
|
|
25
|
+
throw new TransformerError({
|
|
26
|
+
code: `typia.${modulo.getText()}`,
|
|
27
|
+
message: "non-specified generic argument.",
|
|
28
|
+
});
|
|
20
29
|
|
|
21
30
|
// DO TRANSFORM
|
|
22
31
|
return ts.factory.createCallExpression(
|
|
@@ -35,8 +44,3 @@ export namespace RandomTransformer {
|
|
|
35
44
|
);
|
|
36
45
|
};
|
|
37
46
|
}
|
|
38
|
-
|
|
39
|
-
const NOT_SPECIFIED =
|
|
40
|
-
"Error on typia.random(): generic argument is not specified.";
|
|
41
|
-
const NO_GENERIC_ARGUMENT =
|
|
42
|
-
"Error on typia.random(): non-specified generic argument.";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
|
+
import { JsonMetadataFactory } from "../../../factories/JsonMetadataFactory";
|
|
3
4
|
import { LiteralFactory } from "../../../factories/LiteralFactory";
|
|
4
5
|
import { MetadataCollection } from "../../../factories/MetadataCollection";
|
|
5
6
|
import { MetadataFactory } from "../../../factories/MetadataFactory";
|
|
@@ -9,14 +10,20 @@ import { Metadata } from "../../../schemas/metadata/Metadata";
|
|
|
9
10
|
|
|
10
11
|
import { JsonApplicationProgrammer } from "../../../programmers/json/JsonApplicationProgrammer";
|
|
11
12
|
|
|
13
|
+
import { ValidationPipe } from "../../../typings/ValidationPipe";
|
|
14
|
+
|
|
12
15
|
import { IProject } from "../../IProject";
|
|
16
|
+
import { TransformerError } from "../../TransformerError";
|
|
13
17
|
|
|
14
18
|
export namespace JsonApplicationTransformer {
|
|
15
19
|
export const transform =
|
|
16
20
|
({ checker }: IProject) =>
|
|
17
21
|
(expression: ts.CallExpression): ts.Expression => {
|
|
18
22
|
if (!expression.typeArguments?.length)
|
|
19
|
-
throw new
|
|
23
|
+
throw new TransformerError({
|
|
24
|
+
code: "typia.json.application",
|
|
25
|
+
message: "no generic argument.",
|
|
26
|
+
});
|
|
20
27
|
|
|
21
28
|
//----
|
|
22
29
|
// GET ARGUMENTS
|
|
@@ -32,7 +39,10 @@ export namespace JsonApplicationTransformer {
|
|
|
32
39
|
checker.getTypeFromTypeNode(child as ts.TypeNode),
|
|
33
40
|
);
|
|
34
41
|
if (types.some((t) => t.isTypeParameter()))
|
|
35
|
-
throw new
|
|
42
|
+
throw new TransformerError({
|
|
43
|
+
code: "typia.json.application",
|
|
44
|
+
message: "non-specified generic argument(s).",
|
|
45
|
+
});
|
|
36
46
|
|
|
37
47
|
// ADDITIONAL PARAMETERS
|
|
38
48
|
const purpose: "swagger" | "ajv" = get_parameter(
|
|
@@ -48,24 +58,25 @@ export namespace JsonApplicationTransformer {
|
|
|
48
58
|
//----
|
|
49
59
|
// METADATA
|
|
50
60
|
const collection: MetadataCollection = new MetadataCollection();
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
)
|
|
61
|
+
const results: ValidationPipe<Metadata, MetadataFactory.IError>[] =
|
|
62
|
+
types.map((type) =>
|
|
63
|
+
MetadataFactory.analyze(checker)({
|
|
64
|
+
escape: true,
|
|
65
|
+
constant: true,
|
|
66
|
+
absorb: false,
|
|
67
|
+
validate: JsonMetadataFactory.validate,
|
|
68
|
+
})(collection)(type),
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
// REPORT BUG IF REQUIRED
|
|
72
|
+
const metadatas: Metadata[] = [];
|
|
73
|
+
const errors: MetadataFactory.IError[] = [];
|
|
74
|
+
for (const r of results) {
|
|
75
|
+
if (r.success === false) errors.push(...r.errors);
|
|
76
|
+
else metadatas.push(r.data);
|
|
77
|
+
}
|
|
78
|
+
if (errors.length)
|
|
79
|
+
throw TransformerError.from("typia.json.application")(errors);
|
|
69
80
|
|
|
70
81
|
// APPLICATION
|
|
71
82
|
const app: IJsonApplication = JsonApplicationProgrammer.write({
|
|
@@ -88,25 +99,18 @@ export namespace JsonApplicationTransformer {
|
|
|
88
99
|
// CHECK LITERAL TYPE
|
|
89
100
|
const type: ts.Type = checker.getTypeFromTypeNode(node);
|
|
90
101
|
if (!type.isLiteral())
|
|
91
|
-
throw new
|
|
92
|
-
|
|
93
|
-
|
|
102
|
+
throw new TransformerError({
|
|
103
|
+
code: "typia.json.application",
|
|
104
|
+
message: `generic argument "${name}" must be constant.`,
|
|
105
|
+
});
|
|
94
106
|
|
|
95
107
|
// GET VALUE AND VALIDATE IT
|
|
96
108
|
const value = type.value;
|
|
97
109
|
if (typeof value !== "string" || predicator(value) === false)
|
|
98
|
-
throw new
|
|
99
|
-
|
|
100
|
-
|
|
110
|
+
throw new TransformerError({
|
|
111
|
+
code: "typia.json.application",
|
|
112
|
+
message: `invalid value on generic argument "${name}".`,
|
|
113
|
+
});
|
|
101
114
|
return value as T;
|
|
102
115
|
};
|
|
103
116
|
}
|
|
104
|
-
|
|
105
|
-
const NO_GENERIC_ARGUMENT =
|
|
106
|
-
"Error on typia.json.application(): no generic argument.";
|
|
107
|
-
const GENERIC_ARGUMENT =
|
|
108
|
-
"Error on typia.json.application(): non-specified generic argument(s).";
|
|
109
|
-
const NO_BIGIT =
|
|
110
|
-
"Error on typia.json.application(): does not allow bigint type.";
|
|
111
|
-
const NO_UNDEFINED_IN_ARRAY =
|
|
112
|
-
"Error on typia.json.application(): does not allow undefined type in array.";
|
|
@@ -8,13 +8,17 @@ import { IMetadataApplication } from "../../../schemas/metadata/IMetadataApplica
|
|
|
8
8
|
import { Metadata } from "../../../schemas/metadata/Metadata";
|
|
9
9
|
|
|
10
10
|
import { IProject } from "../../IProject";
|
|
11
|
+
import { TransformerError } from "../../TransformerError";
|
|
11
12
|
|
|
12
13
|
export namespace MetadataTransformer {
|
|
13
14
|
export const transform =
|
|
14
15
|
({ checker }: IProject) =>
|
|
15
16
|
(expression: ts.CallExpression): ts.Expression => {
|
|
16
17
|
if (!expression.typeArguments?.length)
|
|
17
|
-
throw new
|
|
18
|
+
throw new TransformerError({
|
|
19
|
+
code: "typia.metadata",
|
|
20
|
+
message: "no generic argument.",
|
|
21
|
+
});
|
|
18
22
|
|
|
19
23
|
// VALIDATE TUPLE ARGUMENTS
|
|
20
24
|
const top: ts.Node = expression.typeArguments[0]!;
|
|
@@ -27,17 +31,25 @@ export namespace MetadataTransformer {
|
|
|
27
31
|
checker.getTypeFromTypeNode(child as ts.TypeNode),
|
|
28
32
|
);
|
|
29
33
|
if (types.some((t) => t.isTypeParameter()))
|
|
30
|
-
throw new
|
|
34
|
+
throw new TransformerError({
|
|
35
|
+
code: "typia.metadata",
|
|
36
|
+
message: "non-specified generic argument(s).",
|
|
37
|
+
});
|
|
31
38
|
|
|
32
39
|
// METADATA
|
|
33
40
|
const collection: MetadataCollection = new MetadataCollection();
|
|
34
|
-
const metadatas: Array<Metadata> = types.map((type) =>
|
|
35
|
-
MetadataFactory.analyze(checker)({
|
|
41
|
+
const metadatas: Array<Metadata> = types.map((type) => {
|
|
42
|
+
const result = MetadataFactory.analyze(checker)({
|
|
36
43
|
escape: true,
|
|
37
44
|
constant: true,
|
|
38
45
|
absorb: true,
|
|
39
|
-
})(collection)(type)
|
|
40
|
-
|
|
46
|
+
})(collection)(type);
|
|
47
|
+
if (result.success === false)
|
|
48
|
+
throw TransformerError.from("typia.metadata")(
|
|
49
|
+
result.errors,
|
|
50
|
+
);
|
|
51
|
+
return result.data;
|
|
52
|
+
});
|
|
41
53
|
|
|
42
54
|
// CONVERT TO PRIMITIVE TYPE
|
|
43
55
|
const app: IMetadataApplication = {
|
|
@@ -47,7 +59,3 @@ export namespace MetadataTransformer {
|
|
|
47
59
|
return LiteralFactory.generate(app);
|
|
48
60
|
};
|
|
49
61
|
}
|
|
50
|
-
|
|
51
|
-
const NO_GENERIC_ARGUMENT = "Error on typia.metadata(): no generic argument.";
|
|
52
|
-
const GENERIC_ARGUMENT =
|
|
53
|
-
"Error on typia.metadata(): non-specified generic argument(s).";
|
|
@@ -3,26 +3,30 @@ import ts from "typescript";
|
|
|
3
3
|
import { MiscLiteralsProgrammer } from "../../../programmers/misc/MiscLiteralsProgrammer";
|
|
4
4
|
|
|
5
5
|
import { IProject } from "../../IProject";
|
|
6
|
+
import { TransformerError } from "../../TransformerError";
|
|
6
7
|
|
|
7
8
|
export namespace MiscLiteralsTransformer {
|
|
8
9
|
export const transform =
|
|
9
10
|
(project: IProject) =>
|
|
10
11
|
(expression: ts.CallExpression): ts.Expression => {
|
|
11
12
|
// CHECK GENERIC ARGUMENT EXISTENCE
|
|
12
|
-
if (!expression.typeArguments?.[0])
|
|
13
|
+
if (!expression.typeArguments?.[0])
|
|
14
|
+
throw new TransformerError({
|
|
15
|
+
code: "typia.misc.literals",
|
|
16
|
+
message: "generic argument is not specified.",
|
|
17
|
+
});
|
|
13
18
|
|
|
14
19
|
// GET TYPE INFO
|
|
15
20
|
const node: ts.TypeNode = expression.typeArguments[0];
|
|
16
21
|
const type: ts.Type = project.checker.getTypeFromTypeNode(node);
|
|
17
22
|
|
|
18
|
-
if (type.isTypeParameter())
|
|
23
|
+
if (type.isTypeParameter())
|
|
24
|
+
throw new TransformerError({
|
|
25
|
+
code: "typia.misc.literals",
|
|
26
|
+
message: "non-specified generic argument.",
|
|
27
|
+
});
|
|
19
28
|
|
|
20
29
|
// DO TRANSFORM
|
|
21
30
|
return MiscLiteralsProgrammer.write(project)(type);
|
|
22
31
|
};
|
|
23
32
|
}
|
|
24
|
-
|
|
25
|
-
const NOT_SPECIFIED =
|
|
26
|
-
"Error on typia.literals(): generic argument is not specified.";
|
|
27
|
-
const NO_GENERIC_ARGUMENT =
|
|
28
|
-
"Error on typia.literals(): non-specified generic argument.";
|
|
@@ -3,6 +3,7 @@ import ts from "typescript";
|
|
|
3
3
|
import { ProtobufMessageProgrammer } from "../../../programmers/protobuf/ProtobufMessageProgrammer";
|
|
4
4
|
|
|
5
5
|
import { IProject } from "../../IProject";
|
|
6
|
+
import { TransformerError } from "../../TransformerError";
|
|
6
7
|
|
|
7
8
|
export namespace ProtobufMessageTransformer {
|
|
8
9
|
export const transform =
|
|
@@ -11,21 +12,22 @@ export namespace ProtobufMessageTransformer {
|
|
|
11
12
|
(expression: ts.CallExpression): ts.Expression => {
|
|
12
13
|
// CHECK GENERIC ARGUMENT EXISTENCE
|
|
13
14
|
if (!expression.typeArguments || !expression.typeArguments[0])
|
|
14
|
-
throw new
|
|
15
|
+
throw new TransformerError({
|
|
16
|
+
code: "typia.protobuf.message",
|
|
17
|
+
message: "generic argument is not specified.",
|
|
18
|
+
});
|
|
15
19
|
|
|
16
20
|
// GET TYPE INFO
|
|
17
21
|
const type: ts.Type = project.checker.getTypeFromTypeNode(
|
|
18
22
|
expression.typeArguments[0],
|
|
19
23
|
);
|
|
20
24
|
if (type.isTypeParameter())
|
|
21
|
-
throw new
|
|
25
|
+
throw new TransformerError({
|
|
26
|
+
code: "tyipa.protobuf.message",
|
|
27
|
+
message: "non-specified generic argument.",
|
|
28
|
+
});
|
|
22
29
|
|
|
23
30
|
// DO TRANSFORM
|
|
24
31
|
return ProtobufMessageProgrammer.write(project)(type);
|
|
25
32
|
};
|
|
26
33
|
}
|
|
27
|
-
|
|
28
|
-
const enum ErrorMessages {
|
|
29
|
-
NOT_SPECIFIED = "Error on typia.protobuf.message(): generic argument is not specified.",
|
|
30
|
-
GENERIC_ARGUMENT = "Error on typia.protobuf.message(): non-specified generic argument.",
|
|
31
|
-
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
3
|
import { IProject } from "../IProject";
|
|
4
|
+
import { TransformerError } from "../TransformerError";
|
|
4
5
|
|
|
5
6
|
export namespace GenericTransformer {
|
|
6
7
|
export const scalar =
|
|
@@ -17,7 +18,10 @@ export namespace GenericTransformer {
|
|
|
17
18
|
(expression: ts.CallExpression) => {
|
|
18
19
|
// CHECK PARAMETER
|
|
19
20
|
if (expression.arguments.length !== 1)
|
|
20
|
-
throw new
|
|
21
|
+
throw new TransformerError({
|
|
22
|
+
code: `typia.${method}`,
|
|
23
|
+
message: `no input value.`,
|
|
24
|
+
});
|
|
21
25
|
|
|
22
26
|
// GET TYPE INFO
|
|
23
27
|
const [type, node, generic]: [ts.Type, ts.Node, boolean] =
|
|
@@ -37,9 +41,10 @@ export namespace GenericTransformer {
|
|
|
37
41
|
false,
|
|
38
42
|
];
|
|
39
43
|
if (type.isTypeParameter())
|
|
40
|
-
throw new
|
|
41
|
-
`
|
|
42
|
-
|
|
44
|
+
throw new TransformerError({
|
|
45
|
+
code: `typia.${method}`,
|
|
46
|
+
message: `non-specified generic argument.`,
|
|
47
|
+
});
|
|
43
48
|
|
|
44
49
|
// DO TRANSFORM
|
|
45
50
|
return ts.factory.createCallExpression(
|
|
@@ -68,18 +73,20 @@ export namespace GenericTransformer {
|
|
|
68
73
|
(expression: ts.CallExpression) => {
|
|
69
74
|
// CHECK GENERIC ARGUMENT EXISTENCE
|
|
70
75
|
if (!expression.typeArguments?.[0])
|
|
71
|
-
throw new
|
|
72
|
-
`
|
|
73
|
-
|
|
76
|
+
throw new TransformerError({
|
|
77
|
+
code: `typia.${method}`,
|
|
78
|
+
message: `generic argument is not specified.`,
|
|
79
|
+
});
|
|
74
80
|
|
|
75
81
|
// GET TYPE INFO
|
|
76
82
|
const node: ts.TypeNode = expression.typeArguments[0];
|
|
77
83
|
const type: ts.Type = project.checker.getTypeFromTypeNode(node);
|
|
78
84
|
|
|
79
85
|
if (type.isTypeParameter())
|
|
80
|
-
throw new
|
|
81
|
-
`
|
|
82
|
-
|
|
86
|
+
throw new TransformerError({
|
|
87
|
+
code: `typia.${method}`,
|
|
88
|
+
message: `non-specified generic argument.`,
|
|
89
|
+
});
|
|
83
90
|
|
|
84
91
|
// DO TRANSFORM
|
|
85
92
|
return programmer(project)(modulo)(type, node.getFullText().trim());
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { MetadataEscaped } from "../../schemas/metadata/MetadataEscaped";
|
|
2
|
-
import { IJsonComponents, IJsonSchema } from "../../module";
|
|
3
|
-
import { JsonApplicationProgrammer } from "../json/JsonApplicationProgrammer";
|
|
4
|
-
export declare const application_resolved: (options: JsonApplicationProgrammer.IOptions) => <BlockNever extends boolean>(blockNever: BlockNever) => (components: IJsonComponents) => (resolved: MetadataEscaped) => (attribute: IJsonSchema.IAttribute) => IJsonSchema[];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application_resolved.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_resolved.ts"],"names":[],"mappings":";;;AAKA,2DAA0D;AAEnD,IAAM,oBAAoB,GAC7B,UAAC,OAA2C;IAC5C,OAAA,UAA6B,UAAsB;QACnD,OAAA,UAAC,UAA2B;YAC5B,OAAA,UAAC,QAAyB;gBAC1B,OAAA,UAAC,SAAiC;oBAC9B,IAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAC9D,QAAQ,CAAC,OAAO,CACnB,CAAC,SAAS,CAAC,CAAC;oBACb,IAAI,MAAM,KAAK,IAAI;wBAAE,OAAO,EAAE,CAAC;oBAE/B,IAAI,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;wBACvC,IAAM,MAAM,GAAoC,SAAS,CAAC,MAAM,CAAC;4BAC7D,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;gCACnB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gCAC9B,CAAC,CAAC,SAAS,CAAC;wBAChB,IACI,MAAM,KAAK,SAAS;4BACpB,MAAM,CAAC,MAAM,KAAK,MAAM;4BACxB,MAAM,CAAC,MAAM,KAAK,WAAW;4BAE7B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;qBACnC;oBACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACvD,CAAC;YApBD,CAoBC;QArBD,CAqBC;IAtBD,CAsBC;AAvBD,CAuBC,CAAC;AAzBO,QAAA,oBAAoB,wBAyB3B;AAEN,IAAM,SAAS,GAAG,UAAC,IAAiB;IAChC,OAAC,IAA4B,CAAC,IAAI,KAAK,QAAQ;AAA/C,CAA+C,CAAC;AAEpD,IAAM,SAAS,GAAG,UAAC,IAAiB;IAChC,OAAA,KAAK,CAAC,OAAO,CAAE,IAA2B,CAAC,KAAK,CAAC;AAAjD,CAAiD,CAAC;AAEtD,IAAM,OAAO,GACT,UAAC,OAAsB;IACvB,OAAA,UAAC,IAAc;QACX,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,OAAO,CACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,MAAM,EAAf,CAAe,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAlC,CAAkC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK;gBACnB,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAA1C,CAA0C,CAC7C;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAA7B,CAA6B,CAAC,CAC9D,CAAC;IACN,CAAC;AAZD,CAYC,CAAC"}
|