typia 5.5.0-dev.20240304 → 5.5.0-dev.20240305

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 (111) hide show
  1. package/lib/functional.d.ts +329 -0
  2. package/lib/functional.js +99 -234
  3. package/lib/functional.js.map +1 -1
  4. package/lib/programmers/AssertProgrammer.d.ts +1 -0
  5. package/lib/programmers/AssertProgrammer.js +5 -2
  6. package/lib/programmers/AssertProgrammer.js.map +1 -1
  7. package/lib/programmers/RandomProgrammer.js +3 -1
  8. package/lib/programmers/RandomProgrammer.js.map +1 -1
  9. package/lib/programmers/TypiaProgrammer.js +1 -8
  10. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  11. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +8 -2
  12. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +22 -16
  13. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
  14. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +1 -1
  15. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +8 -4
  16. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  17. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +1 -1
  18. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +8 -7
  19. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  20. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.d.ts +6 -0
  21. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js +54 -0
  22. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js.map +1 -0
  23. package/lib/programmers/functional/FunctionalIsParametersProgrammer.d.ts +7 -0
  24. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +79 -0
  25. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -0
  26. package/lib/programmers/functional/FunctionalIsReturnProgrammer.d.ts +10 -0
  27. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +71 -0
  28. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -0
  29. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +10 -0
  30. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +61 -0
  31. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -0
  32. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.d.ts +7 -0
  33. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +104 -0
  34. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -0
  35. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.d.ts +10 -0
  36. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +74 -0
  37. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -0
  38. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +3 -1
  39. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  40. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +3 -1
  41. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  42. package/lib/programmers/http/HttpAssertQueryProgrammer.js +3 -1
  43. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  44. package/lib/programmers/http/HttpFormDataProgrammer.js +3 -1
  45. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  46. package/lib/programmers/http/HttpHeadersProgrammer.js +3 -1
  47. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  48. package/lib/programmers/http/HttpIsFormDataProgrammer.js +3 -1
  49. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  50. package/lib/programmers/http/HttpIsHeadersProgrammer.js +3 -1
  51. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  52. package/lib/programmers/http/HttpIsQueryProgrammer.js +3 -1
  53. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  54. package/lib/programmers/http/HttpQueryProgrammer.js +3 -1
  55. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  56. package/lib/programmers/json/JsonAssertParseProgrammer.js +3 -1
  57. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  58. package/lib/programmers/json/JsonIsParseProgrammer.js +3 -1
  59. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  60. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +3 -1
  61. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  62. package/lib/programmers/misc/MiscCloneProgrammer.js +3 -1
  63. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  64. package/lib/programmers/misc/MiscIsCloneProgrammer.js +3 -1
  65. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  66. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -1
  67. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  68. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +3 -1
  69. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  70. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +3 -1
  71. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  72. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  73. package/lib/transformers/CallExpressionTransformer.js +104 -12
  74. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  75. package/lib/utils/StringUtil/StringUtil.d.ts +1 -0
  76. package/lib/utils/StringUtil/StringUtil.js +7 -1
  77. package/lib/utils/StringUtil/StringUtil.js.map +1 -1
  78. package/package.json +2 -1
  79. package/src/functional.ts +542 -246
  80. package/src/programmers/AssertProgrammer.ts +24 -22
  81. package/src/programmers/RandomProgrammer.ts +12 -4
  82. package/src/programmers/TypiaProgrammer.ts +1 -11
  83. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +64 -55
  84. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +13 -5
  85. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +10 -8
  86. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +45 -0
  87. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +78 -0
  88. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +91 -0
  89. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +91 -0
  90. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +212 -0
  91. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +115 -0
  92. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +12 -4
  93. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +12 -4
  94. package/src/programmers/http/HttpAssertQueryProgrammer.ts +12 -4
  95. package/src/programmers/http/HttpFormDataProgrammer.ts +12 -4
  96. package/src/programmers/http/HttpHeadersProgrammer.ts +12 -4
  97. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -4
  98. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -4
  99. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -4
  100. package/src/programmers/http/HttpQueryProgrammer.ts +12 -4
  101. package/src/programmers/json/JsonAssertParseProgrammer.ts +12 -4
  102. package/src/programmers/json/JsonIsParseProgrammer.ts +12 -4
  103. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +12 -4
  104. package/src/programmers/misc/MiscCloneProgrammer.ts +12 -4
  105. package/src/programmers/misc/MiscIsCloneProgrammer.ts +12 -4
  106. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +12 -4
  107. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +12 -4
  108. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -4
  109. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +1 -1
  110. package/src/transformers/CallExpressionTransformer.ts +95 -12
  111. package/src/utils/StringUtil/StringUtil.ts +5 -0
@@ -24,10 +24,18 @@ export namespace ProtobufAssertDecodeProgrammer {
24
24
  ),
25
25
  AssertProgrammer.Guardian.parameter(init),
26
26
  ],
27
- ts.factory.createTypeReferenceNode(
28
- `typia.Resolved<${
29
- name ?? TypeFactory.getFullName(project.checker)(type)
30
- }>`,
27
+ ts.factory.createImportTypeNode(
28
+ ts.factory.createLiteralTypeNode(
29
+ ts.factory.createStringLiteral("typia"),
30
+ ),
31
+ undefined,
32
+ ts.factory.createIdentifier("Resolved"),
33
+ [
34
+ ts.factory.createTypeReferenceNode(
35
+ name ?? TypeFactory.getFullName(project.checker)(type),
36
+ ),
37
+ ],
38
+ false,
31
39
  ),
32
40
  undefined,
33
41
  ts.factory.createBlock([
@@ -58,10 +58,18 @@ export namespace ProtobufDecodeProgrammer {
58
58
  ts.factory.createTypeReferenceNode("Uint8Array"),
59
59
  ),
60
60
  ],
61
- ts.factory.createTypeReferenceNode(
62
- `typia.Resolved<${
63
- name ?? TypeFactory.getFullName(project.checker)(type)
64
- }>`,
61
+ ts.factory.createImportTypeNode(
62
+ ts.factory.createLiteralTypeNode(
63
+ ts.factory.createStringLiteral("typia"),
64
+ ),
65
+ undefined,
66
+ ts.factory.createIdentifier("Resolved"),
67
+ [
68
+ ts.factory.createTypeReferenceNode(
69
+ name ?? TypeFactory.getFullName(project.checker)(type),
70
+ ),
71
+ ],
72
+ false,
65
73
  ),
66
74
  undefined,
67
75
  ts.factory.createBlock(
@@ -24,10 +24,18 @@ export namespace ProtobufIsDecodeProgrammer {
24
24
  ),
25
25
  ],
26
26
  ts.factory.createUnionTypeNode([
27
- ts.factory.createTypeReferenceNode(
28
- `typia.Resolved<${
29
- name ?? TypeFactory.getFullName(project.checker)(type)
30
- }>`,
27
+ ts.factory.createImportTypeNode(
28
+ ts.factory.createLiteralTypeNode(
29
+ ts.factory.createStringLiteral("typia"),
30
+ ),
31
+ undefined,
32
+ ts.factory.createIdentifier("Resolved"),
33
+ [
34
+ ts.factory.createTypeReferenceNode(
35
+ name ?? TypeFactory.getFullName(project.checker)(type),
36
+ ),
37
+ ],
38
+ false,
31
39
  ),
32
40
  ts.factory.createLiteralTypeNode(ts.factory.createNull()),
33
41
  ]),
@@ -157,4 +157,4 @@ interface IPointer<T> {
157
157
  value: T;
158
158
  }
159
159
 
160
- const TAB = " ".repeat(4);
160
+ const TAB = " ".repeat(2);
@@ -1,6 +1,17 @@
1
1
  import path from "path";
2
2
  import ts from "typescript";
3
3
 
4
+ import { FunctionalAssertFunctionProgrammer } from "../programmers/functional/FunctionalAssertFunctionProgrammer";
5
+ import { FunctionalAssertParametersProgrammer } from "../programmers/functional/FunctionalAssertParametersProgrammer";
6
+ import { FunctionAssertReturnProgrammer } from "../programmers/functional/FunctionalAssertReturnProgrammer";
7
+ import { FunctionalIsFunctionProgrammer } from "../programmers/functional/FunctionalIsFunctionProgrammer";
8
+ import { FunctionalIsParametersProgrammer } from "../programmers/functional/FunctionalIsParametersProgrammer";
9
+ import { FunctionalIsReturnProgrammer } from "../programmers/functional/FunctionalIsReturnProgrammer";
10
+ import { FunctionalValidateFunctionProgrammer } from "../programmers/functional/FunctionalValidateFunctionProgrammer";
11
+ import { FunctionalValidateParametersProgrammer } from "../programmers/functional/FunctionalValidateParametersProgrammer";
12
+ import { FunctionalValidateReturnProgrammer } from "../programmers/functional/FunctionalValidateReturnProgrammer";
13
+ import { FunctionalGenericTransformer } from "./features/functional/FunctionalGenericTransformer";
14
+
4
15
  import { NamingConvention } from "../utils/NamingConvention";
5
16
 
6
17
  import { IProject } from "./IProject";
@@ -12,22 +23,30 @@ import { CreateValidateTransformer } from "./features/CreateValidateTransformer"
12
23
  import { IsTransformer } from "./features/IsTransformer";
13
24
  import { RandomTransformer } from "./features/RandomTransformer";
14
25
  import { ValidateTransformer } from "./features/ValidateTransformer";
26
+ import { CreateHttpAssertFormDataTransformer } from "./features/http/CreateHttpAssertFormDataTransformer";
15
27
  import { CreateHttpAssertHeadersTransformer } from "./features/http/CreateHttpAssertHeadersTransformer";
16
28
  import { CreateHttpAssertQueryTransformer } from "./features/http/CreateHttpAssertQueryTransformer";
29
+ import { CreateHttpFormDataTransformer } from "./features/http/CreateHttpFormDataTransformer";
17
30
  import { CreateHttpHeadersTransformer } from "./features/http/CreateHttpHeadersTransformer";
31
+ import { CreateHttpIsFormDataTransformer } from "./features/http/CreateHttpIsFormDataTransformer";
18
32
  import { CreateHttpIsHeadersTransformer } from "./features/http/CreateHttpIsHeadersTransformer";
19
33
  import { CreateHttpIsQueryTransformer } from "./features/http/CreateHttpIsQueryTransformer";
20
34
  import { CreateHttpParameterTransformer } from "./features/http/CreateHttpParameterTransformer";
21
35
  import { CreateHttpQueryTransformer } from "./features/http/CreateHttpQueryTransformer";
36
+ import { CreateHttpValidateFormDataTransformer } from "./features/http/CreateHttpValidateFormDataTransformer";
22
37
  import { CreateHttpValidateHeadersTransformer } from "./features/http/CreateHttpValidateHeadersTransformer";
23
38
  import { CreateHttpValidateQueryTransformer } from "./features/http/CreateHttpValidateQueryTransformer";
39
+ import { HttpAssertFormDataTransformer } from "./features/http/HttpAssertFormDataTransformer";
24
40
  import { HttpAssertHeadersTransformer } from "./features/http/HttpAssertHeadersTransformer";
25
41
  import { HttpAssertQueryTransformer } from "./features/http/HttpAssertQueryTransformer";
42
+ import { HttpFormDataTransformer } from "./features/http/HttpFormDataTransformer";
26
43
  import { HttpHeadersTransformer } from "./features/http/HttpHeadersTransformer";
44
+ import { HttpIsFormDataTransformer } from "./features/http/HttpIsFormDataTransformer";
27
45
  import { HttpIsHeadersTransformer } from "./features/http/HttpIsHeadersTransformer";
28
46
  import { HttpIsQueryTransformer } from "./features/http/HttpIsQueryTransformer";
29
47
  import { HttpParameterTransformer } from "./features/http/HttpParameterTransformer";
30
48
  import { HttpQueryTransformer } from "./features/http/HttpQueryTransformer";
49
+ import { HttpValidateFormDataTransformer } from "./features/http/HttpValidateFormDataTransformer";
31
50
  import { HttpValidateHeadersTransformer } from "./features/http/HttpValidateHeadersTransformer";
32
51
  import { HttpValidateQueryTransformer } from "./features/http/HttpValidateQueryTransformer";
33
52
  import { JsonApplicationTransformer } from "./features/json/JsonApplicationTransformer";
@@ -88,18 +107,6 @@ import { ProtobufMessageTransformer } from "./features/protobuf/ProtobufMessageT
88
107
  import { ProtobufValidateDecodeTransformer } from "./features/protobuf/ProtobufValidateDecodeTransformer";
89
108
  import { ProtobufValidateEncodeTransformer } from "./features/protobuf/ProtobufValidateEncodeTransformer";
90
109
  import { ReflectMetadataTransformer } from "./features/reflect/ReflectMetadataTransformer";
91
- import { HttpAssertFormDataTransformer } from "./features/http/HttpAssertFormDataTransformer";
92
- import { HttpFormDataTransformer } from "./features/http/HttpFormDataTransformer";
93
- import { HttpIsFormDataTransformer } from "./features/http/HttpIsFormDataTransformer";
94
- import { HttpValidateFormDataTransformer } from "./features/http/HttpValidateFormDataTransformer";
95
- import { CreateHttpAssertFormDataTransformer } from "./features/http/CreateHttpAssertFormDataTransformer";
96
- import { CreateHttpFormDataTransformer } from "./features/http/CreateHttpFormDataTransformer";
97
- import { CreateHttpIsFormDataTransformer } from "./features/http/CreateHttpIsFormDataTransformer";
98
- import { CreateHttpValidateFormDataTransformer } from "./features/http/CreateHttpValidateFormDataTransformer";
99
- import { FunctionalGenericTransformer } from "./features/functional/FunctionalGenericTransformer";
100
- import { FunctionalAssertFunctionProgrammer } from "../programmers/functional/FunctionalAssertFunctionProgrammer";
101
- import { FunctionalAssertParametersProgrammer } from "../programmers/functional/FunctionalAssertParametersProgrammer";
102
- import { FunctionAssertReturnProgrammer } from "../programmers/functional/FunctionalAssertReturnProgrammer";
103
110
 
104
111
  export namespace CallExpressionTransformer {
105
112
  export const transform =
@@ -229,6 +236,82 @@ const FUNCTORS: Record<string, Record<string, () => Task>> = {
229
236
  equals: true,
230
237
  programmer: FunctionAssertReturnProgrammer.write,
231
238
  }),
239
+
240
+ // IS
241
+ isFunction: () =>
242
+ FunctionalGenericTransformer.transform({
243
+ method: "isFunction",
244
+ equals: false,
245
+ programmer: FunctionalIsFunctionProgrammer.write,
246
+ }),
247
+ isParameters: () =>
248
+ FunctionalGenericTransformer.transform({
249
+ method: "isParameters",
250
+ equals: false,
251
+ programmer: FunctionalIsParametersProgrammer.write,
252
+ }),
253
+ isReturn: () =>
254
+ FunctionalGenericTransformer.transform({
255
+ method: "isReturn",
256
+ equals: false,
257
+ programmer: FunctionalIsReturnProgrammer.write,
258
+ }),
259
+ equalsFunction: () =>
260
+ FunctionalGenericTransformer.transform({
261
+ method: "equalsFunction",
262
+ equals: true,
263
+ programmer: FunctionalIsFunctionProgrammer.write,
264
+ }),
265
+ equalsParameters: () =>
266
+ FunctionalGenericTransformer.transform({
267
+ method: "equalsParameters",
268
+ equals: true,
269
+ programmer: FunctionalIsParametersProgrammer.write,
270
+ }),
271
+ equalsReturn: () =>
272
+ FunctionalGenericTransformer.transform({
273
+ method: "equalsReturn",
274
+ equals: true,
275
+ programmer: FunctionalIsReturnProgrammer.write,
276
+ }),
277
+
278
+ // VALIDATIONS
279
+ validateFunction: () =>
280
+ FunctionalGenericTransformer.transform({
281
+ method: "validateFunction",
282
+ equals: false,
283
+ programmer: FunctionalValidateFunctionProgrammer.write,
284
+ }),
285
+ validateParameters: () =>
286
+ FunctionalGenericTransformer.transform({
287
+ method: "validateParameters",
288
+ equals: false,
289
+ programmer: FunctionalValidateParametersProgrammer.write,
290
+ }),
291
+ validateReturn: () =>
292
+ FunctionalGenericTransformer.transform({
293
+ method: "validateReturn",
294
+ equals: false,
295
+ programmer: FunctionalValidateReturnProgrammer.write,
296
+ }),
297
+ validateEqualsFunction: () =>
298
+ FunctionalGenericTransformer.transform({
299
+ method: "validateEqualsFunction",
300
+ equals: true,
301
+ programmer: FunctionalValidateFunctionProgrammer.write,
302
+ }),
303
+ validateEqualsParameters: () =>
304
+ FunctionalGenericTransformer.transform({
305
+ method: "validateEqualsParameters",
306
+ equals: true,
307
+ programmer: FunctionalValidateParametersProgrammer.write,
308
+ }),
309
+ validateEqualsReturn: () =>
310
+ FunctionalGenericTransformer.transform({
311
+ method: "validateEqualsReturn",
312
+ equals: true,
313
+ programmer: FunctionalValidateReturnProgrammer.write,
314
+ }),
232
315
  },
233
316
  http: {
234
317
  // FORM-DATA
@@ -1,2 +1,7 @@
1
1
  export const capitalize = (str: string) =>
2
2
  str.length ? str[0]!.toUpperCase() + str.slice(1) : str;
3
+
4
+ export const escapeDuplicate =
5
+ (keep: string[]) =>
6
+ (change: string): string =>
7
+ keep.includes(change) ? escapeDuplicate(keep)(`_${change}`) : change;