typia 5.5.0-dev.20240303-2 → 5.5.0-dev.20240304

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 (93) hide show
  1. package/lib/functional/Namespace/functional.d.ts +4 -0
  2. package/lib/functional/Namespace/functional.js +9 -0
  3. package/lib/functional/Namespace/functional.js.map +1 -0
  4. package/lib/functional/Namespace/index.d.ts +1 -0
  5. package/lib/functional/Namespace/index.js +2 -1
  6. package/lib/functional/Namespace/index.js.map +1 -1
  7. package/lib/functional.d.ts +6 -162
  8. package/lib/functional.js +248 -48
  9. package/lib/functional.js.map +1 -1
  10. package/lib/programmers/AssertProgrammer.js +2 -2
  11. package/lib/programmers/AssertProgrammer.js.map +1 -1
  12. package/lib/programmers/CheckerProgrammer.d.ts +1 -1
  13. package/lib/programmers/FeatureProgrammer.d.ts +1 -1
  14. package/lib/programmers/IsProgrammer.d.ts +1 -1
  15. package/lib/programmers/IsProgrammer.js +3 -3
  16. package/lib/programmers/IsProgrammer.js.map +1 -1
  17. package/lib/programmers/RandomProgrammer.js +2 -2
  18. package/lib/programmers/RandomProgrammer.js.map +1 -1
  19. package/lib/programmers/ValidateProgrammer.js +2 -2
  20. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  21. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +2 -0
  22. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +55 -11
  23. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
  24. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +1 -5
  25. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +38 -21
  26. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  27. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +1 -5
  28. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +17 -18
  29. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  30. package/lib/programmers/helpers/FunctionImporeter.d.ts +1 -19
  31. package/lib/programmers/helpers/FunctionImporeter.js +13 -91
  32. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
  33. package/lib/programmers/helpers/FunctionImporter.d.ts +19 -0
  34. package/lib/programmers/helpers/FunctionImporter.js +96 -0
  35. package/lib/programmers/helpers/FunctionImporter.js.map +1 -0
  36. package/lib/programmers/helpers/StringifyJoinder.d.ts +1 -1
  37. package/lib/programmers/helpers/disable_function_importer_declare.d.ts +1 -1
  38. package/lib/programmers/http/HttpFormDataProgrammer.js +2 -2
  39. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  40. package/lib/programmers/http/HttpHeadersProgrammer.js +2 -2
  41. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  42. package/lib/programmers/http/HttpParameterProgrammer.js +2 -2
  43. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  44. package/lib/programmers/http/HttpQueryProgrammer.js +2 -2
  45. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  46. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -1
  47. package/lib/programmers/json/JsonStringifyProgrammer.js +2 -2
  48. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  49. package/lib/programmers/misc/MiscCloneProgrammer.js +2 -2
  50. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  51. package/lib/programmers/misc/MiscPruneProgrammer.js +2 -2
  52. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  53. package/lib/programmers/notations/NotationGeneralProgrammer.js +2 -2
  54. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  55. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +2 -2
  56. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  57. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +2 -2
  58. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  59. package/lib/transformers/features/functional/FunctionalGenericTransformer.d.ts +1 -1
  60. package/lib/transformers/features/functional/FunctionalGenericTransformer.js +11 -32
  61. package/lib/transformers/features/functional/FunctionalGenericTransformer.js.map +1 -1
  62. package/package.json +2 -1
  63. package/src/functional/Namespace/functional.ts +5 -0
  64. package/src/functional/Namespace/index.ts +1 -0
  65. package/src/functional.ts +258 -243
  66. package/src/programmers/AssertProgrammer.ts +1 -1
  67. package/src/programmers/CheckerProgrammer.ts +1 -1
  68. package/src/programmers/FeatureProgrammer.ts +1 -1
  69. package/src/programmers/IsProgrammer.ts +1 -1
  70. package/src/programmers/RandomProgrammer.ts +1 -1
  71. package/src/programmers/ValidateProgrammer.ts +1 -1
  72. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +103 -18
  73. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +22 -45
  74. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +44 -40
  75. package/src/programmers/helpers/FunctionImporeter.ts +1 -87
  76. package/src/programmers/helpers/FunctionImporter.ts +87 -0
  77. package/src/programmers/helpers/StringifyJoinder.ts +1 -1
  78. package/src/programmers/helpers/disable_function_importer_declare.ts +1 -1
  79. package/src/programmers/http/HttpFormDataProgrammer.ts +1 -1
  80. package/src/programmers/http/HttpHeadersProgrammer.ts +1 -1
  81. package/src/programmers/http/HttpParameterProgrammer.ts +1 -1
  82. package/src/programmers/http/HttpQueryProgrammer.ts +1 -1
  83. package/src/programmers/internal/check_dynamic_key.ts +1 -1
  84. package/src/programmers/internal/check_dynamic_properties.ts +1 -1
  85. package/src/programmers/internal/check_object.ts +1 -1
  86. package/src/programmers/internal/feature_object_entries.ts +1 -1
  87. package/src/programmers/json/JsonStringifyProgrammer.ts +1 -1
  88. package/src/programmers/misc/MiscCloneProgrammer.ts +1 -1
  89. package/src/programmers/misc/MiscPruneProgrammer.ts +1 -1
  90. package/src/programmers/notations/NotationGeneralProgrammer.ts +1 -1
  91. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +1 -1
  92. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +1 -1
  93. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +12 -17
@@ -0,0 +1,4 @@
1
+ import { TypeGuardError } from "../../TypeGuardError";
2
+ export declare const functionalAssert: () => {
3
+ errorFactory: (p: TypeGuardError.IProps) => TypeGuardError;
4
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.functionalAssert = void 0;
4
+ var TypeGuardError_1 = require("../../TypeGuardError");
5
+ var functionalAssert = function () { return ({
6
+ errorFactory: function (p) { return new TypeGuardError_1.TypeGuardError(p); },
7
+ }); };
8
+ exports.functionalAssert = functionalAssert;
9
+ //# sourceMappingURL=functional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/functional/Namespace/functional.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAE/C,IAAM,gBAAgB,GAAG,cAAM,OAAA,CAAC;IACrC,YAAY,EAAE,UAAC,CAAwB,IAAK,OAAA,IAAI,+BAAc,CAAC,CAAC,CAAC,EAArB,CAAqB;CAClE,CAAC,EAFoC,CAEpC,CAAC;AAFU,QAAA,gBAAgB,oBAE1B"}
@@ -2,6 +2,7 @@ import { RandomGenerator } from "../../utils/RandomGenerator";
2
2
  import { IValidation } from "../../IValidation";
3
3
  import { TypeGuardError } from "../../TypeGuardError";
4
4
  import { is } from "../is";
5
+ export * as functional from "./functional";
5
6
  export * as json from "./json";
6
7
  export * as http from "./http";
7
8
  export * as notations from "./notations";
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
34
34
  return result;
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.random = exports.validate = exports.assert = exports.is = exports.protobuf = exports.misc = exports.notations = exports.http = exports.json = void 0;
37
+ exports.random = exports.validate = exports.assert = exports.is = exports.protobuf = exports.misc = exports.notations = exports.http = exports.json = exports.functional = void 0;
38
38
  var RandomGenerator_1 = require("../../utils/RandomGenerator");
39
39
  var _every_1 = require("../$every");
40
40
  var _guard_1 = require("../$guard");
@@ -43,6 +43,7 @@ var _report_1 = require("../$report");
43
43
  var TypeGuardError_1 = require("../../TypeGuardError");
44
44
  var is_1 = require("../is");
45
45
  Object.defineProperty(exports, "is", { enumerable: true, get: function () { return is_1.is; } });
46
+ exports.functional = __importStar(require("./functional"));
46
47
  exports.json = __importStar(require("./json"));
47
48
  exports.http = __importStar(require("./http"));
48
49
  exports.notations = __importStar(require("./notations"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functional/Namespace/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA8D;AAE9D,oCAAmC;AACnC,oCAAmC;AACnC,kCAAiC;AACjC,sCAAqC;AAErC,uDAAsD;AACtD,4BAA2B;AAQlB,mFARA,OAAE,OAQA;AANX,+CAA+B;AAC/B,+CAA+B;AAC/B,yDAAyC;AACzC,+CAA+B;AAC/B,uDAAuC;AAIhC,IAAM,MAAM,GAAG,UAAC,MAAc,IAAK,OAAA,uBACrC,IAAA,OAAE,GAAE,KACP,IAAI,EAAE,aAAK,EACX,KAAK,EAAE,eAAM,EACb,KAAK,EAAE,IAAA,eAAM,EAAC,gBAAS,MAAM,CAAE,CAAC,EAChC,SAAS,EAAE,UACT,OAAgB,EAChB,aAAsB,EACtB,OAAoD;QAEpD,IAAI,OAAO,KAAK,KAAK,IAAI,aAAa,KAAK,IAAI;YAC7C,MAAM,IAAI,+BAAc,uBACnB,OAAO,EAAE,KACZ,MAAM,EAAE,gBAAS,MAAM,CAAE,IACzB,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC,IACD,EAjBwC,CAiBxC,CAAC;AAjBU,QAAA,MAAM,UAiBhB;AAEI,IAAM,QAAQ,GAAG,cAAM,OAAA,uBACzB,IAAA,OAAE,GAAE,KACP,IAAI,EAAE,aAAK,EACX,MAAM,EAAE,iBAAO,EACf,SAAS,EACP,UAAC,GAAgB;QACjB,OAAA,UACE,OAAgB,EAChB,aAAsB,EACtB,OAAiC;YAEjC,gBAAgB;YAChB,IAAI,OAAO,KAAK,KAAK,IAAI,aAAa,KAAK,IAAI;gBAC7C,CAAC;oBACC,GAAG,CAAC,OAAO,KAAX,GAAG,CAAC,OAAO,GAAK,KAAK,EAAC;oBACtB,IAAM,SAAS,GAAI,GAA4B,CAAC,MAAM,CAAC;oBAEvD,cAAc;oBACd,IAAM,KAAK,GAAG,OAAO,EAAE,CAAC;oBACxB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;wBACrB,IAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC;wBACnD,IACE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;4BAChC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI;4BAEnD,OAAO;oBACX,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,OAAO;gBACT,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,OAAO,CAAC;QACjB,CAAC;IAzBD,CAyBC,IACH,EAhC4B,CAgC5B,CAAC;AAhCU,QAAA,QAAQ,YAgClB;AAEI,IAAM,MAAM,GAAG,cAAM,OAAA,CAAC;IAC3B,SAAS,EAAE,iCAAe;IAC1B,IAAI,EAAE,iCAAe,CAAC,IAAI;CAC3B,CAAC,EAH0B,CAG1B,CAAC;AAHU,QAAA,MAAM,UAGhB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functional/Namespace/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA8D;AAE9D,oCAAmC;AACnC,oCAAmC;AACnC,kCAAiC;AACjC,sCAAqC;AAErC,uDAAsD;AACtD,4BAA2B;AASlB,mFATA,OAAE,OASA;AAPX,2DAA2C;AAC3C,+CAA+B;AAC/B,+CAA+B;AAC/B,yDAAyC;AACzC,+CAA+B;AAC/B,uDAAuC;AAIhC,IAAM,MAAM,GAAG,UAAC,MAAc,IAAK,OAAA,uBACrC,IAAA,OAAE,GAAE,KACP,IAAI,EAAE,aAAK,EACX,KAAK,EAAE,eAAM,EACb,KAAK,EAAE,IAAA,eAAM,EAAC,gBAAS,MAAM,CAAE,CAAC,EAChC,SAAS,EAAE,UACT,OAAgB,EAChB,aAAsB,EACtB,OAAoD;QAEpD,IAAI,OAAO,KAAK,KAAK,IAAI,aAAa,KAAK,IAAI;YAC7C,MAAM,IAAI,+BAAc,uBACnB,OAAO,EAAE,KACZ,MAAM,EAAE,gBAAS,MAAM,CAAE,IACzB,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC,IACD,EAjBwC,CAiBxC,CAAC;AAjBU,QAAA,MAAM,UAiBhB;AAEI,IAAM,QAAQ,GAAG,cAAM,OAAA,uBACzB,IAAA,OAAE,GAAE,KACP,IAAI,EAAE,aAAK,EACX,MAAM,EAAE,iBAAO,EACf,SAAS,EACP,UAAC,GAAgB;QACjB,OAAA,UACE,OAAgB,EAChB,aAAsB,EACtB,OAAiC;YAEjC,gBAAgB;YAChB,IAAI,OAAO,KAAK,KAAK,IAAI,aAAa,KAAK,IAAI;gBAC7C,CAAC;oBACC,GAAG,CAAC,OAAO,KAAX,GAAG,CAAC,OAAO,GAAK,KAAK,EAAC;oBACtB,IAAM,SAAS,GAAI,GAA4B,CAAC,MAAM,CAAC;oBAEvD,cAAc;oBACd,IAAM,KAAK,GAAG,OAAO,EAAE,CAAC;oBACxB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;wBACrB,IAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC;wBACnD,IACE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;4BAChC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI;4BAEnD,OAAO;oBACX,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,OAAO;gBACT,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,OAAO,CAAC;QACjB,CAAC;IAzBD,CAyBC,IACH,EAhC4B,CAgC5B,CAAC;AAhCU,QAAA,QAAQ,YAgClB;AAEI,IAAM,MAAM,GAAG,cAAM,OAAA,CAAC;IAC3B,SAAS,EAAE,iCAAe;IAC1B,IAAI,EAAE,iCAAe,CAAC,IAAI;CAC3B,CAAC,EAH0B,CAG1B,CAAC;AAHU,QAAA,MAAM,UAGhB"}
@@ -1,4 +1,3 @@
1
- import { IValidation } from "./IValidation";
2
1
  import { TypeGuardError } from "./TypeGuardError";
3
2
  /**
4
3
  * Asserts a function.
@@ -32,7 +31,7 @@ import { TypeGuardError } from "./TypeGuardError";
32
31
  *
33
32
  * @author Jeongho Nam - https://github.com/samchon
34
33
  */
35
- declare function assertFunction<T extends (...args: unknown[]) => unknown>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
34
+ declare function assertFunction<T extends (...args: any[]) => any>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
36
35
  declare const assertFunctionPure: typeof assertFunction;
37
36
  export { assertFunctionPure as assertFunction };
38
37
  /**
@@ -63,7 +62,7 @@ export { assertFunctionPure as assertFunction };
63
62
  *
64
63
  * @author Jeongho Nam - https://github.com/samchon
65
64
  */
66
- declare function assertParameters<T extends (...args: unknown[]) => unknown>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
65
+ declare function assertParameters<T extends (...args: any[]) => any>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
67
66
  declare const assertParametersPure: typeof assertParameters;
68
67
  export { assertParametersPure as assertParameters };
69
68
  /**
@@ -94,7 +93,7 @@ export { assertParametersPure as assertParameters };
94
93
  *
95
94
  * @author Jeongho Nam - https://github.com/samchon
96
95
  */
97
- declare function assertReturn<T extends (...args: unknown[]) => unknown>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
96
+ declare function assertReturn<T extends (...args: any[]) => any>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
98
97
  declare const assertReturnPure: typeof assertReturn;
99
98
  export { assertReturnPure as assertReturn };
100
99
  /**
@@ -130,7 +129,7 @@ export { assertReturnPure as assertReturn };
130
129
  *
131
130
  * @author Jeongho Nam - https://github.com/samchon
132
131
  */
133
- declare function assertEqualsFunction<T extends (...args: unknown[]) => unknown>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
132
+ declare function assertEqualsFunction<T extends (...args: any[]) => any>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
134
133
  declare const assertEqualsFunctionPure: typeof assertEqualsFunction;
135
134
  export { assertEqualsFunctionPure as assertEqualsFunction };
136
135
  /**
@@ -162,7 +161,7 @@ export { assertEqualsFunctionPure as assertEqualsFunction };
162
161
  *
163
162
  * @author Jeongho Nam - https://github.com/samchon
164
163
  */
165
- declare function assertEqualsParameters<T extends (...args: unknown[]) => unknown>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
164
+ declare function assertEqualsParameters<T extends (...args: any[]) => any>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
166
165
  declare const assertEqualsParametersPure: typeof assertEqualsParameters;
167
166
  export { assertEqualsParametersPure as assertEqualsParameters };
168
167
  /**
@@ -193,161 +192,6 @@ export { assertEqualsParametersPure as assertEqualsParameters };
193
192
  *
194
193
  * @author Jeongho Nam - https://github.com/samchon
195
194
  */
196
- declare function assertEqualsReturn<T extends (...args: unknown[]) => unknown>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
195
+ declare function assertEqualsReturn<T extends (...args: any[]) => any>(func: T, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): T;
197
196
  declare const assertEqualsReturnPure: typeof assertEqualsReturn;
198
197
  export { assertEqualsReturnPure as assertEqualsReturn };
199
- /**
200
- * Validates a function.
201
- *
202
- * Validates a function, by wrapping the function and checking its parameters and
203
- * return value through {@link validate} function. If some parameter or return value
204
- * does not match the expected type, it returns {@link IValidation.IError} typed
205
- * object. Otherwise there's no type error, it returns {@link IValidation.ISuccess}
206
- * typed object instead.
207
- *
208
- * For reference, {@link IValidation.IError.path} would be a little bit different with
209
- * individual {@link validate} function. If the {@link IValidation.IError} occurs from
210
- * some parameter, the path would start from `$input.parameters[number]`. Otherwise
211
- * the path would start from `$input.return`.
212
- *
213
- * - `$input.parameters[0].~`
214
- * - `$input.return.~`
215
- *
216
- * By the way, if what you want is not finding every type errors, but just finding
217
- * the 1st type error, then use {@link assertFunction} instead. Otherwise, what you
218
- * want is just validating parameters or return value only, you can use
219
- * {@link validateParameters} or {@link validateReturn} instead.
220
- *
221
- * On the other hand, if you don't want to allow any superfluous properties, utilize
222
- * {@link validateEqualsFunction} or {@link assertEqualsFunction} instead.
223
- *
224
- * @template T Target function type
225
- * @param func Target function to validate
226
- * @returns The wrapper function with type validations
227
- *
228
- * @author Jeongho Nam - https://github.com/samchon
229
- */
230
- declare function validateFunction<T extends (...args: unknown[]) => unknown>(func: T): T extends (...args: infer Arguments) => infer Output ? Output extends Promise<infer R> ? (...args: Arguments) => Promise<IValidation<R>> : (...args: Arguments) => IValidation<Output> : never;
231
- declare const validateFunctionPure: typeof validateFunction;
232
- export { validateFunctionPure as validateFunction };
233
- /**
234
- * Validates parameters.
235
- *
236
- * Validates a function, by wrapping the function and checking its parameters through
237
- * {@link validate} function. If some parameter does not match the expected type, it
238
- * returns {@link IValidation.IError} typed object. Otherwise there's no type error,
239
- * it returns {@link IValidation.ISuccess} typed object instead.
240
- *
241
- * For reference, {@link IValidation.IError.path} would be a little bit different with
242
- * individual {@link validate} function. If the {@link IValidation.IError} occurs from
243
- * some parameter, the path would start from `$input.parameters[number]`.
244
- *
245
- * By the way, if what you want is not finding every type errors, but just finding
246
- * the 1st type error, then use {@link assertParameters} instead. Otherwise, what you
247
- * want is not only validating parameters, but also validating return value, you can
248
- * use {@link validateFunction} instead.
249
- *
250
- * On the other hand, if you don't want to allow any superfluous properties, utilize
251
- * {@link validateEqualsParameters} or {@link assertEqualsParameters} instead.
252
- *
253
- * @template T Target function type
254
- * @param func Target function to validate
255
- * @returns The wrapper function with type validations
256
- *
257
- * @author Jeongho Nam - https://github.com/samchon
258
- */
259
- declare function validateReturn<T extends (...args: unknown[]) => unknown>(func: T): T extends (...args: infer Arguments) => infer Output ? Output extends Promise<infer R> ? (...args: Arguments) => Promise<IValidation<R>> : (...args: Arguments) => IValidation<Output> : never;
260
- declare const validateReturnPure: typeof validateReturn;
261
- export { validateReturnPure as validateReturn };
262
- /**
263
- * Validates a function with strict equality.
264
- *
265
- * Validates a function with strict equality, by wrapping the function and checking
266
- * its parameters and return value through {@link validateEquals} function. If some
267
- * parameter or return value does not match the expected type, it returns
268
- * {@link IValidation.IError} typed object. Otherwise there's no type error, it
269
- * returns {@link IValidation.ISuccess} typed object instead.
270
- *
271
- * For reference, {@link IValidation.IError.path} would be a little bit different with
272
- * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
273
- * from some parameter, the path would start from `$input.parameters[number]`. Otherwise
274
- * the path would start from `$input.return`.
275
- *
276
- * - `$input.parameters[0].~`
277
- * - `$input.return.~`
278
- *
279
- * By the way, if what you want is not finding every type errors, but just finding
280
- * the 1st type error, then use {@link assertEqualsFunction} instead. Otherwise, what
281
- * you want is just validating parameters or return value only, you can use
282
- * {@link validateEqualsParameters} or {@link validateEqualsReturn} instead.
283
- *
284
- * On the other hand, if you want to allow any superfluous properties, utilize
285
- * {@link validateFunction} or {@link assertFunction} instead.
286
- *
287
- * @template T Target function type
288
- * @param func Target function to validate
289
- * @returns The wrapper function with type validations
290
- *
291
- * @author Jeongho Nam - https://github.com/samchon
292
- */
293
- declare function validateEqualsFunction<T extends (...args: unknown[]) => unknown>(func: T): T extends (...args: infer Arguments) => infer Output ? Output extends Promise<infer R> ? (...args: Arguments) => Promise<IValidation<R>> : (...args: Arguments) => IValidation<Output> : never;
294
- declare const validateEqualsFunctionPure: typeof validateEqualsFunction;
295
- export { validateEqualsFunctionPure as validateEqualsFunction };
296
- /**
297
- * Validates parameters with strict equality.
298
- *
299
- * Validates a function, by wrapping the function and checking its parameters through
300
- * {@link validateEquals} function. If some parameter does not match the expected type,
301
- * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
302
- * it returns {@link IValidation.ISuccess} typed object instead.
303
- *
304
- * For reference, {@link IValidation.IError.path} would be a little bit different with
305
- * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
306
- * from some parameter, the path would start from `$input.parameters[number]`.
307
- *
308
- * By the way, if what you want is not finding every type errors, but just finding
309
- * the 1st type error, then use {@link assertEqualsParameters} instead. Otherwise,
310
- * what you want is not only validating parameters, but also validating return value,
311
- * you can use {@link validateEqualsFunction} instead.
312
- *
313
- * On the other hand, if you want to allow any superfluous properties, utilize
314
- * {@link validateParameters} or {@link assertParameters} instead.
315
- *
316
- * @template T Target function type
317
- * @param func Target function to validate
318
- * @returns The wrapper function with type validations
319
- *
320
- * @author Jeongho Nam - https://github.com/samchon
321
- */
322
- declare function validateEqualsParameters<T extends (...args: unknown[]) => unknown>(func: T): T extends (...args: infer Arguments) => infer Output ? Output extends Promise<infer R> ? (...args: Arguments) => Promise<IValidation<R>> : (...args: Arguments) => IValidation<Output> : never;
323
- declare const validateEqualsParametersPure: typeof validateEqualsParameters;
324
- export { validateEqualsParametersPure as validateEqualsParameters };
325
- /**
326
- * Validates return value with strict equality.
327
- *
328
- * Validates a function, by wrapping the function and checking its return value through
329
- * {@link validateEquals} function. If the return value does not match the expected type,
330
- * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
331
- * it returns {@link IValidation.ISuccess} typed object instead.
332
- *
333
- * For reference, {@link IValidation.IError.path} would be a little bit different with
334
- * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
335
- * from the return value, the path would start from `$input.return`.
336
- *
337
- * By the way, if what you want is not finding every type errors, but just finding
338
- * the 1st type error, then use {@link assertEqualsReturn} instead. Otherwise, what you
339
- * want is not only validating return value, but also validating parameters, you can use
340
- * {@link validateEqualsFunction} instead.
341
- *
342
- * On the other hand, if you want to allow any superfluous properties, utilize
343
- * {@link validateReturn} or {@link assertReturn} instead.
344
- *
345
- * @template T Target function type
346
- * @param func Target function to validate
347
- * @returns The wrapper function with type validations
348
- *
349
- * @author Jeongho Nam - https://github.com/samchon
350
- */
351
- declare function validateEqualsReturn<T extends (...args: unknown[]) => unknown>(func: T): T extends (...args: infer Arguments) => infer Output ? Output extends Promise<infer R> ? (...args: Arguments) => Promise<IValidation<R>> : (...args: Arguments) => IValidation<Output> : never;
352
- declare const validateEqualsReturnPure: typeof validateEqualsReturn;
353
- export { validateEqualsReturnPure as validateEqualsReturn };
package/lib/functional.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.validateEqualsReturn = exports.validateEqualsParameters = exports.validateEqualsFunction = exports.validateReturn = exports.validateFunction = exports.assertEqualsReturn = exports.assertEqualsParameters = exports.assertEqualsFunction = exports.assertReturn = exports.assertParameters = exports.assertFunction = void 0;
26
+ exports.assertEqualsReturn = exports.assertEqualsParameters = exports.assertEqualsFunction = exports.assertReturn = exports.assertParameters = exports.assertFunction = void 0;
27
27
  var Namespace = __importStar(require("./functional/Namespace"));
28
28
  /**
29
29
  * @internal
@@ -32,7 +32,8 @@ function assertFunction() {
32
32
  halt("assertFunction");
33
33
  }
34
34
  var assertFunctionPure = /** @__PURE__ */ Object.assign(assertFunction,
35
- /** @__PURE__ */ Namespace.assert("functional.assertFunction"));
35
+ /** @__PURE__ */ Namespace.assert("functional.assertFunction"),
36
+ /** @__PURE__ */ Namespace.functional.functionalAssert());
36
37
  exports.assertFunction = assertFunctionPure;
37
38
  /**
38
39
  * @internal
@@ -40,8 +41,9 @@ exports.assertFunction = assertFunctionPure;
40
41
  function assertParameters() {
41
42
  halt("assertParameters");
42
43
  }
43
- var assertParametersPure = /** @__PURE__ */ Object.assign(assertParameters,
44
- /** @__PURE__ */ Namespace.assert("functional.assertParameters"));
44
+ var assertParametersPure = /** @__PURE__ */ Object.assign(assertFunction,
45
+ /** @__PURE__ */ Namespace.assert("functional.assertFunction"),
46
+ /** @__PURE__ */ Namespace.functional.functionalAssert());
45
47
  exports.assertParameters = assertParametersPure;
46
48
  /**
47
49
  * @internal
@@ -49,7 +51,9 @@ exports.assertParameters = assertParametersPure;
49
51
  function assertReturn() {
50
52
  halt("assertReturn");
51
53
  }
52
- var assertReturnPure = /** @__PURE__ */ Object.assign(assertReturn, /** @__PURE__ */ Namespace.assert("functional.assertReturn"));
54
+ var assertReturnPure = /** @__PURE__ */ Object.assign(assertReturn,
55
+ /** @__PURE__ */ Namespace.assert("functional.assertReturn"),
56
+ /** @__PURE__ */ Namespace.functional.functionalAssert());
53
57
  exports.assertReturn = assertReturnPure;
54
58
  /**
55
59
  * @internal
@@ -58,7 +62,8 @@ function assertEqualsFunction() {
58
62
  halt("assertEqualsFunction");
59
63
  }
60
64
  var assertEqualsFunctionPure = /** @__PURE__ */ Object.assign(assertEqualsFunction,
61
- /** @__PURE__ */ Namespace.assert("functional.assertEqualsFunction"));
65
+ /** @__PURE__ */ Namespace.assert("functional.assertEqualsFunction"),
66
+ /** @__PURE__ */ Namespace.functional.functionalAssert());
62
67
  exports.assertEqualsFunction = assertEqualsFunctionPure;
63
68
  /**
64
69
  * @internal
@@ -67,7 +72,8 @@ function assertEqualsParameters() {
67
72
  halt("assertEqualsParameters");
68
73
  }
69
74
  var assertEqualsParametersPure = /** @__PURE__ */ Object.assign(assertEqualsParameters,
70
- /** @__PURE__ */ Namespace.assert("functional.assertEqualsParameters"));
75
+ /** @__PURE__ */ Namespace.assert("functional.assertEqualsParameters"),
76
+ /** @__PURE__ */ Namespace.functional.functionalAssert());
71
77
  exports.assertEqualsParameters = assertEqualsParametersPure;
72
78
  /**
73
79
  * @internal
@@ -76,48 +82,242 @@ function assertEqualsReturn() {
76
82
  halt("assertEqualsReturn");
77
83
  }
78
84
  var assertEqualsReturnPure = /** @__PURE__ */ Object.assign(assertEqualsReturn,
79
- /** @__PURE__ */ Namespace.assert("functional.assertEqualsReturn"));
85
+ /** @__PURE__ */ Namespace.assert("functional.assertEqualsReturn"),
86
+ /** @__PURE__ */ Namespace.functional.functionalAssert());
80
87
  exports.assertEqualsReturn = assertEqualsReturnPure;
81
- /**
82
- * @internal
83
- */
84
- function validateFunction() {
85
- halt("validateFunction");
86
- }
87
- var validateFunctionPure = /** @__PURE__ */ Object.assign(validateFunction, /** @__PURE__ */ Namespace.validate());
88
- exports.validateFunction = validateFunctionPure;
89
- /**
90
- * @internal
91
- */
92
- function validateReturn() {
93
- halt("validateReturn");
94
- }
95
- var validateReturnPure = /** @__PURE__ */ Object.assign(validateReturn, /** @__PURE__ */ Namespace.validate());
96
- exports.validateReturn = validateReturnPure;
97
- /**
98
- * @internal
99
- */
100
- function validateEqualsFunction() {
101
- halt("validateEqualsFunction");
102
- }
103
- var validateEqualsFunctionPure = /** @__PURE__ */ Object.assign(validateEqualsFunction, /** @__PURE__ */ Namespace.validate());
104
- exports.validateEqualsFunction = validateEqualsFunctionPure;
105
- /**
106
- * @internal
107
- */
108
- function validateEqualsParameters() {
109
- halt("validateEqualsParameters");
110
- }
111
- var validateEqualsParametersPure = /** @__PURE__ */ Object.assign(validateEqualsParameters, /** @__PURE__ */ Namespace.validate());
112
- exports.validateEqualsParameters = validateEqualsParametersPure;
113
- /**
114
- * @internal
115
- */
116
- function validateEqualsReturn() {
117
- halt("validateEqualsReturn");
118
- }
119
- var validateEqualsReturnPure = /** @__PURE__ */ Object.assign(validateEqualsReturn, /** @__PURE__ */ Namespace.validate());
120
- exports.validateEqualsReturn = validateEqualsReturnPure;
88
+ // /* -----------------------------------------------------------
89
+ // VALIDATIONS
90
+ // ----------------------------------------------------------- */
91
+ // /**
92
+ // * Validates a function.
93
+ // *
94
+ // * Validates a function, by wrapping the function and checking its parameters and
95
+ // * return value through {@link validate} function. If some parameter or return value
96
+ // * does not match the expected type, it returns {@link IValidation.IError} typed
97
+ // * object. Otherwise there's no type error, it returns {@link IValidation.ISuccess}
98
+ // * typed object instead.
99
+ // *
100
+ // * For reference, {@link IValidation.IError.path} would be a little bit different with
101
+ // * individual {@link validate} function. If the {@link IValidation.IError} occurs from
102
+ // * some parameter, the path would start from `$input.parameters[number]`. Otherwise
103
+ // * the path would start from `$input.return`.
104
+ // *
105
+ // * - `$input.parameters[0].~`
106
+ // * - `$input.return.~`
107
+ // *
108
+ // * By the way, if what you want is not finding every type errors, but just finding
109
+ // * the 1st type error, then use {@link assertFunction} instead. Otherwise, what you
110
+ // * want is just validating parameters or return value only, you can use
111
+ // * {@link validateParameters} or {@link validateReturn} instead.
112
+ // *
113
+ // * On the other hand, if you don't want to allow any superfluous properties, utilize
114
+ // * {@link validateEqualsFunction} or {@link assertEqualsFunction} instead.
115
+ // *
116
+ // * @template T Target function type
117
+ // * @param func Target function to validate
118
+ // * @returns The wrapper function with type validations
119
+ // *
120
+ // * @author Jeongho Nam - https://github.com/samchon
121
+ // */
122
+ // function validateFunction<T extends (...args: any[]) => any>(
123
+ // func: T,
124
+ // ): T extends (...args: infer Arguments) => infer Output
125
+ // ? Output extends Promise<infer R>
126
+ // ? (...args: Arguments) => Promise<IValidation<R>>
127
+ // : (...args: Arguments) => IValidation<Output>
128
+ // : never;
129
+ // /**
130
+ // * @internal
131
+ // */
132
+ // function validateFunction(): never {
133
+ // halt("validateFunction");
134
+ // }
135
+ // const validateFunctionPure = /** @__PURE__ */ Object.assign<
136
+ // typeof validateFunction,
137
+ // {}
138
+ // >(validateFunction, /** @__PURE__ */ Namespace.validate());
139
+ // export { validateFunctionPure as validateFunction };
140
+ // /**
141
+ // * Validates parameters.
142
+ // *
143
+ // * Validates a function, by wrapping the function and checking its parameters through
144
+ // * {@link validate} function. If some parameter does not match the expected type, it
145
+ // * returns {@link IValidation.IError} typed object. Otherwise there's no type error,
146
+ // * it returns {@link IValidation.ISuccess} typed object instead.
147
+ // *
148
+ // * For reference, {@link IValidation.IError.path} would be a little bit different with
149
+ // * individual {@link validate} function. If the {@link IValidation.IError} occurs from
150
+ // * some parameter, the path would start from `$input.parameters[number]`.
151
+ // *
152
+ // * By the way, if what you want is not finding every type errors, but just finding
153
+ // * the 1st type error, then use {@link assertParameters} instead. Otherwise, what you
154
+ // * want is not only validating parameters, but also validating return value, you can
155
+ // * use {@link validateFunction} instead.
156
+ // *
157
+ // * On the other hand, if you don't want to allow any superfluous properties, utilize
158
+ // * {@link validateEqualsParameters} or {@link assertEqualsParameters} instead.
159
+ // *
160
+ // * @template T Target function type
161
+ // * @param func Target function to validate
162
+ // * @returns The wrapper function with type validations
163
+ // *
164
+ // * @author Jeongho Nam - https://github.com/samchon
165
+ // */
166
+ // function validateReturn<T extends (...args: any[]) => any>(
167
+ // func: T,
168
+ // ): T extends (...args: infer Arguments) => infer Output
169
+ // ? Output extends Promise<infer R>
170
+ // ? (...args: Arguments) => Promise<IValidation<R>>
171
+ // : (...args: Arguments) => IValidation<Output>
172
+ // : never;
173
+ // /**
174
+ // * @internal
175
+ // */
176
+ // function validateReturn(): never {
177
+ // halt("validateReturn");
178
+ // }
179
+ // const validateReturnPure = /** @__PURE__ */ Object.assign<
180
+ // typeof validateReturn,
181
+ // {}
182
+ // >(validateReturn, /** @__PURE__ */ Namespace.validate());
183
+ // export { validateReturnPure as validateReturn };
184
+ // /**
185
+ // * Validates a function with strict equality.
186
+ // *
187
+ // * Validates a function with strict equality, by wrapping the function and checking
188
+ // * its parameters and return value through {@link validateEquals} function. If some
189
+ // * parameter or return value does not match the expected type, it returns
190
+ // * {@link IValidation.IError} typed object. Otherwise there's no type error, it
191
+ // * returns {@link IValidation.ISuccess} typed object instead.
192
+ // *
193
+ // * For reference, {@link IValidation.IError.path} would be a little bit different with
194
+ // * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
195
+ // * from some parameter, the path would start from `$input.parameters[number]`. Otherwise
196
+ // * the path would start from `$input.return`.
197
+ // *
198
+ // * - `$input.parameters[0].~`
199
+ // * - `$input.return.~`
200
+ // *
201
+ // * By the way, if what you want is not finding every type errors, but just finding
202
+ // * the 1st type error, then use {@link assertEqualsFunction} instead. Otherwise, what
203
+ // * you want is just validating parameters or return value only, you can use
204
+ // * {@link validateEqualsParameters} or {@link validateEqualsReturn} instead.
205
+ // *
206
+ // * On the other hand, if you want to allow any superfluous properties, utilize
207
+ // * {@link validateFunction} or {@link assertFunction} instead.
208
+ // *
209
+ // * @template T Target function type
210
+ // * @param func Target function to validate
211
+ // * @returns The wrapper function with type validations
212
+ // *
213
+ // * @author Jeongho Nam - https://github.com/samchon
214
+ // */
215
+ // function validateEqualsFunction<T extends (...args: any[]) => any>(
216
+ // func: T,
217
+ // ): T extends (...args: infer Arguments) => infer Output
218
+ // ? Output extends Promise<infer R>
219
+ // ? (...args: Arguments) => Promise<IValidation<R>>
220
+ // : (...args: Arguments) => IValidation<Output>
221
+ // : never;
222
+ // /**
223
+ // * @internal
224
+ // */
225
+ // function validateEqualsFunction(): never {
226
+ // halt("validateEqualsFunction");
227
+ // }
228
+ // const validateEqualsFunctionPure = /** @__PURE__ */ Object.assign<
229
+ // typeof validateEqualsFunction,
230
+ // {}
231
+ // >(validateEqualsFunction, /** @__PURE__ */ Namespace.validate());
232
+ // export { validateEqualsFunctionPure as validateEqualsFunction };
233
+ // /**
234
+ // * Validates parameters with strict equality.
235
+ // *
236
+ // * Validates a function, by wrapping the function and checking its parameters through
237
+ // * {@link validateEquals} function. If some parameter does not match the expected type,
238
+ // * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
239
+ // * it returns {@link IValidation.ISuccess} typed object instead.
240
+ // *
241
+ // * For reference, {@link IValidation.IError.path} would be a little bit different with
242
+ // * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
243
+ // * from some parameter, the path would start from `$input.parameters[number]`.
244
+ // *
245
+ // * By the way, if what you want is not finding every type errors, but just finding
246
+ // * the 1st type error, then use {@link assertEqualsParameters} instead. Otherwise,
247
+ // * what you want is not only validating parameters, but also validating return value,
248
+ // * you can use {@link validateEqualsFunction} instead.
249
+ // *
250
+ // * On the other hand, if you want to allow any superfluous properties, utilize
251
+ // * {@link validateParameters} or {@link assertParameters} instead.
252
+ // *
253
+ // * @template T Target function type
254
+ // * @param func Target function to validate
255
+ // * @returns The wrapper function with type validations
256
+ // *
257
+ // * @author Jeongho Nam - https://github.com/samchon
258
+ // */
259
+ // function validateEqualsParameters<T extends (...args: any[]) => any>(
260
+ // func: T,
261
+ // ): T extends (...args: infer Arguments) => infer Output
262
+ // ? Output extends Promise<infer R>
263
+ // ? (...args: Arguments) => Promise<IValidation<R>>
264
+ // : (...args: Arguments) => IValidation<Output>
265
+ // : never;
266
+ // /**
267
+ // * @internal
268
+ // */
269
+ // function validateEqualsParameters(): never {
270
+ // halt("validateEqualsParameters");
271
+ // }
272
+ // const validateEqualsParametersPure = /** @__PURE__ */ Object.assign<
273
+ // typeof validateEqualsParameters,
274
+ // {}
275
+ // >(validateEqualsParameters, /** @__PURE__ */ Namespace.validate());
276
+ // export { validateEqualsParametersPure as validateEqualsParameters };
277
+ // /**
278
+ // * Validates return value with strict equality.
279
+ // *
280
+ // * Validates a function, by wrapping the function and checking its return value through
281
+ // * {@link validateEquals} function. If the return value does not match the expected type,
282
+ // * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
283
+ // * it returns {@link IValidation.ISuccess} typed object instead.
284
+ // *
285
+ // * For reference, {@link IValidation.IError.path} would be a little bit different with
286
+ // * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
287
+ // * from the return value, the path would start from `$input.return`.
288
+ // *
289
+ // * By the way, if what you want is not finding every type errors, but just finding
290
+ // * the 1st type error, then use {@link assertEqualsReturn} instead. Otherwise, what you
291
+ // * want is not only validating return value, but also validating parameters, you can use
292
+ // * {@link validateEqualsFunction} instead.
293
+ // *
294
+ // * On the other hand, if you want to allow any superfluous properties, utilize
295
+ // * {@link validateReturn} or {@link assertReturn} instead.
296
+ // *
297
+ // * @template T Target function type
298
+ // * @param func Target function to validate
299
+ // * @returns The wrapper function with type validations
300
+ // *
301
+ // * @author Jeongho Nam - https://github.com/samchon
302
+ // */
303
+ // function validateEqualsReturn<T extends (...args: any[]) => any>(
304
+ // func: T,
305
+ // ): T extends (...args: infer Arguments) => infer Output
306
+ // ? Output extends Promise<infer R>
307
+ // ? (...args: Arguments) => Promise<IValidation<R>>
308
+ // : (...args: Arguments) => IValidation<Output>
309
+ // : never;
310
+ // /**
311
+ // * @internal
312
+ // */
313
+ // function validateEqualsReturn(): never {
314
+ // halt("validateEqualsReturn");
315
+ // }
316
+ // const validateEqualsReturnPure = /** @__PURE__ */ Object.assign<
317
+ // typeof validateEqualsReturn,
318
+ // {}
319
+ // >(validateEqualsReturn, /** @__PURE__ */ Namespace.validate());
320
+ // export { validateEqualsReturnPure as validateEqualsReturn };
121
321
  /* -----------------------------------------------------------
122
322
  HALTER
123
323
  ----------------------------------------------------------- */
@@ -1 +1 @@
1
- {"version":3,"file":"functional.js","sourceRoot":"","sources":["../src/functional.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functional.js","sourceRoot":"","sources":["../src/functional.ts"],"names":[],"mappings":"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"}