@typia/transform 12.0.0-dev.20260309 → 12.0.0-dev.20260310

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.
Files changed (117) hide show
  1. package/package.json +4 -4
  2. package/src/CallExpressionTransformer.ts +579 -579
  3. package/src/FileTransformer.ts +143 -143
  4. package/src/ITransformProps.ts +20 -20
  5. package/src/ImportTransformer.ts +262 -262
  6. package/src/NodeTransformer.ts +25 -25
  7. package/src/TransformerError.ts +85 -85
  8. package/src/TypiaGenerator.ts +172 -172
  9. package/src/features/AssertTransformer.ts +24 -24
  10. package/src/features/CreateAssertTransformer.ts +24 -24
  11. package/src/features/CreateIsTransformer.ts +18 -18
  12. package/src/features/CreateRandomTransformer.ts +42 -42
  13. package/src/features/CreateValidateTransformer.ts +18 -18
  14. package/src/features/IsTransformer.ts +18 -18
  15. package/src/features/RandomTransformer.ts +40 -40
  16. package/src/features/ValidateTransformer.ts +18 -18
  17. package/src/features/functional/FunctionalGenericTransformer.ts +55 -55
  18. package/src/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  19. package/src/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  20. package/src/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  21. package/src/features/http/CreateHttpFormDataTransformer.ts +13 -13
  22. package/src/features/http/CreateHttpHeadersTransformer.ts +13 -13
  23. package/src/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  24. package/src/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  25. package/src/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  26. package/src/features/http/CreateHttpParameterTransformer.ts +13 -13
  27. package/src/features/http/CreateHttpQueryTransformer.ts +13 -13
  28. package/src/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  29. package/src/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  30. package/src/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  31. package/src/features/http/HttpAssertFormDataTransformer.ts +13 -13
  32. package/src/features/http/HttpAssertHeadersTransformer.ts +13 -13
  33. package/src/features/http/HttpAssertQueryTransformer.ts +13 -13
  34. package/src/features/http/HttpFormDataTransformer.ts +13 -13
  35. package/src/features/http/HttpHeadersTransformer.ts +13 -13
  36. package/src/features/http/HttpIsFormDataTransformer.ts +13 -13
  37. package/src/features/http/HttpIsHeadersTransformer.ts +13 -13
  38. package/src/features/http/HttpIsQueryTransformer.ts +13 -13
  39. package/src/features/http/HttpParameterTransformer.ts +13 -13
  40. package/src/features/http/HttpQueryTransformer.ts +13 -13
  41. package/src/features/http/HttpValidateFormDataTransformer.ts +13 -13
  42. package/src/features/http/HttpValidateHeadersTransformer.ts +13 -13
  43. package/src/features/http/HttpValidateQueryTransformer.ts +13 -13
  44. package/src/features/json/JsonApplicationTransformer.ts +99 -99
  45. package/src/features/json/JsonAssertParseTransformer.ts +13 -13
  46. package/src/features/json/JsonAssertStringifyTransformer.ts +13 -13
  47. package/src/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  48. package/src/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  49. package/src/features/json/JsonCreateIsParseTransformer.ts +13 -13
  50. package/src/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  51. package/src/features/json/JsonCreateStringifyTransformer.ts +13 -13
  52. package/src/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  53. package/src/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  54. package/src/features/json/JsonIsParseTransformer.ts +13 -13
  55. package/src/features/json/JsonIsStringifyTransformer.ts +13 -13
  56. package/src/features/json/JsonSchemaTransformer.ts +120 -120
  57. package/src/features/json/JsonSchemasTransformer.ts +130 -130
  58. package/src/features/json/JsonStringifyTransformer.ts +13 -13
  59. package/src/features/json/JsonValidateParseTransformer.ts +13 -13
  60. package/src/features/json/JsonValidateStringifyTransformer.ts +13 -13
  61. package/src/features/llm/LlmApplicationTransformer.ts +224 -224
  62. package/src/features/llm/LlmCoerceTransformer.ts +95 -95
  63. package/src/features/llm/LlmControllerTransformer.ts +81 -81
  64. package/src/features/llm/LlmCreateCoerceTransformer.ts +84 -84
  65. package/src/features/llm/LlmCreateParseTransformer.ts +84 -84
  66. package/src/features/llm/LlmParametersTransformer.ts +76 -76
  67. package/src/features/llm/LlmParseTransformer.ts +95 -95
  68. package/src/features/llm/LlmSchemaTransformer.ts +87 -87
  69. package/src/features/misc/MiscAssertCloneTransformer.ts +13 -13
  70. package/src/features/misc/MiscAssertPruneTransformer.ts +13 -13
  71. package/src/features/misc/MiscCloneTransformer.ts +13 -13
  72. package/src/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  73. package/src/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  74. package/src/features/misc/MiscCreateCloneTransformer.ts +13 -13
  75. package/src/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  76. package/src/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  77. package/src/features/misc/MiscCreatePruneTransformer.ts +13 -13
  78. package/src/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  79. package/src/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  80. package/src/features/misc/MiscIsCloneTransformer.ts +13 -13
  81. package/src/features/misc/MiscIsPruneTransformer.ts +13 -13
  82. package/src/features/misc/MiscLiteralsTransformer.ts +34 -34
  83. package/src/features/misc/MiscPruneTransformer.ts +13 -13
  84. package/src/features/misc/MiscValidateCloneTransformer.ts +13 -13
  85. package/src/features/misc/MiscValidatePruneTransformer.ts +13 -13
  86. package/src/features/notations/NotationAssertGeneralTransformer.ts +19 -19
  87. package/src/features/notations/NotationCreateAssertGeneralTransformer.ts +19 -19
  88. package/src/features/notations/NotationCreateGeneralTransformer.ts +19 -19
  89. package/src/features/notations/NotationCreateIsGeneralTransformer.ts +19 -19
  90. package/src/features/notations/NotationCreateValidateGeneralTransformer.ts +19 -19
  91. package/src/features/notations/NotationGeneralTransformer.ts +18 -18
  92. package/src/features/notations/NotationIsGeneralTransformer.ts +19 -19
  93. package/src/features/notations/NotationValidateGeneralTransformer.ts +19 -19
  94. package/src/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  95. package/src/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  96. package/src/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  97. package/src/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  98. package/src/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  99. package/src/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  100. package/src/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  101. package/src/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  102. package/src/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  103. package/src/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  104. package/src/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  105. package/src/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  106. package/src/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  107. package/src/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  108. package/src/features/protobuf/ProtobufMessageTransformer.ts +34 -34
  109. package/src/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  110. package/src/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  111. package/src/features/reflect/ReflectMetadataTransformer.ts +69 -69
  112. package/src/features/reflect/ReflectNameTransformer.ts +81 -81
  113. package/src/features/reflect/ReflectSchemaTransformer.ts +65 -65
  114. package/src/features/reflect/ReflectSchemasTransformer.ts +69 -69
  115. package/src/index.ts +7 -7
  116. package/src/internal/GenericTransformer.ts +101 -101
  117. package/src/transform.ts +68 -68
@@ -1,579 +1,579 @@
1
- import {
2
- FunctionAssertReturnProgrammer,
3
- FunctionalAssertFunctionProgrammer,
4
- FunctionalAssertParametersProgrammer,
5
- FunctionalIsFunctionProgrammer,
6
- FunctionalIsParametersProgrammer,
7
- FunctionalIsReturnProgrammer,
8
- FunctionalValidateFunctionProgrammer,
9
- FunctionalValidateParametersProgrammer,
10
- FunctionalValidateReturnProgrammer,
11
- ITypiaContext,
12
- } from "@typia/core";
13
- import { NamingConvention } from "@typia/utils";
14
- import path from "path";
15
- import ts from "typescript";
16
-
17
- import { ITransformProps } from "./ITransformProps";
18
- import { AssertTransformer } from "./features/AssertTransformer";
19
- import { CreateAssertTransformer } from "./features/CreateAssertTransformer";
20
- import { CreateIsTransformer } from "./features/CreateIsTransformer";
21
- import { CreateRandomTransformer } from "./features/CreateRandomTransformer";
22
- import { CreateValidateTransformer } from "./features/CreateValidateTransformer";
23
- import { IsTransformer } from "./features/IsTransformer";
24
- import { RandomTransformer } from "./features/RandomTransformer";
25
- import { ValidateTransformer } from "./features/ValidateTransformer";
26
- import { FunctionalGenericTransformer } from "./features/functional/FunctionalGenericTransformer";
27
- import { CreateHttpAssertFormDataTransformer } from "./features/http/CreateHttpAssertFormDataTransformer";
28
- import { CreateHttpAssertHeadersTransformer } from "./features/http/CreateHttpAssertHeadersTransformer";
29
- import { CreateHttpAssertQueryTransformer } from "./features/http/CreateHttpAssertQueryTransformer";
30
- import { CreateHttpFormDataTransformer } from "./features/http/CreateHttpFormDataTransformer";
31
- import { CreateHttpHeadersTransformer } from "./features/http/CreateHttpHeadersTransformer";
32
- import { CreateHttpIsFormDataTransformer } from "./features/http/CreateHttpIsFormDataTransformer";
33
- import { CreateHttpIsHeadersTransformer } from "./features/http/CreateHttpIsHeadersTransformer";
34
- import { CreateHttpIsQueryTransformer } from "./features/http/CreateHttpIsQueryTransformer";
35
- import { CreateHttpParameterTransformer } from "./features/http/CreateHttpParameterTransformer";
36
- import { CreateHttpQueryTransformer } from "./features/http/CreateHttpQueryTransformer";
37
- import { CreateHttpValidateFormDataTransformer } from "./features/http/CreateHttpValidateFormDataTransformer";
38
- import { CreateHttpValidateHeadersTransformer } from "./features/http/CreateHttpValidateHeadersTransformer";
39
- import { CreateHttpValidateQueryTransformer } from "./features/http/CreateHttpValidateQueryTransformer";
40
- import { HttpAssertFormDataTransformer } from "./features/http/HttpAssertFormDataTransformer";
41
- import { HttpAssertHeadersTransformer } from "./features/http/HttpAssertHeadersTransformer";
42
- import { HttpAssertQueryTransformer } from "./features/http/HttpAssertQueryTransformer";
43
- import { HttpFormDataTransformer } from "./features/http/HttpFormDataTransformer";
44
- import { HttpHeadersTransformer } from "./features/http/HttpHeadersTransformer";
45
- import { HttpIsFormDataTransformer } from "./features/http/HttpIsFormDataTransformer";
46
- import { HttpIsHeadersTransformer } from "./features/http/HttpIsHeadersTransformer";
47
- import { HttpIsQueryTransformer } from "./features/http/HttpIsQueryTransformer";
48
- import { HttpParameterTransformer } from "./features/http/HttpParameterTransformer";
49
- import { HttpQueryTransformer } from "./features/http/HttpQueryTransformer";
50
- import { HttpValidateFormDataTransformer } from "./features/http/HttpValidateFormDataTransformer";
51
- import { HttpValidateHeadersTransformer } from "./features/http/HttpValidateHeadersTransformer";
52
- import { HttpValidateQueryTransformer } from "./features/http/HttpValidateQueryTransformer";
53
- import { JsonApplicationTransformer } from "./features/json/JsonApplicationTransformer";
54
- // import { JsonApplicationTransformer } from "./features/json/JsonApplicationTransformer";
55
- import { JsonAssertParseTransformer } from "./features/json/JsonAssertParseTransformer";
56
- import { JsonAssertStringifyTransformer } from "./features/json/JsonAssertStringifyTransformer";
57
- import { JsonCreateAssertParseTransformer } from "./features/json/JsonCreateAssertParseTransformer";
58
- import { JsonCreateAssertStringifyTransformer } from "./features/json/JsonCreateAssertStringifyTransformer";
59
- import { JsonCreateIsParseTransformer } from "./features/json/JsonCreateIsParseTransformer";
60
- import { JsonCreateIsStringifyTransformer } from "./features/json/JsonCreateIsStringifyTransformer";
61
- import { JsonCreateStringifyTransformer } from "./features/json/JsonCreateStringifyTransformer";
62
- import { JsonCreateValidateParseTransformer } from "./features/json/JsonCreateValidateParseTransformer";
63
- import { JsonCreateValidateStringifyTransformer } from "./features/json/JsonCreateValidateStringifyProgrammer";
64
- import { JsonIsParseTransformer } from "./features/json/JsonIsParseTransformer";
65
- import { JsonIsStringifyTransformer } from "./features/json/JsonIsStringifyTransformer";
66
- import { JsonSchemaTransformer } from "./features/json/JsonSchemaTransformer";
67
- import { JsonSchemasTransformer } from "./features/json/JsonSchemasTransformer";
68
- import { JsonStringifyTransformer } from "./features/json/JsonStringifyTransformer";
69
- import { JsonValidateParseTransformer } from "./features/json/JsonValidateParseTransformer";
70
- import { JsonValidateStringifyTransformer } from "./features/json/JsonValidateStringifyTransformer";
71
- import { LlmApplicationTransformer } from "./features/llm/LlmApplicationTransformer";
72
- import { LlmCoerceTransformer } from "./features/llm/LlmCoerceTransformer";
73
- import { LlmControllerTransformer } from "./features/llm/LlmControllerTransformer";
74
- import { LlmCreateCoerceTransformer } from "./features/llm/LlmCreateCoerceTransformer";
75
- import { LlmCreateParseTransformer } from "./features/llm/LlmCreateParseTransformer";
76
- import { LlmParametersTransformer } from "./features/llm/LlmParametersTransformer";
77
- import { LlmParseTransformer } from "./features/llm/LlmParseTransformer";
78
- import { LlmSchemaTransformer } from "./features/llm/LlmSchemaTransformer";
79
- import { MiscAssertCloneTransformer } from "./features/misc/MiscAssertCloneTransformer";
80
- import { MiscAssertPruneTransformer } from "./features/misc/MiscAssertPruneTransformer";
81
- import { MiscCloneTransformer } from "./features/misc/MiscCloneTransformer";
82
- import { MiscCreateAssertCloneTransformer } from "./features/misc/MiscCreateAssertCloneTransformer";
83
- import { MiscCreateAssertPruneTransformer } from "./features/misc/MiscCreateAssertPruneTransformer";
84
- import { MiscCreateCloneTransformer } from "./features/misc/MiscCreateCloneTransformer";
85
- import { MiscCreateIsCloneTransformer } from "./features/misc/MiscCreateIsCloneTransformer";
86
- import { MiscCreateIsPruneTransformer } from "./features/misc/MiscCreateIsPruneTransformer";
87
- import { MiscCreatePruneTransformer } from "./features/misc/MiscCreatePruneTransformer";
88
- import { MiscCreateValidateCloneTransformer } from "./features/misc/MiscCreateValidateCloneTransformer";
89
- import { MiscCreateValidatePruneTransformer } from "./features/misc/MiscCreateValidatePruneTransformer";
90
- import { MiscIsCloneTransformer } from "./features/misc/MiscIsCloneTransformer";
91
- import { MiscIsPruneTransformer } from "./features/misc/MiscIsPruneTransformer";
92
- import { MiscLiteralsTransformer } from "./features/misc/MiscLiteralsTransformer";
93
- import { MiscPruneTransformer } from "./features/misc/MiscPruneTransformer";
94
- import { MiscValidateCloneTransformer } from "./features/misc/MiscValidateCloneTransformer";
95
- import { MiscValidatePruneTransformer } from "./features/misc/MiscValidatePruneTransformer";
96
- import { NotationAssertGeneralTransformer } from "./features/notations/NotationAssertGeneralTransformer";
97
- import { NotationCreateAssertGeneralTransformer } from "./features/notations/NotationCreateAssertGeneralTransformer";
98
- import { NotationCreateGeneralTransformer } from "./features/notations/NotationCreateGeneralTransformer";
99
- import { NotationCreateIsGeneralTransformer } from "./features/notations/NotationCreateIsGeneralTransformer";
100
- import { NotationCreateValidateGeneralTransformer } from "./features/notations/NotationCreateValidateGeneralTransformer";
101
- import { NotationGeneralTransformer } from "./features/notations/NotationGeneralTransformer";
102
- import { NotationIsGeneralTransformer } from "./features/notations/NotationIsGeneralTransformer";
103
- import { NotationValidateGeneralTransformer } from "./features/notations/NotationValidateGeneralTransformer";
104
- import { ProtobufAssertDecodeTransformer } from "./features/protobuf/ProtobufAssertDecodeTransformer";
105
- import { ProtobufAssertEncodeTransformer } from "./features/protobuf/ProtobufAssertEncodeTransformer";
106
- import { ProtobufCreateAssertDecodeTransformer } from "./features/protobuf/ProtobufCreateAssertDecodeTransformer";
107
- import { ProtobufCreateAssertEncodeTransformer } from "./features/protobuf/ProtobufCreateAssertEncodeTransformer";
108
- import { ProtobufCreateDecodeTransformer } from "./features/protobuf/ProtobufCreateDecodeTransformer";
109
- import { ProtobufCreateEncodeTransformer } from "./features/protobuf/ProtobufCreateEncodeTransformer";
110
- import { ProtobufCreateIsDecodeTransformer } from "./features/protobuf/ProtobufCreateIsDecodeTransformer";
111
- import { ProtobufCreateIsEncodeTransformer } from "./features/protobuf/ProtobufCreateIsEncodeTransformer";
112
- import { ProtobufCreateValidateDecodeTransformer } from "./features/protobuf/ProtobufCreateValidateDecodeTransformer";
113
- import { ProtobufCreateValidateEncodeTransformer } from "./features/protobuf/ProtobufCreateValidateEncodeTransformer";
114
- import { ProtobufDecodeTransformer } from "./features/protobuf/ProtobufDecodeTransformer";
115
- import { ProtobufEncodeTransformer } from "./features/protobuf/ProtobufEncodeTransformer";
116
- import { ProtobufIsDecodeTransformer } from "./features/protobuf/ProtobufIsDecodeTransformer";
117
- import { ProtobufIsEncodeTransformer } from "./features/protobuf/ProtobufIsEncodeTransformer";
118
- import { ProtobufMessageTransformer } from "./features/protobuf/ProtobufMessageTransformer";
119
- import { ProtobufValidateDecodeTransformer } from "./features/protobuf/ProtobufValidateDecodeTransformer";
120
- import { ProtobufValidateEncodeTransformer } from "./features/protobuf/ProtobufValidateEncodeTransformer";
121
- import { ReflectMetadataTransformer } from "./features/reflect/ReflectMetadataTransformer";
122
- import { ReflectNameTransformer } from "./features/reflect/ReflectNameTransformer";
123
- import { ReflectSchemaTransformer } from "./features/reflect/ReflectSchemaTransformer";
124
- import { ReflectSchemasTransformer } from "./features/reflect/ReflectSchemasTransformer";
125
-
126
- /**
127
- * Transforms `typia.*` function call expressions.
128
- *
129
- * Routes typia function calls (e.g., `typia.is<T>()`, `typia.assert<T>()`) to
130
- * their corresponding transformers. Identifies calls by resolving the
131
- * declaration signature and matching against registered functor map.
132
- *
133
- * @author Jeongho Nam - https://github.com/samchon
134
- */
135
- export namespace CallExpressionTransformer {
136
- export const transform = (props: {
137
- context: ITypiaContext;
138
- expression: ts.CallExpression;
139
- }): ts.Expression | null => {
140
- //----
141
- // VALIDATIONS
142
- //----
143
- // SIGNATURE DECLARATION
144
- const declaration: ts.Declaration | undefined =
145
- props.context.checker.getResolvedSignature(props.expression)?.declaration;
146
- if (!declaration) return props.expression;
147
-
148
- // FILE PATH
149
- const location: string = path.resolve(declaration.getSourceFile().fileName);
150
- if (isTarget(location) === false) return props.expression;
151
-
152
- //----
153
- // TRANSFORMATION
154
- //----
155
- // FUNCTION NAME
156
- const module: string = location.split(path.sep).at(-1)!.split(".")[0]!;
157
- const { name } =
158
- props.context.checker.getTypeAtLocation(declaration).symbol;
159
-
160
- // FIND TRANSFORMER
161
- const functor: (() => Task) | undefined = FUNCTORS[module]?.[name];
162
- if (functor === undefined) return props.expression;
163
-
164
- // RETURNS WITH TRANSFORMATION
165
- const result: ts.Expression | null = functor()({
166
- context: props.context,
167
- modulo: props.expression.expression,
168
- expression: props.expression,
169
- });
170
- return result ?? props.expression;
171
- };
172
-
173
- const isTarget = (location: string): boolean => {
174
- const files: string[] = Object.keys(FUNCTORS);
175
- return files.some(
176
- (f) =>
177
- location.includes(path.join("typia", "lib", `${f}.d.ts`)) ||
178
- location.includes(path.join("typia", "src", `${f}.ts`)),
179
- );
180
- };
181
- }
182
-
183
- type Task = (props: ITransformProps) => ts.Expression | null;
184
-
185
- const FUNCTORS: Record<string, Record<string, () => Task>> = {
186
- module: {
187
- // BASIC
188
- assert: () => AssertTransformer.transform({ equals: false, guard: false }),
189
- assertGuard: () =>
190
- AssertTransformer.transform({ equals: false, guard: true }),
191
- assertType: () =>
192
- AssertTransformer.transform({ equals: false, guard: false }),
193
- is: () => IsTransformer.transform({ equals: false }),
194
- validate: () => ValidateTransformer.transform({ equals: false }),
195
-
196
- // STRICT
197
- assertEquals: () =>
198
- AssertTransformer.transform({ equals: true, guard: false }),
199
- assertGuardEquals: () =>
200
- AssertTransformer.transform({ equals: true, guard: true }),
201
- equals: () => IsTransformer.transform({ equals: true }),
202
- validateEquals: () => ValidateTransformer.transform({ equals: true }),
203
-
204
- // RANDOM + INTERNAL
205
- random: () => RandomTransformer.transform,
206
- metadata: () => ReflectMetadataTransformer.transform,
207
-
208
- // FACTORIES
209
- createAssert: () =>
210
- CreateAssertTransformer.transform({ equals: false, guard: false }),
211
- createAssertGuard: () =>
212
- CreateAssertTransformer.transform({ equals: false, guard: true }),
213
- createAssertType: () =>
214
- CreateAssertTransformer.transform({ equals: false, guard: false }),
215
- createIs: () => CreateIsTransformer.transform({ equals: false }),
216
- createValidate: () =>
217
- CreateValidateTransformer.transform({
218
- equals: false,
219
- standardSchema: true,
220
- }),
221
- createAssertEquals: () =>
222
- CreateAssertTransformer.transform({ equals: true, guard: false }),
223
- createAssertGuardEquals: () =>
224
- CreateAssertTransformer.transform({ equals: true, guard: true }),
225
- createEquals: () => CreateIsTransformer.transform({ equals: true }),
226
- createValidateEquals: () =>
227
- CreateValidateTransformer.transform({
228
- equals: true,
229
- standardSchema: true,
230
- }),
231
- createRandom: () => CreateRandomTransformer.transform,
232
- },
233
- functional: {
234
- // ASSERTIONS
235
- assertFunction: () =>
236
- FunctionalGenericTransformer.transform({
237
- method: "assertFunction",
238
- config: {
239
- equals: false,
240
- },
241
- programmer: FunctionalAssertFunctionProgrammer.write,
242
- }),
243
- assertParameters: () =>
244
- FunctionalGenericTransformer.transform({
245
- method: "assertParameters",
246
- config: {
247
- equals: false,
248
- },
249
- programmer: FunctionalAssertParametersProgrammer.write,
250
- }),
251
- assertReturn: () =>
252
- FunctionalGenericTransformer.transform({
253
- method: "assertReturn",
254
- config: {
255
- equals: false,
256
- },
257
- programmer: FunctionAssertReturnProgrammer.write,
258
- }),
259
- assertEqualsFunction: () =>
260
- FunctionalGenericTransformer.transform({
261
- method: "assertEqualsFunction",
262
- config: {
263
- equals: true,
264
- },
265
- programmer: FunctionalAssertFunctionProgrammer.write,
266
- }),
267
- assertEqualsParameters: () =>
268
- FunctionalGenericTransformer.transform({
269
- method: "assertEqualsParameters",
270
- config: {
271
- equals: true,
272
- },
273
- programmer: FunctionalAssertParametersProgrammer.write,
274
- }),
275
- assertEqualsReturn: () =>
276
- FunctionalGenericTransformer.transform({
277
- method: "assertEqualsReturn",
278
- config: {
279
- equals: true,
280
- },
281
- programmer: FunctionAssertReturnProgrammer.write,
282
- }),
283
-
284
- // IS
285
- isFunction: () =>
286
- FunctionalGenericTransformer.transform({
287
- method: "isFunction",
288
- config: {
289
- equals: false,
290
- },
291
- programmer: FunctionalIsFunctionProgrammer.write,
292
- }),
293
- isParameters: () =>
294
- FunctionalGenericTransformer.transform({
295
- method: "isParameters",
296
- config: {
297
- equals: false,
298
- },
299
- programmer: FunctionalIsParametersProgrammer.write,
300
- }),
301
- isReturn: () =>
302
- FunctionalGenericTransformer.transform({
303
- method: "isReturn",
304
- config: {
305
- equals: false,
306
- },
307
- programmer: FunctionalIsReturnProgrammer.write,
308
- }),
309
- equalsFunction: () =>
310
- FunctionalGenericTransformer.transform({
311
- method: "equalsFunction",
312
- config: {
313
- equals: true,
314
- },
315
- programmer: FunctionalIsFunctionProgrammer.write,
316
- }),
317
- equalsParameters: () =>
318
- FunctionalGenericTransformer.transform({
319
- method: "equalsParameters",
320
- config: {
321
- equals: true,
322
- },
323
- programmer: FunctionalIsParametersProgrammer.write,
324
- }),
325
- equalsReturn: () =>
326
- FunctionalGenericTransformer.transform({
327
- method: "equalsReturn",
328
- config: {
329
- equals: true,
330
- },
331
- programmer: FunctionalIsReturnProgrammer.write,
332
- }),
333
-
334
- // VALIDATIONS
335
- validateFunction: () =>
336
- FunctionalGenericTransformer.transform({
337
- method: "validateFunction",
338
- config: {
339
- equals: false,
340
- },
341
- programmer: FunctionalValidateFunctionProgrammer.write,
342
- }),
343
- validateParameters: () =>
344
- FunctionalGenericTransformer.transform({
345
- method: "validateParameters",
346
- config: {
347
- equals: false,
348
- },
349
- programmer: FunctionalValidateParametersProgrammer.write,
350
- }),
351
- validateReturn: () =>
352
- FunctionalGenericTransformer.transform({
353
- method: "validateReturn",
354
- config: {
355
- equals: false,
356
- },
357
- programmer: FunctionalValidateReturnProgrammer.write,
358
- }),
359
- validateEqualsFunction: () =>
360
- FunctionalGenericTransformer.transform({
361
- method: "validateEqualsFunction",
362
- config: {
363
- equals: true,
364
- },
365
- programmer: FunctionalValidateFunctionProgrammer.write,
366
- }),
367
- validateEqualsParameters: () =>
368
- FunctionalGenericTransformer.transform({
369
- method: "validateEqualsParameters",
370
- config: {
371
- equals: true,
372
- },
373
- programmer: FunctionalValidateParametersProgrammer.write,
374
- }),
375
- validateEqualsReturn: () =>
376
- FunctionalGenericTransformer.transform({
377
- method: "validateEqualsReturn",
378
- config: {
379
- equals: true,
380
- },
381
- programmer: FunctionalValidateReturnProgrammer.write,
382
- }),
383
- },
384
- http: {
385
- // FORM-DATA
386
- formData: () => HttpFormDataTransformer.transform,
387
- isFormData: () => HttpIsFormDataTransformer.transform,
388
- assertFormData: () => HttpAssertFormDataTransformer.transform,
389
- validateFormData: () => HttpValidateFormDataTransformer.transform,
390
-
391
- // HEADERS
392
- headers: () => HttpHeadersTransformer.transform,
393
- isHeaders: () => HttpIsHeadersTransformer.transform,
394
- assertHeaders: () => HttpAssertHeadersTransformer.transform,
395
- validateHeaders: () => HttpValidateHeadersTransformer.transform,
396
-
397
- // PARAMETER
398
- parameter: () => HttpParameterTransformer.transform,
399
-
400
- // QUERY
401
- query: () => HttpQueryTransformer.transform,
402
- isQuery: () => HttpIsQueryTransformer.transform,
403
- assertQuery: () => HttpAssertQueryTransformer.transform,
404
- validateQuery: () => HttpValidateQueryTransformer.transform,
405
-
406
- // FACTORIES
407
- createFormData: () => CreateHttpFormDataTransformer.transform,
408
- createIsFormData: () => CreateHttpIsFormDataTransformer.transform,
409
- createAssertFormData: () => CreateHttpAssertFormDataTransformer.transform,
410
- createValidateFormData: () =>
411
- CreateHttpValidateFormDataTransformer.transform,
412
- createHeaders: () => CreateHttpHeadersTransformer.transform,
413
- createIsHeaders: () => CreateHttpIsHeadersTransformer.transform,
414
- createAssertHeaders: () => CreateHttpAssertHeadersTransformer.transform,
415
- createValidateHeaders: () => CreateHttpValidateHeadersTransformer.transform,
416
- createParameter: () => CreateHttpParameterTransformer.transform,
417
- createQuery: () => CreateHttpQueryTransformer.transform,
418
- createIsQuery: () => CreateHttpIsQueryTransformer.transform,
419
- createAssertQuery: () => CreateHttpAssertQueryTransformer.transform,
420
- createValidateQuery: () => CreateHttpValidateQueryTransformer.transform,
421
- },
422
- llm: {
423
- controller: () => LlmControllerTransformer.transform,
424
- applicationOfValidate: () => LlmApplicationTransformer.transform,
425
- application: () => LlmApplicationTransformer.transform,
426
- parameters: () => LlmParametersTransformer.transform,
427
- schema: () => LlmSchemaTransformer.transform,
428
- parse: () => LlmParseTransformer.transform,
429
- createParse: () => LlmCreateParseTransformer.transform,
430
- coerce: () => LlmCoerceTransformer.transform,
431
- createCoerce: () => LlmCreateCoerceTransformer.transform,
432
- },
433
- json: {
434
- // METADATA
435
- schema: () => JsonSchemaTransformer.transform,
436
- schemas: () => JsonSchemasTransformer.transform,
437
- application: () => JsonApplicationTransformer.transform,
438
-
439
- // PARSER
440
- isParse: () => JsonIsParseTransformer.transform,
441
- assertParse: () => JsonAssertParseTransformer.transform,
442
- validateParse: () => JsonValidateParseTransformer.transform,
443
-
444
- // STRINGIFY
445
- stringify: () => JsonStringifyTransformer.transform,
446
- assertStringify: () => JsonAssertStringifyTransformer.transform,
447
- isStringify: () => JsonIsStringifyTransformer.transform,
448
- validateStringify: () => JsonValidateStringifyTransformer.transform,
449
-
450
- // FACTORIES
451
- createIsParse: () => JsonCreateIsParseTransformer.transform,
452
- createAssertParse: () => JsonCreateAssertParseTransformer.transform,
453
- createValidateParse: () => JsonCreateValidateParseTransformer.transform,
454
- createStringify: () => JsonCreateStringifyTransformer.transform,
455
- createAssertStringify: () => JsonCreateAssertStringifyTransformer.transform,
456
- createIsStringify: () => JsonCreateIsStringifyTransformer.transform,
457
- createValidateStringify: () =>
458
- JsonCreateValidateStringifyTransformer.transform,
459
- },
460
- protobuf: {
461
- // SCHEMA
462
- message: () => ProtobufMessageTransformer.transform,
463
-
464
- // ENCODE
465
- encode: () => ProtobufEncodeTransformer.transform,
466
- assertEncode: () => ProtobufAssertEncodeTransformer.transform,
467
- isEncode: () => ProtobufIsEncodeTransformer.transform,
468
- validateEncode: () => ProtobufValidateEncodeTransformer.transform,
469
-
470
- // DECODE
471
- decode: () => ProtobufDecodeTransformer.transform,
472
- assertDecode: () => ProtobufAssertDecodeTransformer.transform,
473
- isDecode: () => ProtobufIsDecodeTransformer.transform,
474
- validateDecode: () => ProtobufValidateDecodeTransformer.transform,
475
-
476
- // FACTORIES
477
- createEncode: () => ProtobufCreateEncodeTransformer.transform,
478
- createAssertEncode: () => ProtobufCreateAssertEncodeTransformer.transform,
479
- createIsEncode: () => ProtobufCreateIsEncodeTransformer.transform,
480
- createValidateEncode: () =>
481
- ProtobufCreateValidateEncodeTransformer.transform,
482
- createDecode: () => ProtobufCreateDecodeTransformer.transform,
483
- createAssertDecode: () => ProtobufCreateAssertDecodeTransformer.transform,
484
- createIsDecode: () => ProtobufCreateIsDecodeTransformer.transform,
485
- createValidateDecode: () =>
486
- ProtobufCreateValidateDecodeTransformer.transform,
487
- },
488
- reflect: {
489
- metadata: () => ReflectMetadataTransformer.transform,
490
- name: () => ReflectNameTransformer.transform,
491
- schema: () => ReflectSchemaTransformer.transform,
492
- schemas: () => ReflectSchemasTransformer.transform,
493
- },
494
- misc: {
495
- literals: () => MiscLiteralsTransformer.transform,
496
-
497
- // CLONE
498
- clone: () => MiscCloneTransformer.transform,
499
- assertClone: () => MiscAssertCloneTransformer.transform,
500
- isClone: () => MiscIsCloneTransformer.transform,
501
- validateClone: () => MiscValidateCloneTransformer.transform,
502
-
503
- // PRUNE
504
- prune: () => MiscPruneTransformer.transform,
505
- assertPrune: () => MiscAssertPruneTransformer.transform,
506
- isPrune: () => MiscIsPruneTransformer.transform,
507
- validatePrune: () => MiscValidatePruneTransformer.transform,
508
-
509
- // FACTORIES
510
- createClone: () => MiscCreateCloneTransformer.transform,
511
- createAssertClone: () => MiscCreateAssertCloneTransformer.transform,
512
- createIsClone: () => MiscCreateIsCloneTransformer.transform,
513
- createValidateClone: () => MiscCreateValidateCloneTransformer.transform,
514
- createPrune: () => MiscCreatePruneTransformer.transform,
515
- createAssertPrune: () => MiscCreateAssertPruneTransformer.transform,
516
- createIsPrune: () => MiscCreateIsPruneTransformer.transform,
517
- createValidatePrune: () => MiscCreateValidatePruneTransformer.transform,
518
- },
519
- notations: {
520
- // CAMEL
521
- camel: () => NotationGeneralTransformer.transform(NamingConvention.camel),
522
- assertCamel: () =>
523
- NotationAssertGeneralTransformer.transform(NamingConvention.camel),
524
- isCamel: () =>
525
- NotationIsGeneralTransformer.transform(NamingConvention.camel),
526
- validateCamel: () =>
527
- NotationValidateGeneralTransformer.transform(NamingConvention.camel),
528
-
529
- // PASCAL
530
- pascal: () => NotationGeneralTransformer.transform(NamingConvention.pascal),
531
- assertPascal: () =>
532
- NotationAssertGeneralTransformer.transform(NamingConvention.pascal),
533
- isPascal: () =>
534
- NotationIsGeneralTransformer.transform(NamingConvention.pascal),
535
- validatePascal: () =>
536
- NotationValidateGeneralTransformer.transform(NamingConvention.pascal),
537
-
538
- // SNAKE
539
- snake: () => NotationGeneralTransformer.transform(NamingConvention.snake),
540
- assertSnake: () =>
541
- NotationAssertGeneralTransformer.transform(NamingConvention.snake),
542
- isSnake: () =>
543
- NotationIsGeneralTransformer.transform(NamingConvention.snake),
544
- validateSnake: () =>
545
- NotationValidateGeneralTransformer.transform(NamingConvention.snake),
546
-
547
- // FACTORIES
548
- createCamel: () =>
549
- NotationCreateGeneralTransformer.transform(NamingConvention.camel),
550
- createAssertCamel: () =>
551
- NotationCreateAssertGeneralTransformer.transform(NamingConvention.camel),
552
- createIsCamel: () =>
553
- NotationCreateIsGeneralTransformer.transform(NamingConvention.camel),
554
- createValidateCamel: () =>
555
- NotationCreateValidateGeneralTransformer.transform(
556
- NamingConvention.camel,
557
- ),
558
- createPascal: () =>
559
- NotationCreateGeneralTransformer.transform(NamingConvention.pascal),
560
- createAssertPascal: () =>
561
- NotationCreateAssertGeneralTransformer.transform(NamingConvention.pascal),
562
- createIsPascal: () =>
563
- NotationCreateIsGeneralTransformer.transform(NamingConvention.pascal),
564
- createValidatePascal: () =>
565
- NotationCreateValidateGeneralTransformer.transform(
566
- NamingConvention.pascal,
567
- ),
568
- createSnake: () =>
569
- NotationCreateGeneralTransformer.transform(NamingConvention.snake),
570
- createAssertSnake: () =>
571
- NotationCreateAssertGeneralTransformer.transform(NamingConvention.snake),
572
- createIsSnake: () =>
573
- NotationCreateIsGeneralTransformer.transform(NamingConvention.snake),
574
- createValidateSnake: () =>
575
- NotationCreateValidateGeneralTransformer.transform(
576
- NamingConvention.snake,
577
- ),
578
- },
579
- };
1
+ import {
2
+ FunctionAssertReturnProgrammer,
3
+ FunctionalAssertFunctionProgrammer,
4
+ FunctionalAssertParametersProgrammer,
5
+ FunctionalIsFunctionProgrammer,
6
+ FunctionalIsParametersProgrammer,
7
+ FunctionalIsReturnProgrammer,
8
+ FunctionalValidateFunctionProgrammer,
9
+ FunctionalValidateParametersProgrammer,
10
+ FunctionalValidateReturnProgrammer,
11
+ ITypiaContext,
12
+ } from "@typia/core";
13
+ import { NamingConvention } from "@typia/utils";
14
+ import path from "path";
15
+ import ts from "typescript";
16
+
17
+ import { ITransformProps } from "./ITransformProps";
18
+ import { AssertTransformer } from "./features/AssertTransformer";
19
+ import { CreateAssertTransformer } from "./features/CreateAssertTransformer";
20
+ import { CreateIsTransformer } from "./features/CreateIsTransformer";
21
+ import { CreateRandomTransformer } from "./features/CreateRandomTransformer";
22
+ import { CreateValidateTransformer } from "./features/CreateValidateTransformer";
23
+ import { IsTransformer } from "./features/IsTransformer";
24
+ import { RandomTransformer } from "./features/RandomTransformer";
25
+ import { ValidateTransformer } from "./features/ValidateTransformer";
26
+ import { FunctionalGenericTransformer } from "./features/functional/FunctionalGenericTransformer";
27
+ import { CreateHttpAssertFormDataTransformer } from "./features/http/CreateHttpAssertFormDataTransformer";
28
+ import { CreateHttpAssertHeadersTransformer } from "./features/http/CreateHttpAssertHeadersTransformer";
29
+ import { CreateHttpAssertQueryTransformer } from "./features/http/CreateHttpAssertQueryTransformer";
30
+ import { CreateHttpFormDataTransformer } from "./features/http/CreateHttpFormDataTransformer";
31
+ import { CreateHttpHeadersTransformer } from "./features/http/CreateHttpHeadersTransformer";
32
+ import { CreateHttpIsFormDataTransformer } from "./features/http/CreateHttpIsFormDataTransformer";
33
+ import { CreateHttpIsHeadersTransformer } from "./features/http/CreateHttpIsHeadersTransformer";
34
+ import { CreateHttpIsQueryTransformer } from "./features/http/CreateHttpIsQueryTransformer";
35
+ import { CreateHttpParameterTransformer } from "./features/http/CreateHttpParameterTransformer";
36
+ import { CreateHttpQueryTransformer } from "./features/http/CreateHttpQueryTransformer";
37
+ import { CreateHttpValidateFormDataTransformer } from "./features/http/CreateHttpValidateFormDataTransformer";
38
+ import { CreateHttpValidateHeadersTransformer } from "./features/http/CreateHttpValidateHeadersTransformer";
39
+ import { CreateHttpValidateQueryTransformer } from "./features/http/CreateHttpValidateQueryTransformer";
40
+ import { HttpAssertFormDataTransformer } from "./features/http/HttpAssertFormDataTransformer";
41
+ import { HttpAssertHeadersTransformer } from "./features/http/HttpAssertHeadersTransformer";
42
+ import { HttpAssertQueryTransformer } from "./features/http/HttpAssertQueryTransformer";
43
+ import { HttpFormDataTransformer } from "./features/http/HttpFormDataTransformer";
44
+ import { HttpHeadersTransformer } from "./features/http/HttpHeadersTransformer";
45
+ import { HttpIsFormDataTransformer } from "./features/http/HttpIsFormDataTransformer";
46
+ import { HttpIsHeadersTransformer } from "./features/http/HttpIsHeadersTransformer";
47
+ import { HttpIsQueryTransformer } from "./features/http/HttpIsQueryTransformer";
48
+ import { HttpParameterTransformer } from "./features/http/HttpParameterTransformer";
49
+ import { HttpQueryTransformer } from "./features/http/HttpQueryTransformer";
50
+ import { HttpValidateFormDataTransformer } from "./features/http/HttpValidateFormDataTransformer";
51
+ import { HttpValidateHeadersTransformer } from "./features/http/HttpValidateHeadersTransformer";
52
+ import { HttpValidateQueryTransformer } from "./features/http/HttpValidateQueryTransformer";
53
+ import { JsonApplicationTransformer } from "./features/json/JsonApplicationTransformer";
54
+ // import { JsonApplicationTransformer } from "./features/json/JsonApplicationTransformer";
55
+ import { JsonAssertParseTransformer } from "./features/json/JsonAssertParseTransformer";
56
+ import { JsonAssertStringifyTransformer } from "./features/json/JsonAssertStringifyTransformer";
57
+ import { JsonCreateAssertParseTransformer } from "./features/json/JsonCreateAssertParseTransformer";
58
+ import { JsonCreateAssertStringifyTransformer } from "./features/json/JsonCreateAssertStringifyTransformer";
59
+ import { JsonCreateIsParseTransformer } from "./features/json/JsonCreateIsParseTransformer";
60
+ import { JsonCreateIsStringifyTransformer } from "./features/json/JsonCreateIsStringifyTransformer";
61
+ import { JsonCreateStringifyTransformer } from "./features/json/JsonCreateStringifyTransformer";
62
+ import { JsonCreateValidateParseTransformer } from "./features/json/JsonCreateValidateParseTransformer";
63
+ import { JsonCreateValidateStringifyTransformer } from "./features/json/JsonCreateValidateStringifyProgrammer";
64
+ import { JsonIsParseTransformer } from "./features/json/JsonIsParseTransformer";
65
+ import { JsonIsStringifyTransformer } from "./features/json/JsonIsStringifyTransformer";
66
+ import { JsonSchemaTransformer } from "./features/json/JsonSchemaTransformer";
67
+ import { JsonSchemasTransformer } from "./features/json/JsonSchemasTransformer";
68
+ import { JsonStringifyTransformer } from "./features/json/JsonStringifyTransformer";
69
+ import { JsonValidateParseTransformer } from "./features/json/JsonValidateParseTransformer";
70
+ import { JsonValidateStringifyTransformer } from "./features/json/JsonValidateStringifyTransformer";
71
+ import { LlmApplicationTransformer } from "./features/llm/LlmApplicationTransformer";
72
+ import { LlmCoerceTransformer } from "./features/llm/LlmCoerceTransformer";
73
+ import { LlmControllerTransformer } from "./features/llm/LlmControllerTransformer";
74
+ import { LlmCreateCoerceTransformer } from "./features/llm/LlmCreateCoerceTransformer";
75
+ import { LlmCreateParseTransformer } from "./features/llm/LlmCreateParseTransformer";
76
+ import { LlmParametersTransformer } from "./features/llm/LlmParametersTransformer";
77
+ import { LlmParseTransformer } from "./features/llm/LlmParseTransformer";
78
+ import { LlmSchemaTransformer } from "./features/llm/LlmSchemaTransformer";
79
+ import { MiscAssertCloneTransformer } from "./features/misc/MiscAssertCloneTransformer";
80
+ import { MiscAssertPruneTransformer } from "./features/misc/MiscAssertPruneTransformer";
81
+ import { MiscCloneTransformer } from "./features/misc/MiscCloneTransformer";
82
+ import { MiscCreateAssertCloneTransformer } from "./features/misc/MiscCreateAssertCloneTransformer";
83
+ import { MiscCreateAssertPruneTransformer } from "./features/misc/MiscCreateAssertPruneTransformer";
84
+ import { MiscCreateCloneTransformer } from "./features/misc/MiscCreateCloneTransformer";
85
+ import { MiscCreateIsCloneTransformer } from "./features/misc/MiscCreateIsCloneTransformer";
86
+ import { MiscCreateIsPruneTransformer } from "./features/misc/MiscCreateIsPruneTransformer";
87
+ import { MiscCreatePruneTransformer } from "./features/misc/MiscCreatePruneTransformer";
88
+ import { MiscCreateValidateCloneTransformer } from "./features/misc/MiscCreateValidateCloneTransformer";
89
+ import { MiscCreateValidatePruneTransformer } from "./features/misc/MiscCreateValidatePruneTransformer";
90
+ import { MiscIsCloneTransformer } from "./features/misc/MiscIsCloneTransformer";
91
+ import { MiscIsPruneTransformer } from "./features/misc/MiscIsPruneTransformer";
92
+ import { MiscLiteralsTransformer } from "./features/misc/MiscLiteralsTransformer";
93
+ import { MiscPruneTransformer } from "./features/misc/MiscPruneTransformer";
94
+ import { MiscValidateCloneTransformer } from "./features/misc/MiscValidateCloneTransformer";
95
+ import { MiscValidatePruneTransformer } from "./features/misc/MiscValidatePruneTransformer";
96
+ import { NotationAssertGeneralTransformer } from "./features/notations/NotationAssertGeneralTransformer";
97
+ import { NotationCreateAssertGeneralTransformer } from "./features/notations/NotationCreateAssertGeneralTransformer";
98
+ import { NotationCreateGeneralTransformer } from "./features/notations/NotationCreateGeneralTransformer";
99
+ import { NotationCreateIsGeneralTransformer } from "./features/notations/NotationCreateIsGeneralTransformer";
100
+ import { NotationCreateValidateGeneralTransformer } from "./features/notations/NotationCreateValidateGeneralTransformer";
101
+ import { NotationGeneralTransformer } from "./features/notations/NotationGeneralTransformer";
102
+ import { NotationIsGeneralTransformer } from "./features/notations/NotationIsGeneralTransformer";
103
+ import { NotationValidateGeneralTransformer } from "./features/notations/NotationValidateGeneralTransformer";
104
+ import { ProtobufAssertDecodeTransformer } from "./features/protobuf/ProtobufAssertDecodeTransformer";
105
+ import { ProtobufAssertEncodeTransformer } from "./features/protobuf/ProtobufAssertEncodeTransformer";
106
+ import { ProtobufCreateAssertDecodeTransformer } from "./features/protobuf/ProtobufCreateAssertDecodeTransformer";
107
+ import { ProtobufCreateAssertEncodeTransformer } from "./features/protobuf/ProtobufCreateAssertEncodeTransformer";
108
+ import { ProtobufCreateDecodeTransformer } from "./features/protobuf/ProtobufCreateDecodeTransformer";
109
+ import { ProtobufCreateEncodeTransformer } from "./features/protobuf/ProtobufCreateEncodeTransformer";
110
+ import { ProtobufCreateIsDecodeTransformer } from "./features/protobuf/ProtobufCreateIsDecodeTransformer";
111
+ import { ProtobufCreateIsEncodeTransformer } from "./features/protobuf/ProtobufCreateIsEncodeTransformer";
112
+ import { ProtobufCreateValidateDecodeTransformer } from "./features/protobuf/ProtobufCreateValidateDecodeTransformer";
113
+ import { ProtobufCreateValidateEncodeTransformer } from "./features/protobuf/ProtobufCreateValidateEncodeTransformer";
114
+ import { ProtobufDecodeTransformer } from "./features/protobuf/ProtobufDecodeTransformer";
115
+ import { ProtobufEncodeTransformer } from "./features/protobuf/ProtobufEncodeTransformer";
116
+ import { ProtobufIsDecodeTransformer } from "./features/protobuf/ProtobufIsDecodeTransformer";
117
+ import { ProtobufIsEncodeTransformer } from "./features/protobuf/ProtobufIsEncodeTransformer";
118
+ import { ProtobufMessageTransformer } from "./features/protobuf/ProtobufMessageTransformer";
119
+ import { ProtobufValidateDecodeTransformer } from "./features/protobuf/ProtobufValidateDecodeTransformer";
120
+ import { ProtobufValidateEncodeTransformer } from "./features/protobuf/ProtobufValidateEncodeTransformer";
121
+ import { ReflectMetadataTransformer } from "./features/reflect/ReflectMetadataTransformer";
122
+ import { ReflectNameTransformer } from "./features/reflect/ReflectNameTransformer";
123
+ import { ReflectSchemaTransformer } from "./features/reflect/ReflectSchemaTransformer";
124
+ import { ReflectSchemasTransformer } from "./features/reflect/ReflectSchemasTransformer";
125
+
126
+ /**
127
+ * Transforms `typia.*` function call expressions.
128
+ *
129
+ * Routes typia function calls (e.g., `typia.is<T>()`, `typia.assert<T>()`) to
130
+ * their corresponding transformers. Identifies calls by resolving the
131
+ * declaration signature and matching against registered functor map.
132
+ *
133
+ * @author Jeongho Nam - https://github.com/samchon
134
+ */
135
+ export namespace CallExpressionTransformer {
136
+ export const transform = (props: {
137
+ context: ITypiaContext;
138
+ expression: ts.CallExpression;
139
+ }): ts.Expression | null => {
140
+ //----
141
+ // VALIDATIONS
142
+ //----
143
+ // SIGNATURE DECLARATION
144
+ const declaration: ts.Declaration | undefined =
145
+ props.context.checker.getResolvedSignature(props.expression)?.declaration;
146
+ if (!declaration) return props.expression;
147
+
148
+ // FILE PATH
149
+ const location: string = path.resolve(declaration.getSourceFile().fileName);
150
+ if (isTarget(location) === false) return props.expression;
151
+
152
+ //----
153
+ // TRANSFORMATION
154
+ //----
155
+ // FUNCTION NAME
156
+ const module: string = location.split(path.sep).at(-1)!.split(".")[0]!;
157
+ const { name } =
158
+ props.context.checker.getTypeAtLocation(declaration).symbol;
159
+
160
+ // FIND TRANSFORMER
161
+ const functor: (() => Task) | undefined = FUNCTORS[module]?.[name];
162
+ if (functor === undefined) return props.expression;
163
+
164
+ // RETURNS WITH TRANSFORMATION
165
+ const result: ts.Expression | null = functor()({
166
+ context: props.context,
167
+ modulo: props.expression.expression,
168
+ expression: props.expression,
169
+ });
170
+ return result ?? props.expression;
171
+ };
172
+
173
+ const isTarget = (location: string): boolean => {
174
+ const files: string[] = Object.keys(FUNCTORS);
175
+ return files.some(
176
+ (f) =>
177
+ location.includes(path.join("typia", "lib", `${f}.d.ts`)) ||
178
+ location.includes(path.join("typia", "src", `${f}.ts`)),
179
+ );
180
+ };
181
+ }
182
+
183
+ type Task = (props: ITransformProps) => ts.Expression | null;
184
+
185
+ const FUNCTORS: Record<string, Record<string, () => Task>> = {
186
+ module: {
187
+ // BASIC
188
+ assert: () => AssertTransformer.transform({ equals: false, guard: false }),
189
+ assertGuard: () =>
190
+ AssertTransformer.transform({ equals: false, guard: true }),
191
+ assertType: () =>
192
+ AssertTransformer.transform({ equals: false, guard: false }),
193
+ is: () => IsTransformer.transform({ equals: false }),
194
+ validate: () => ValidateTransformer.transform({ equals: false }),
195
+
196
+ // STRICT
197
+ assertEquals: () =>
198
+ AssertTransformer.transform({ equals: true, guard: false }),
199
+ assertGuardEquals: () =>
200
+ AssertTransformer.transform({ equals: true, guard: true }),
201
+ equals: () => IsTransformer.transform({ equals: true }),
202
+ validateEquals: () => ValidateTransformer.transform({ equals: true }),
203
+
204
+ // RANDOM + INTERNAL
205
+ random: () => RandomTransformer.transform,
206
+ metadata: () => ReflectMetadataTransformer.transform,
207
+
208
+ // FACTORIES
209
+ createAssert: () =>
210
+ CreateAssertTransformer.transform({ equals: false, guard: false }),
211
+ createAssertGuard: () =>
212
+ CreateAssertTransformer.transform({ equals: false, guard: true }),
213
+ createAssertType: () =>
214
+ CreateAssertTransformer.transform({ equals: false, guard: false }),
215
+ createIs: () => CreateIsTransformer.transform({ equals: false }),
216
+ createValidate: () =>
217
+ CreateValidateTransformer.transform({
218
+ equals: false,
219
+ standardSchema: true,
220
+ }),
221
+ createAssertEquals: () =>
222
+ CreateAssertTransformer.transform({ equals: true, guard: false }),
223
+ createAssertGuardEquals: () =>
224
+ CreateAssertTransformer.transform({ equals: true, guard: true }),
225
+ createEquals: () => CreateIsTransformer.transform({ equals: true }),
226
+ createValidateEquals: () =>
227
+ CreateValidateTransformer.transform({
228
+ equals: true,
229
+ standardSchema: true,
230
+ }),
231
+ createRandom: () => CreateRandomTransformer.transform,
232
+ },
233
+ functional: {
234
+ // ASSERTIONS
235
+ assertFunction: () =>
236
+ FunctionalGenericTransformer.transform({
237
+ method: "assertFunction",
238
+ config: {
239
+ equals: false,
240
+ },
241
+ programmer: FunctionalAssertFunctionProgrammer.write,
242
+ }),
243
+ assertParameters: () =>
244
+ FunctionalGenericTransformer.transform({
245
+ method: "assertParameters",
246
+ config: {
247
+ equals: false,
248
+ },
249
+ programmer: FunctionalAssertParametersProgrammer.write,
250
+ }),
251
+ assertReturn: () =>
252
+ FunctionalGenericTransformer.transform({
253
+ method: "assertReturn",
254
+ config: {
255
+ equals: false,
256
+ },
257
+ programmer: FunctionAssertReturnProgrammer.write,
258
+ }),
259
+ assertEqualsFunction: () =>
260
+ FunctionalGenericTransformer.transform({
261
+ method: "assertEqualsFunction",
262
+ config: {
263
+ equals: true,
264
+ },
265
+ programmer: FunctionalAssertFunctionProgrammer.write,
266
+ }),
267
+ assertEqualsParameters: () =>
268
+ FunctionalGenericTransformer.transform({
269
+ method: "assertEqualsParameters",
270
+ config: {
271
+ equals: true,
272
+ },
273
+ programmer: FunctionalAssertParametersProgrammer.write,
274
+ }),
275
+ assertEqualsReturn: () =>
276
+ FunctionalGenericTransformer.transform({
277
+ method: "assertEqualsReturn",
278
+ config: {
279
+ equals: true,
280
+ },
281
+ programmer: FunctionAssertReturnProgrammer.write,
282
+ }),
283
+
284
+ // IS
285
+ isFunction: () =>
286
+ FunctionalGenericTransformer.transform({
287
+ method: "isFunction",
288
+ config: {
289
+ equals: false,
290
+ },
291
+ programmer: FunctionalIsFunctionProgrammer.write,
292
+ }),
293
+ isParameters: () =>
294
+ FunctionalGenericTransformer.transform({
295
+ method: "isParameters",
296
+ config: {
297
+ equals: false,
298
+ },
299
+ programmer: FunctionalIsParametersProgrammer.write,
300
+ }),
301
+ isReturn: () =>
302
+ FunctionalGenericTransformer.transform({
303
+ method: "isReturn",
304
+ config: {
305
+ equals: false,
306
+ },
307
+ programmer: FunctionalIsReturnProgrammer.write,
308
+ }),
309
+ equalsFunction: () =>
310
+ FunctionalGenericTransformer.transform({
311
+ method: "equalsFunction",
312
+ config: {
313
+ equals: true,
314
+ },
315
+ programmer: FunctionalIsFunctionProgrammer.write,
316
+ }),
317
+ equalsParameters: () =>
318
+ FunctionalGenericTransformer.transform({
319
+ method: "equalsParameters",
320
+ config: {
321
+ equals: true,
322
+ },
323
+ programmer: FunctionalIsParametersProgrammer.write,
324
+ }),
325
+ equalsReturn: () =>
326
+ FunctionalGenericTransformer.transform({
327
+ method: "equalsReturn",
328
+ config: {
329
+ equals: true,
330
+ },
331
+ programmer: FunctionalIsReturnProgrammer.write,
332
+ }),
333
+
334
+ // VALIDATIONS
335
+ validateFunction: () =>
336
+ FunctionalGenericTransformer.transform({
337
+ method: "validateFunction",
338
+ config: {
339
+ equals: false,
340
+ },
341
+ programmer: FunctionalValidateFunctionProgrammer.write,
342
+ }),
343
+ validateParameters: () =>
344
+ FunctionalGenericTransformer.transform({
345
+ method: "validateParameters",
346
+ config: {
347
+ equals: false,
348
+ },
349
+ programmer: FunctionalValidateParametersProgrammer.write,
350
+ }),
351
+ validateReturn: () =>
352
+ FunctionalGenericTransformer.transform({
353
+ method: "validateReturn",
354
+ config: {
355
+ equals: false,
356
+ },
357
+ programmer: FunctionalValidateReturnProgrammer.write,
358
+ }),
359
+ validateEqualsFunction: () =>
360
+ FunctionalGenericTransformer.transform({
361
+ method: "validateEqualsFunction",
362
+ config: {
363
+ equals: true,
364
+ },
365
+ programmer: FunctionalValidateFunctionProgrammer.write,
366
+ }),
367
+ validateEqualsParameters: () =>
368
+ FunctionalGenericTransformer.transform({
369
+ method: "validateEqualsParameters",
370
+ config: {
371
+ equals: true,
372
+ },
373
+ programmer: FunctionalValidateParametersProgrammer.write,
374
+ }),
375
+ validateEqualsReturn: () =>
376
+ FunctionalGenericTransformer.transform({
377
+ method: "validateEqualsReturn",
378
+ config: {
379
+ equals: true,
380
+ },
381
+ programmer: FunctionalValidateReturnProgrammer.write,
382
+ }),
383
+ },
384
+ http: {
385
+ // FORM-DATA
386
+ formData: () => HttpFormDataTransformer.transform,
387
+ isFormData: () => HttpIsFormDataTransformer.transform,
388
+ assertFormData: () => HttpAssertFormDataTransformer.transform,
389
+ validateFormData: () => HttpValidateFormDataTransformer.transform,
390
+
391
+ // HEADERS
392
+ headers: () => HttpHeadersTransformer.transform,
393
+ isHeaders: () => HttpIsHeadersTransformer.transform,
394
+ assertHeaders: () => HttpAssertHeadersTransformer.transform,
395
+ validateHeaders: () => HttpValidateHeadersTransformer.transform,
396
+
397
+ // PARAMETER
398
+ parameter: () => HttpParameterTransformer.transform,
399
+
400
+ // QUERY
401
+ query: () => HttpQueryTransformer.transform,
402
+ isQuery: () => HttpIsQueryTransformer.transform,
403
+ assertQuery: () => HttpAssertQueryTransformer.transform,
404
+ validateQuery: () => HttpValidateQueryTransformer.transform,
405
+
406
+ // FACTORIES
407
+ createFormData: () => CreateHttpFormDataTransformer.transform,
408
+ createIsFormData: () => CreateHttpIsFormDataTransformer.transform,
409
+ createAssertFormData: () => CreateHttpAssertFormDataTransformer.transform,
410
+ createValidateFormData: () =>
411
+ CreateHttpValidateFormDataTransformer.transform,
412
+ createHeaders: () => CreateHttpHeadersTransformer.transform,
413
+ createIsHeaders: () => CreateHttpIsHeadersTransformer.transform,
414
+ createAssertHeaders: () => CreateHttpAssertHeadersTransformer.transform,
415
+ createValidateHeaders: () => CreateHttpValidateHeadersTransformer.transform,
416
+ createParameter: () => CreateHttpParameterTransformer.transform,
417
+ createQuery: () => CreateHttpQueryTransformer.transform,
418
+ createIsQuery: () => CreateHttpIsQueryTransformer.transform,
419
+ createAssertQuery: () => CreateHttpAssertQueryTransformer.transform,
420
+ createValidateQuery: () => CreateHttpValidateQueryTransformer.transform,
421
+ },
422
+ llm: {
423
+ controller: () => LlmControllerTransformer.transform,
424
+ applicationOfValidate: () => LlmApplicationTransformer.transform,
425
+ application: () => LlmApplicationTransformer.transform,
426
+ parameters: () => LlmParametersTransformer.transform,
427
+ schema: () => LlmSchemaTransformer.transform,
428
+ parse: () => LlmParseTransformer.transform,
429
+ createParse: () => LlmCreateParseTransformer.transform,
430
+ coerce: () => LlmCoerceTransformer.transform,
431
+ createCoerce: () => LlmCreateCoerceTransformer.transform,
432
+ },
433
+ json: {
434
+ // METADATA
435
+ schema: () => JsonSchemaTransformer.transform,
436
+ schemas: () => JsonSchemasTransformer.transform,
437
+ application: () => JsonApplicationTransformer.transform,
438
+
439
+ // PARSER
440
+ isParse: () => JsonIsParseTransformer.transform,
441
+ assertParse: () => JsonAssertParseTransformer.transform,
442
+ validateParse: () => JsonValidateParseTransformer.transform,
443
+
444
+ // STRINGIFY
445
+ stringify: () => JsonStringifyTransformer.transform,
446
+ assertStringify: () => JsonAssertStringifyTransformer.transform,
447
+ isStringify: () => JsonIsStringifyTransformer.transform,
448
+ validateStringify: () => JsonValidateStringifyTransformer.transform,
449
+
450
+ // FACTORIES
451
+ createIsParse: () => JsonCreateIsParseTransformer.transform,
452
+ createAssertParse: () => JsonCreateAssertParseTransformer.transform,
453
+ createValidateParse: () => JsonCreateValidateParseTransformer.transform,
454
+ createStringify: () => JsonCreateStringifyTransformer.transform,
455
+ createAssertStringify: () => JsonCreateAssertStringifyTransformer.transform,
456
+ createIsStringify: () => JsonCreateIsStringifyTransformer.transform,
457
+ createValidateStringify: () =>
458
+ JsonCreateValidateStringifyTransformer.transform,
459
+ },
460
+ protobuf: {
461
+ // SCHEMA
462
+ message: () => ProtobufMessageTransformer.transform,
463
+
464
+ // ENCODE
465
+ encode: () => ProtobufEncodeTransformer.transform,
466
+ assertEncode: () => ProtobufAssertEncodeTransformer.transform,
467
+ isEncode: () => ProtobufIsEncodeTransformer.transform,
468
+ validateEncode: () => ProtobufValidateEncodeTransformer.transform,
469
+
470
+ // DECODE
471
+ decode: () => ProtobufDecodeTransformer.transform,
472
+ assertDecode: () => ProtobufAssertDecodeTransformer.transform,
473
+ isDecode: () => ProtobufIsDecodeTransformer.transform,
474
+ validateDecode: () => ProtobufValidateDecodeTransformer.transform,
475
+
476
+ // FACTORIES
477
+ createEncode: () => ProtobufCreateEncodeTransformer.transform,
478
+ createAssertEncode: () => ProtobufCreateAssertEncodeTransformer.transform,
479
+ createIsEncode: () => ProtobufCreateIsEncodeTransformer.transform,
480
+ createValidateEncode: () =>
481
+ ProtobufCreateValidateEncodeTransformer.transform,
482
+ createDecode: () => ProtobufCreateDecodeTransformer.transform,
483
+ createAssertDecode: () => ProtobufCreateAssertDecodeTransformer.transform,
484
+ createIsDecode: () => ProtobufCreateIsDecodeTransformer.transform,
485
+ createValidateDecode: () =>
486
+ ProtobufCreateValidateDecodeTransformer.transform,
487
+ },
488
+ reflect: {
489
+ metadata: () => ReflectMetadataTransformer.transform,
490
+ name: () => ReflectNameTransformer.transform,
491
+ schema: () => ReflectSchemaTransformer.transform,
492
+ schemas: () => ReflectSchemasTransformer.transform,
493
+ },
494
+ misc: {
495
+ literals: () => MiscLiteralsTransformer.transform,
496
+
497
+ // CLONE
498
+ clone: () => MiscCloneTransformer.transform,
499
+ assertClone: () => MiscAssertCloneTransformer.transform,
500
+ isClone: () => MiscIsCloneTransformer.transform,
501
+ validateClone: () => MiscValidateCloneTransformer.transform,
502
+
503
+ // PRUNE
504
+ prune: () => MiscPruneTransformer.transform,
505
+ assertPrune: () => MiscAssertPruneTransformer.transform,
506
+ isPrune: () => MiscIsPruneTransformer.transform,
507
+ validatePrune: () => MiscValidatePruneTransformer.transform,
508
+
509
+ // FACTORIES
510
+ createClone: () => MiscCreateCloneTransformer.transform,
511
+ createAssertClone: () => MiscCreateAssertCloneTransformer.transform,
512
+ createIsClone: () => MiscCreateIsCloneTransformer.transform,
513
+ createValidateClone: () => MiscCreateValidateCloneTransformer.transform,
514
+ createPrune: () => MiscCreatePruneTransformer.transform,
515
+ createAssertPrune: () => MiscCreateAssertPruneTransformer.transform,
516
+ createIsPrune: () => MiscCreateIsPruneTransformer.transform,
517
+ createValidatePrune: () => MiscCreateValidatePruneTransformer.transform,
518
+ },
519
+ notations: {
520
+ // CAMEL
521
+ camel: () => NotationGeneralTransformer.transform(NamingConvention.camel),
522
+ assertCamel: () =>
523
+ NotationAssertGeneralTransformer.transform(NamingConvention.camel),
524
+ isCamel: () =>
525
+ NotationIsGeneralTransformer.transform(NamingConvention.camel),
526
+ validateCamel: () =>
527
+ NotationValidateGeneralTransformer.transform(NamingConvention.camel),
528
+
529
+ // PASCAL
530
+ pascal: () => NotationGeneralTransformer.transform(NamingConvention.pascal),
531
+ assertPascal: () =>
532
+ NotationAssertGeneralTransformer.transform(NamingConvention.pascal),
533
+ isPascal: () =>
534
+ NotationIsGeneralTransformer.transform(NamingConvention.pascal),
535
+ validatePascal: () =>
536
+ NotationValidateGeneralTransformer.transform(NamingConvention.pascal),
537
+
538
+ // SNAKE
539
+ snake: () => NotationGeneralTransformer.transform(NamingConvention.snake),
540
+ assertSnake: () =>
541
+ NotationAssertGeneralTransformer.transform(NamingConvention.snake),
542
+ isSnake: () =>
543
+ NotationIsGeneralTransformer.transform(NamingConvention.snake),
544
+ validateSnake: () =>
545
+ NotationValidateGeneralTransformer.transform(NamingConvention.snake),
546
+
547
+ // FACTORIES
548
+ createCamel: () =>
549
+ NotationCreateGeneralTransformer.transform(NamingConvention.camel),
550
+ createAssertCamel: () =>
551
+ NotationCreateAssertGeneralTransformer.transform(NamingConvention.camel),
552
+ createIsCamel: () =>
553
+ NotationCreateIsGeneralTransformer.transform(NamingConvention.camel),
554
+ createValidateCamel: () =>
555
+ NotationCreateValidateGeneralTransformer.transform(
556
+ NamingConvention.camel,
557
+ ),
558
+ createPascal: () =>
559
+ NotationCreateGeneralTransformer.transform(NamingConvention.pascal),
560
+ createAssertPascal: () =>
561
+ NotationCreateAssertGeneralTransformer.transform(NamingConvention.pascal),
562
+ createIsPascal: () =>
563
+ NotationCreateIsGeneralTransformer.transform(NamingConvention.pascal),
564
+ createValidatePascal: () =>
565
+ NotationCreateValidateGeneralTransformer.transform(
566
+ NamingConvention.pascal,
567
+ ),
568
+ createSnake: () =>
569
+ NotationCreateGeneralTransformer.transform(NamingConvention.snake),
570
+ createAssertSnake: () =>
571
+ NotationCreateAssertGeneralTransformer.transform(NamingConvention.snake),
572
+ createIsSnake: () =>
573
+ NotationCreateIsGeneralTransformer.transform(NamingConvention.snake),
574
+ createValidateSnake: () =>
575
+ NotationCreateValidateGeneralTransformer.transform(
576
+ NamingConvention.snake,
577
+ ),
578
+ },
579
+ };