typia 5.5.0-dev.20240304 → 5.5.0-dev.20240306

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 (129) 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/http.d.ts +15 -6
  5. package/lib/http.js.map +1 -1
  6. package/lib/json.d.ts +17 -8
  7. package/lib/json.js.map +1 -1
  8. package/lib/misc.d.ts +18 -8
  9. package/lib/misc.js.map +1 -1
  10. package/lib/module.d.ts +17 -0
  11. package/lib/module.js.map +1 -1
  12. package/lib/notations.d.ts +12 -0
  13. package/lib/notations.js.map +1 -1
  14. package/lib/programmers/AssertProgrammer.d.ts +1 -0
  15. package/lib/programmers/AssertProgrammer.js +5 -2
  16. package/lib/programmers/AssertProgrammer.js.map +1 -1
  17. package/lib/programmers/RandomProgrammer.js +3 -1
  18. package/lib/programmers/RandomProgrammer.js.map +1 -1
  19. package/lib/programmers/TypiaProgrammer.js +1 -8
  20. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  21. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +8 -2
  22. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +22 -16
  23. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
  24. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +1 -1
  25. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +8 -4
  26. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  27. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +1 -1
  28. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +8 -7
  29. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  30. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.d.ts +6 -0
  31. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js +54 -0
  32. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js.map +1 -0
  33. package/lib/programmers/functional/FunctionalIsParametersProgrammer.d.ts +7 -0
  34. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +79 -0
  35. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -0
  36. package/lib/programmers/functional/FunctionalIsReturnProgrammer.d.ts +10 -0
  37. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +71 -0
  38. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -0
  39. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +10 -0
  40. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +61 -0
  41. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -0
  42. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.d.ts +7 -0
  43. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +104 -0
  44. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -0
  45. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.d.ts +10 -0
  46. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +74 -0
  47. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -0
  48. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +3 -1
  49. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  50. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +3 -1
  51. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  52. package/lib/programmers/http/HttpAssertQueryProgrammer.js +3 -1
  53. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  54. package/lib/programmers/http/HttpFormDataProgrammer.js +3 -1
  55. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  56. package/lib/programmers/http/HttpHeadersProgrammer.js +3 -1
  57. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  58. package/lib/programmers/http/HttpIsFormDataProgrammer.js +3 -1
  59. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  60. package/lib/programmers/http/HttpIsHeadersProgrammer.js +3 -1
  61. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  62. package/lib/programmers/http/HttpIsQueryProgrammer.js +3 -1
  63. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  64. package/lib/programmers/http/HttpQueryProgrammer.js +3 -1
  65. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  66. package/lib/programmers/json/JsonAssertParseProgrammer.js +3 -1
  67. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  68. package/lib/programmers/json/JsonIsParseProgrammer.js +3 -1
  69. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  70. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +3 -1
  71. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  72. package/lib/programmers/misc/MiscCloneProgrammer.js +3 -1
  73. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  74. package/lib/programmers/misc/MiscIsCloneProgrammer.js +3 -1
  75. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  76. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -1
  77. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  78. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +3 -1
  79. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  80. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +3 -1
  81. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  82. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  83. package/lib/protobuf.d.ts +8 -0
  84. package/lib/protobuf.js.map +1 -1
  85. package/lib/transformers/CallExpressionTransformer.js +104 -12
  86. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  87. package/lib/utils/StringUtil/StringUtil.d.ts +1 -0
  88. package/lib/utils/StringUtil/StringUtil.js +7 -1
  89. package/lib/utils/StringUtil/StringUtil.js.map +1 -1
  90. package/package.json +2 -1
  91. package/src/functional.ts +542 -246
  92. package/src/http.ts +15 -6
  93. package/src/json.ts +17 -8
  94. package/src/misc.ts +18 -8
  95. package/src/module.ts +17 -0
  96. package/src/notations.ts +12 -0
  97. package/src/programmers/AssertProgrammer.ts +24 -22
  98. package/src/programmers/RandomProgrammer.ts +12 -4
  99. package/src/programmers/TypiaProgrammer.ts +1 -11
  100. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +64 -55
  101. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +13 -5
  102. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +10 -8
  103. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +45 -0
  104. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +78 -0
  105. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +91 -0
  106. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +91 -0
  107. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +212 -0
  108. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +115 -0
  109. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +12 -4
  110. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +12 -4
  111. package/src/programmers/http/HttpAssertQueryProgrammer.ts +12 -4
  112. package/src/programmers/http/HttpFormDataProgrammer.ts +12 -4
  113. package/src/programmers/http/HttpHeadersProgrammer.ts +12 -4
  114. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -4
  115. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -4
  116. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -4
  117. package/src/programmers/http/HttpQueryProgrammer.ts +12 -4
  118. package/src/programmers/json/JsonAssertParseProgrammer.ts +12 -4
  119. package/src/programmers/json/JsonIsParseProgrammer.ts +12 -4
  120. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +12 -4
  121. package/src/programmers/misc/MiscCloneProgrammer.ts +12 -4
  122. package/src/programmers/misc/MiscIsCloneProgrammer.ts +12 -4
  123. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +12 -4
  124. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +12 -4
  125. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -4
  126. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +1 -1
  127. package/src/protobuf.ts +8 -0
  128. package/src/transformers/CallExpressionTransformer.ts +95 -12
  129. 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);
package/src/protobuf.ts CHANGED
@@ -164,6 +164,7 @@ export { decodePure as decode };
164
164
  *
165
165
  * @template T Expected type of decoded value
166
166
  * @param input Protobuf Buffer binary data
167
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
167
168
  * @returns Decoded value
168
169
  *
169
170
  * @author Jeongho Nam - https://github.com/samchon
@@ -196,6 +197,7 @@ function assertDecode(
196
197
  *
197
198
  * @template T Expected type of decoded value
198
199
  * @param input Protobuf Buffer binary data
200
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
199
201
  * @returns Decoded value
200
202
  *
201
203
  * @author Jeongho Nam - https://github.com/samchon
@@ -446,6 +448,7 @@ export { encodePure as encode };
446
448
  *
447
449
  * @template T Type of the value input
448
450
  * @param input A value to encode
451
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
449
452
  * @returns Encoded binary data
450
453
  *
451
454
  * @author Jeongho Nam - https://github.com/samchon
@@ -482,6 +485,7 @@ function assertEncode<T>(
482
485
  *
483
486
  * @template T Type of the value input
484
487
  * @param input A value to encode
488
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
485
489
  * @returns Encoded binary data
486
490
  *
487
491
  * @author Jeongho Nam - https://github.com/samchon
@@ -750,6 +754,7 @@ export { createIsDecodePure as createIsDecode };
750
754
  * Creates a reusable {@link assertDecode} function.
751
755
  *
752
756
  * @danger You must configure the generic argument `T`
757
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
753
758
  * @returns Nothing until you configure the generic argument `T`
754
759
  * @throws compile error
755
760
  *
@@ -763,6 +768,7 @@ function createAssertDecode(
763
768
  * Creates a reusable {@link assertDecode} function.
764
769
  *
765
770
  * @template T Target type
771
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
766
772
  * @returns A reusable `assertDecode` function
767
773
  *
768
774
  * @author Jeongho Nam - https://github.com/samchon
@@ -905,6 +911,7 @@ export { createIsEncodePure as createIsEncode };
905
911
  * Creates a reusable {@link assertEncode} function.
906
912
  *
907
913
  * @danger You must configure the generic argument `T`
914
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
908
915
  * @returns Nothing until you configure the generic argument `T`
909
916
  * @throws compile error
910
917
  *
@@ -918,6 +925,7 @@ function createAssertEncode(
918
925
  * Creates a reusable {@link assertEncode} function.
919
926
  *
920
927
  * @template T Target type
928
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
921
929
  * @returns A reusable `assertEncode` function
922
930
  *
923
931
  * @author Jeongho Nam - https://github.com/samchon
@@ -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;