@nejs/basic-extensions 2.21.5 → 2.22.6

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 (266) hide show
  1. package/README.md +78 -4
  2. package/dist/@nejs/basic-extensions.bundle.2.22.6.js +25 -0
  3. package/dist/@nejs/basic-extensions.bundle.2.22.6.js.map +7 -0
  4. package/dist/cjs/classes/index.cjs +11129 -0
  5. package/dist/cjs/classes/index.cjs.map +7 -0
  6. package/dist/cjs/index.cjs +15191 -0
  7. package/dist/cjs/index.cjs.map +7 -0
  8. package/dist/cjs/utils/index.cjs +3954 -0
  9. package/dist/cjs/utils/index.cjs.map +7 -0
  10. package/dist/esm/basic-extensions.mjs +25 -0
  11. package/dist/esm/basic-extensions.mjs.map +7 -0
  12. package/package.json +16 -22
  13. package/repl.bootstrap.js +4 -7
  14. package/repl.history +26 -26
  15. package/src/classes/enumeration.js +466 -0
  16. package/src/classes/index.js +5 -1
  17. package/src/index.js +3 -1
  18. package/src/regular.expression.extensions.js +0 -35
  19. package/src/utils/toolkit.js +699 -516
  20. package/tests/arrayextensions.test.js +3 -3
  21. package/tests/index.test.js +3 -1
  22. package/tests/newClasses/asyncIterable.test.js +3 -3
  23. package/tests/newClasses/deferred.test.js +3 -3
  24. package/tests/newClasses/descriptor.test.js +3 -3
  25. package/tests/newClasses/iterable.test.js +3 -3
  26. package/tests/newClasses/refmap.test.js +3 -3
  27. package/tests/newClasses/refset.test.js +3 -3
  28. package/tests/objectextensions.test.js +3 -3
  29. package/tests/setextensions.test.js +3 -3
  30. package/tests/stringextensions.test.js +3 -2
  31. package/tests/utils/descriptor.utils.test.js +1 -1
  32. package/tests/utils/toolkit.test.js +429 -163
  33. package/.esdoc.json +0 -9
  34. package/.vscode/settings.json +0 -5
  35. package/bin/build +0 -27
  36. package/bin/clean +0 -14
  37. package/bin/esbuild +0 -91
  38. package/bin/fixup +0 -13
  39. package/bin/repl.basics.js +0 -584
  40. package/bin/repl.signature.js +0 -63
  41. package/bin/version +0 -100
  42. package/dist/@nejs/basic-extensions.bundle.2.21.5.js +0 -25
  43. package/dist/@nejs/basic-extensions.bundle.2.21.5.js.map +0 -7
  44. package/dist/cjs/array.extensions.d.ts +0 -39
  45. package/dist/cjs/array.extensions.js +0 -477
  46. package/dist/cjs/array.extensions.js.map +0 -1
  47. package/dist/cjs/big.int.extension.d.ts +0 -31
  48. package/dist/cjs/big.int.extension.js +0 -273
  49. package/dist/cjs/big.int.extension.js.map +0 -1
  50. package/dist/cjs/classes/asyncIterable.d.ts +0 -126
  51. package/dist/cjs/classes/asyncIterable.js +0 -209
  52. package/dist/cjs/classes/asyncIterable.js.map +0 -1
  53. package/dist/cjs/classes/deferred.d.ts +0 -146
  54. package/dist/cjs/classes/deferred.js +0 -291
  55. package/dist/cjs/classes/deferred.js.map +0 -1
  56. package/dist/cjs/classes/descriptor.d.ts +0 -334
  57. package/dist/cjs/classes/descriptor.js +0 -537
  58. package/dist/cjs/classes/descriptor.js.map +0 -1
  59. package/dist/cjs/classes/enum.d.ts +0 -50
  60. package/dist/cjs/classes/enum.js +0 -405
  61. package/dist/cjs/classes/enum.js.map +0 -1
  62. package/dist/cjs/classes/index.d.ts +0 -15
  63. package/dist/cjs/classes/index.js +0 -63
  64. package/dist/cjs/classes/index.js.map +0 -1
  65. package/dist/cjs/classes/introspector.d.ts +0 -20
  66. package/dist/cjs/classes/introspector.js +0 -130
  67. package/dist/cjs/classes/introspector.js.map +0 -1
  68. package/dist/cjs/classes/iterable.d.ts +0 -169
  69. package/dist/cjs/classes/iterable.js +0 -268
  70. package/dist/cjs/classes/iterable.js.map +0 -1
  71. package/dist/cjs/classes/param.parser.d.ts +0 -221
  72. package/dist/cjs/classes/param.parser.js +0 -242
  73. package/dist/cjs/classes/param.parser.js.map +0 -1
  74. package/dist/cjs/classes/pluggable.proxy.d.ts +0 -153
  75. package/dist/cjs/classes/pluggable.proxy.js +0 -444
  76. package/dist/cjs/classes/pluggable.proxy.js.map +0 -1
  77. package/dist/cjs/classes/property.d.ts +0 -79
  78. package/dist/cjs/classes/property.js +0 -284
  79. package/dist/cjs/classes/property.js.map +0 -1
  80. package/dist/cjs/classes/refmap.d.ts +0 -238
  81. package/dist/cjs/classes/refmap.js +0 -421
  82. package/dist/cjs/classes/refmap.js.map +0 -1
  83. package/dist/cjs/classes/refset.d.ts +0 -186
  84. package/dist/cjs/classes/refset.js +0 -370
  85. package/dist/cjs/classes/refset.js.map +0 -1
  86. package/dist/cjs/classes/symkeys.d.ts +0 -349
  87. package/dist/cjs/classes/symkeys.js +0 -510
  88. package/dist/cjs/classes/symkeys.js.map +0 -1
  89. package/dist/cjs/classes/type.d.ts +0 -56
  90. package/dist/cjs/classes/type.js +0 -405
  91. package/dist/cjs/classes/type.js.map +0 -1
  92. package/dist/cjs/function.extensions.d.ts +0 -12
  93. package/dist/cjs/function.extensions.js +0 -758
  94. package/dist/cjs/function.extensions.js.map +0 -1
  95. package/dist/cjs/global.this.d.ts +0 -2
  96. package/dist/cjs/global.this.js +0 -300
  97. package/dist/cjs/global.this.js.map +0 -1
  98. package/dist/cjs/index.d.ts +0 -31
  99. package/dist/cjs/index.js +0 -228
  100. package/dist/cjs/index.js.map +0 -1
  101. package/dist/cjs/json.extensions.d.ts +0 -2
  102. package/dist/cjs/json.extensions.js +0 -109
  103. package/dist/cjs/json.extensions.js.map +0 -1
  104. package/dist/cjs/map.extensions.d.ts +0 -3
  105. package/dist/cjs/map.extensions.js +0 -143
  106. package/dist/cjs/map.extensions.js.map +0 -1
  107. package/dist/cjs/math.extension.d.ts +0 -14
  108. package/dist/cjs/math.extension.js +0 -71
  109. package/dist/cjs/math.extension.js.map +0 -1
  110. package/dist/cjs/number.extension.d.ts +0 -44
  111. package/dist/cjs/number.extension.js +0 -278
  112. package/dist/cjs/number.extension.js.map +0 -1
  113. package/dist/cjs/object.extensions.d.ts +0 -33
  114. package/dist/cjs/object.extensions.js +0 -1091
  115. package/dist/cjs/object.extensions.js.map +0 -1
  116. package/dist/cjs/package.json +0 -3
  117. package/dist/cjs/proxy.extensions.d.ts +0 -2
  118. package/dist/cjs/proxy.extensions.js +0 -207
  119. package/dist/cjs/proxy.extensions.js.map +0 -1
  120. package/dist/cjs/reflect.extensions.d.ts +0 -14
  121. package/dist/cjs/reflect.extensions.js +0 -316
  122. package/dist/cjs/reflect.extensions.js.map +0 -1
  123. package/dist/cjs/regular.expression.extensions.d.ts +0 -2
  124. package/dist/cjs/regular.expression.extensions.js +0 -423
  125. package/dist/cjs/regular.expression.extensions.js.map +0 -1
  126. package/dist/cjs/set.extensions.d.ts +0 -40
  127. package/dist/cjs/set.extensions.js +0 -355
  128. package/dist/cjs/set.extensions.js.map +0 -1
  129. package/dist/cjs/string.extensions.d.ts +0 -23
  130. package/dist/cjs/string.extensions.js +0 -704
  131. package/dist/cjs/string.extensions.js.map +0 -1
  132. package/dist/cjs/symbol.extensions.d.ts +0 -11
  133. package/dist/cjs/symbol.extensions.js +0 -735
  134. package/dist/cjs/symbol.extensions.js.map +0 -1
  135. package/dist/cjs/utils/copy.object.d.ts +0 -408
  136. package/dist/cjs/utils/copy.object.js +0 -720
  137. package/dist/cjs/utils/copy.object.js.map +0 -1
  138. package/dist/cjs/utils/descriptor.utils.d.ts +0 -298
  139. package/dist/cjs/utils/descriptor.utils.js +0 -889
  140. package/dist/cjs/utils/descriptor.utils.js.map +0 -1
  141. package/dist/cjs/utils/index.d.ts +0 -75
  142. package/dist/cjs/utils/index.js +0 -61
  143. package/dist/cjs/utils/index.js.map +0 -1
  144. package/dist/cjs/utils/stdout.d.ts +0 -742
  145. package/dist/cjs/utils/stdout.js +0 -1042
  146. package/dist/cjs/utils/stdout.js.map +0 -1
  147. package/dist/cjs/utils/toolkit.d.ts +0 -1898
  148. package/dist/cjs/utils/toolkit.js +0 -1378
  149. package/dist/cjs/utils/toolkit.js.map +0 -1
  150. package/dist/cjs/weakref.extensions.d.ts +0 -2
  151. package/dist/cjs/weakref.extensions.js +0 -19
  152. package/dist/cjs/weakref.extensions.js.map +0 -1
  153. package/dist/mjs/array.extensions.d.ts +0 -39
  154. package/dist/mjs/array.extensions.js +0 -474
  155. package/dist/mjs/array.extensions.js.map +0 -1
  156. package/dist/mjs/big.int.extension.d.ts +0 -31
  157. package/dist/mjs/big.int.extension.js +0 -270
  158. package/dist/mjs/big.int.extension.js.map +0 -1
  159. package/dist/mjs/classes/asyncIterable.d.ts +0 -126
  160. package/dist/mjs/classes/asyncIterable.js +0 -204
  161. package/dist/mjs/classes/asyncIterable.js.map +0 -1
  162. package/dist/mjs/classes/deferred.d.ts +0 -146
  163. package/dist/mjs/classes/deferred.js +0 -287
  164. package/dist/mjs/classes/deferred.js.map +0 -1
  165. package/dist/mjs/classes/descriptor.d.ts +0 -334
  166. package/dist/mjs/classes/descriptor.js +0 -533
  167. package/dist/mjs/classes/descriptor.js.map +0 -1
  168. package/dist/mjs/classes/enum.d.ts +0 -50
  169. package/dist/mjs/classes/enum.js +0 -400
  170. package/dist/mjs/classes/enum.js.map +0 -1
  171. package/dist/mjs/classes/index.d.ts +0 -15
  172. package/dist/mjs/classes/index.js +0 -46
  173. package/dist/mjs/classes/index.js.map +0 -1
  174. package/dist/mjs/classes/introspector.d.ts +0 -20
  175. package/dist/mjs/classes/introspector.js +0 -126
  176. package/dist/mjs/classes/introspector.js.map +0 -1
  177. package/dist/mjs/classes/iterable.d.ts +0 -169
  178. package/dist/mjs/classes/iterable.js +0 -263
  179. package/dist/mjs/classes/iterable.js.map +0 -1
  180. package/dist/mjs/classes/param.parser.d.ts +0 -221
  181. package/dist/mjs/classes/param.parser.js +0 -238
  182. package/dist/mjs/classes/param.parser.js.map +0 -1
  183. package/dist/mjs/classes/pluggable.proxy.d.ts +0 -153
  184. package/dist/mjs/classes/pluggable.proxy.js +0 -438
  185. package/dist/mjs/classes/pluggable.proxy.js.map +0 -1
  186. package/dist/mjs/classes/property.d.ts +0 -79
  187. package/dist/mjs/classes/property.js +0 -280
  188. package/dist/mjs/classes/property.js.map +0 -1
  189. package/dist/mjs/classes/refmap.d.ts +0 -238
  190. package/dist/mjs/classes/refmap.js +0 -417
  191. package/dist/mjs/classes/refmap.js.map +0 -1
  192. package/dist/mjs/classes/refset.d.ts +0 -186
  193. package/dist/mjs/classes/refset.js +0 -366
  194. package/dist/mjs/classes/refset.js.map +0 -1
  195. package/dist/mjs/classes/symkeys.d.ts +0 -349
  196. package/dist/mjs/classes/symkeys.js +0 -506
  197. package/dist/mjs/classes/symkeys.js.map +0 -1
  198. package/dist/mjs/classes/type.d.ts +0 -56
  199. package/dist/mjs/classes/type.js +0 -401
  200. package/dist/mjs/classes/type.js.map +0 -1
  201. package/dist/mjs/function.extensions.d.ts +0 -12
  202. package/dist/mjs/function.extensions.js +0 -755
  203. package/dist/mjs/function.extensions.js.map +0 -1
  204. package/dist/mjs/global.this.d.ts +0 -2
  205. package/dist/mjs/global.this.js +0 -264
  206. package/dist/mjs/global.this.js.map +0 -1
  207. package/dist/mjs/index.d.ts +0 -31
  208. package/dist/mjs/index.js +0 -206
  209. package/dist/mjs/index.js.map +0 -1
  210. package/dist/mjs/json.extensions.d.ts +0 -2
  211. package/dist/mjs/json.extensions.js +0 -106
  212. package/dist/mjs/json.extensions.js.map +0 -1
  213. package/dist/mjs/map.extensions.d.ts +0 -3
  214. package/dist/mjs/map.extensions.js +0 -140
  215. package/dist/mjs/map.extensions.js.map +0 -1
  216. package/dist/mjs/math.extension.d.ts +0 -14
  217. package/dist/mjs/math.extension.js +0 -68
  218. package/dist/mjs/math.extension.js.map +0 -1
  219. package/dist/mjs/number.extension.d.ts +0 -44
  220. package/dist/mjs/number.extension.js +0 -275
  221. package/dist/mjs/number.extension.js.map +0 -1
  222. package/dist/mjs/object.extensions.d.ts +0 -33
  223. package/dist/mjs/object.extensions.js +0 -1088
  224. package/dist/mjs/object.extensions.js.map +0 -1
  225. package/dist/mjs/package.json +0 -3
  226. package/dist/mjs/proxy.extensions.d.ts +0 -2
  227. package/dist/mjs/proxy.extensions.js +0 -204
  228. package/dist/mjs/proxy.extensions.js.map +0 -1
  229. package/dist/mjs/reflect.extensions.d.ts +0 -14
  230. package/dist/mjs/reflect.extensions.js +0 -313
  231. package/dist/mjs/reflect.extensions.js.map +0 -1
  232. package/dist/mjs/regular.expression.extensions.d.ts +0 -2
  233. package/dist/mjs/regular.expression.extensions.js +0 -420
  234. package/dist/mjs/regular.expression.extensions.js.map +0 -1
  235. package/dist/mjs/set.extensions.d.ts +0 -40
  236. package/dist/mjs/set.extensions.js +0 -352
  237. package/dist/mjs/set.extensions.js.map +0 -1
  238. package/dist/mjs/string.extensions.d.ts +0 -23
  239. package/dist/mjs/string.extensions.js +0 -701
  240. package/dist/mjs/string.extensions.js.map +0 -1
  241. package/dist/mjs/symbol.extensions.d.ts +0 -11
  242. package/dist/mjs/symbol.extensions.js +0 -732
  243. package/dist/mjs/symbol.extensions.js.map +0 -1
  244. package/dist/mjs/utils/copy.object.d.ts +0 -408
  245. package/dist/mjs/utils/copy.object.js +0 -702
  246. package/dist/mjs/utils/copy.object.js.map +0 -1
  247. package/dist/mjs/utils/descriptor.utils.d.ts +0 -298
  248. package/dist/mjs/utils/descriptor.utils.js +0 -875
  249. package/dist/mjs/utils/descriptor.utils.js.map +0 -1
  250. package/dist/mjs/utils/index.d.ts +0 -75
  251. package/dist/mjs/utils/index.js +0 -45
  252. package/dist/mjs/utils/index.js.map +0 -1
  253. package/dist/mjs/utils/stdout.d.ts +0 -742
  254. package/dist/mjs/utils/stdout.js +0 -1037
  255. package/dist/mjs/utils/stdout.js.map +0 -1
  256. package/dist/mjs/utils/toolkit.d.ts +0 -1898
  257. package/dist/mjs/utils/toolkit.js +0 -1373
  258. package/dist/mjs/utils/toolkit.js.map +0 -1
  259. package/dist/mjs/weakref.extensions.d.ts +0 -2
  260. package/dist/mjs/weakref.extensions.js +0 -16
  261. package/dist/mjs/weakref.extensions.js.map +0 -1
  262. package/jsdoc-config.json +0 -31
  263. package/tsconfig.base.json +0 -28
  264. package/tsconfig.cjs.json +0 -8
  265. package/tsconfig.esm.json +0 -8
  266. package/vitest.config.js +0 -7
@@ -1,242 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParamParserExtensions = exports.ParamParser = void 0;
4
- const extension_1 = require("@nejs/extension");
5
- class ParamParser {
6
- /**
7
- * Constructs an instance of ParamParser. It takes in parameters, an optional
8
- * validator function, and an optional parser function. The parameters are
9
- * validated and if successful, parsed.
10
- *
11
- * @param {any[]} parameters - Arguments passed in by the process.
12
- * @param {((any[]) => boolean)?} [validator=() => {}] - An optional function
13
- * to specify a validator without subclassing ParamParser. It should return
14
- * a boolean indicating the validity of the parameters.
15
- * @param {((any[]) => object)?} [parser=() => {}] - An optional function to
16
- * specify a parser without subclassing ParamParser. It should return an
17
- * object after parsing the input parameters.
18
- *
19
- * @example
20
- * const parameters = ['param1', 'param2']
21
- * const validator = params => params.every(param => typeof param === 'string')
22
- * const parser = params => ({ params })
23
- * const paramParser = new ParamParser(parameters, validator, parser)
24
- * if (paramParser.success) {
25
- * console.log('Parsing successful:', paramParser.results)
26
- * } else {
27
- * console.error('Parsing failed.')
28
- * }
29
- */
30
- constructor(parameters, validator = () => { }, parser = () => { }) {
31
- this.args = parameters;
32
- this.parser = parser;
33
- this.validator = validator;
34
- this.result = undefined;
35
- this.success = this.validate(this.args);
36
- if (this.success) {
37
- this.results = this.parse(this.args);
38
- }
39
- }
40
- /**
41
- * @param {object} args arguments that were previously validated
42
- * by either the overloaded validate() method or the supplied
43
- * validator closure.
44
- * @returns {object} returns the output object, or an empty
45
- * object, after parsing the input arguments or parameters.
46
- */
47
- parse(args) {
48
- return this.parser?.(args);
49
- }
50
- /**
51
- * Walk the arguments and determine if the supplied input is
52
- * a valid parsing.
53
- *
54
- * @param {any[]} args arguments supplied by the process.
55
- * @returns {boolean} `true` if the validation is successful,
56
- * `false` otherwise.
57
- */
58
- validate(args) {
59
- return this.validator?.(args);
60
- }
61
- /**
62
- * Attempts to parse the given parameters using the provided parsers, throwing an
63
- * error if no valid parser is found. This method serves as a convenience wrapper
64
- * around `safeTryParsers`, enforcing strict parsing by automatically enabling
65
- * error throwing on failure.
66
- *
67
- * @param {any[]} parameters - The parameters to be parsed.
68
- * @param {Function[]} parsers - An array of `ParamParser` subclasses to attempt
69
- * parsing with.
70
- * @returns {Object} An object containing the parsing result, with a `success`
71
- * property indicating if parsing was successful, and a `data` property containing
72
- * the parsed data if successful.
73
- * @example
74
- * const parameters = ['param1', 'param2'];
75
- * const parsers = [Parser1, Parser2];
76
- * const result = ParamParser.tryParsers(parameters, parsers);
77
- * if (result.success) {
78
- * console.log('Parsing successful:', result.data);
79
- * } else {
80
- * console.error('Parsing failed.');
81
- * }
82
- */
83
- static tryParsers(parameters, parsers) {
84
- return this.safeTryParsers(parameters, parsers, true);
85
- }
86
- /**
87
- * Tries parsing `parameters` with each parser in `parsers`. If
88
- * `throwOnFail` is true, throws an error when validation fails or
89
- * no valid parser is found.
90
- *
91
- * This method attempts to parse the given parameters using the
92
- * provided list of parsers. It validates the input to ensure both
93
- * `parameters` and `parsers` are arrays and that `parsers`
94
- * contains at least one valid `ParamParser` subclass. If
95
- * `throwOnFail` is set to true, it will throw specific errors for
96
- * invalid inputs or when no parser succeeds. Otherwise, it returns
97
- * an object indicating the success status and the result of
98
- * parsing, if successful.
99
- *
100
- * @param {any[]} parameters - The parameters to be parsed.
101
- * @param {Function[]} parsers - An array of `ParamParser`
102
- * subclasses to attempt parsing with.
103
- * @param {boolean} [throwOnFail=false] - Whether to throw an
104
- * error on failure.
105
- * @returns {{success: boolean, data: any}} An object with a
106
- * `success` flag and `data` containing the parsing result, if
107
- * successful.
108
- * @throws {ParametersMustBeArrayError} If `parameters` or
109
- * `parsers` are not arrays when `throwOnFail` is true.
110
- * @throws {ParsersArrayMustContainParsersError} If `parsers`
111
- * does not contain at least one valid `ParamParser` subclass
112
- * when `throwOnFail` is true.
113
- * @throws {NoValidParsersFound} If no valid parser is found
114
- * and `throwOnFail` is true.
115
- * @example
116
- * const parameters = ['param1', 'param2'];
117
- * const parsers = [Parser1, Parser2];
118
- * const result = ParamParser.safeTryParsers(
119
- * parameters, parsers, true
120
- * );
121
- *
122
- * if (result.success) {
123
- * console.log('Parsing successful:', result.data);
124
- * } else {
125
- * console.error('Parsing failed.');
126
- * }
127
- */
128
- static safeTryParsers(parameters, parsers, throwOnFail = false) {
129
- if (!Array.isArray(parameters) || !Array.isArray(parsers)) {
130
- if (throwOnFail) {
131
- throw new this.ParametersMustBeArrayError(`${this.name}.tryParsers must receive two arrays as args`);
132
- }
133
- }
134
- if (!parsers.some(parser => parser?.prototype instanceof ParamParser &&
135
- typeof parser === 'function')) {
136
- if (throwOnFail) {
137
- throw new this.ParsersArrayMustContainParsersError(`${this.name}.tryParsers parsers argument must contain at least one ` +
138
- `ParamParser derived class`);
139
- }
140
- }
141
- let success = false;
142
- let result = undefined;
143
- for (let Parser of parsers) {
144
- const parser = new Parser(parameters);
145
- if (parser.success) {
146
- success = true;
147
- result = parser.result;
148
- break;
149
- }
150
- }
151
- if (!success && throwOnFail) {
152
- throw new this.NoValidParsersFound('No valid parsers found');
153
- }
154
- return { success, data: result };
155
- }
156
- /**
157
- * A custom error class that signifies no valid parsers were found
158
- * during the parsing process. This error is thrown when all
159
- * parsers fail to parse the given parameters and the `throwOnFail`
160
- * flag is set to true in the `safeTryParsers` method.
161
- *
162
- * @returns {Function} A class extending Error, representing a
163
- * specific error when no valid parsers are found.ound.
164
- *
165
- * @example
166
- * try {
167
- * const result = ParamParser.safeTryParsers(
168
- * parameters, parsers, true
169
- * );
170
- * } catch (error) {
171
- * if (error instanceof ParamParser.NoValidParsersFound) {
172
- * console.error(
173
- * 'No valid parsers could process the parameters.'
174
- * );
175
- * }
176
- * }
177
- */
178
- static get NoValidParsersFound() {
179
- return class NoValidParsersFound extends Error {
180
- };
181
- }
182
- /**
183
- * Represents an error thrown when the parameters provided to a method
184
- * are not in an array format as expected. This class extends the
185
- * native JavaScript `Error` class, allowing for instances of this
186
- * error to be thrown and caught using standard error handling
187
- * mechanisms in JavaScript.
188
- *
189
- * This error is specifically used in scenarios where a method
190
- * expects its arguments to be provided as an array, and the
191
- * validation of those arguments fails because they were not
192
- * provided in an array format. It serves as a clear indicator
193
- * of the nature of the error to developers, enabling them to
194
- * quickly identify and rectify the issue in their code.
195
- *
196
- * @example
197
- * try {
198
- * ParamParser.safeTryParsers(nonArrayParameters, parsers, true);
199
- * } catch (error) {
200
- * if (error instanceof ParamParser.ParametersMustBeArrayError) {
201
- * console.error('Parameters must be provided as an array.');
202
- * }
203
- * }
204
- */
205
- static get ParametersMustBeArrayError() {
206
- return class ParametersMustBeArrayError extends Error {
207
- };
208
- }
209
- /**
210
- * A custom error class indicating that the parsers array does not
211
- * contain valid parser functions. This error is thrown when the
212
- * validation of parsers within `ParamParser.safeTryParsers` fails
213
- * to find any instance that is a subclass of `ParamParser`. It
214
- * extends the native JavaScript `Error` class, allowing it to be
215
- * thrown and caught using standard error handling mechanisms.
216
- *
217
- * This error serves as a clear indicator to developers that the
218
- * provided array of parsers does not meet the expected criteria,
219
- * specifically that it must contain at least one valid parser
220
- * that extends `ParamParser`. This ensures that the parsing
221
- * process can be executed with at least one valid parser function.
222
- *
223
- * @example
224
- * try {
225
- * ParamParser.safeTryParsers(parameters, [], true);
226
- * } catch (error) {
227
- * const { ParsersArrayMustContainParsersError } = ParamParser
228
- * if (error instanceof ParsersArrayMustContainParsersError) {
229
- * console.error(
230
- * 'The parsers array must contain at least one valid parser.'
231
- * );
232
- * }
233
- * }
234
- */
235
- static get ParsersArrayMustContainParsersError() {
236
- return class ParsersArrayMustContainParsersError extends Error {
237
- };
238
- }
239
- }
240
- exports.ParamParser = ParamParser;
241
- exports.ParamParserExtensions = new extension_1.Extension(ParamParser);
242
- //# sourceMappingURL=param.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"param.parser.js","sourceRoot":"","sources":["../../../src/classes/param.parser.js"],"names":[],"mappings":"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"}
@@ -1,153 +0,0 @@
1
- export class ProxyHandlerResponse {
2
- [x: symbol]: string;
3
- constructor(success?: boolean, value?: undefined, context?: undefined);
4
- }
5
- export class ProxyHandler {
6
- /**
7
- * This static method is used to create a response object. The response
8
- * object contains the success status, the value, and the context of the
9
- * response. It also includes a getter for the Symbol.toStringTag property
10
- * that returns the ResponseType of the ProxyHandler.
11
- *
12
- * @param {boolean} success - The success status of the response.
13
- * @param {*} value - The value of the response.
14
- * @param {Object} context - The context of the response.
15
- * @returns {Object} The response object.
16
- *
17
- * @example
18
- * // Create a response object
19
- * const response = ProxyHandler.response(
20
- * true, 'value', { key: 'context' }
21
- * );
22
- *
23
- * // Output: { success: true, value: 'value', context: { key: 'context' },
24
- * // [Symbol.toStringTag]: 'ProxyHandlerResponse' }
25
- * console.log(response);
26
- */
27
- static response(success: boolean, value: any, context: Object): Object;
28
- /**
29
- * This static getter method is used to retrieve the response type
30
- * of the ProxyHandler. It returns a string that represents the
31
- * response type of the ProxyHandler.
32
- *
33
- * @property {function} ResponseType - A static getter method that
34
- * returns the response type of the ProxyHandler.
35
- * @returns {string} A string representing the response type of the
36
- * ProxyHandler.
37
- *
38
- * @example
39
- * // Get the response type of the ProxyHandler
40
- * const responseType = ProxyHandler.ResponseType;
41
- *
42
- * // Output: 'ProxyHandlerResponse'
43
- * console.log(responseType);
44
- */
45
- static get ResponseType(): string;
46
- /**
47
- * This static method is used to retrieve the name of a ProxyHandler type
48
- * from a given array of arguments. If the array of arguments matches any
49
- * of the ProxyHandler types, the name of that type is returned. If no
50
- * match is found, or if the input is not an array, 'custom' is returned.
51
- *
52
- * @param {Array.<*>} proxyHandlerType - An array of arguments to match
53
- * against the ProxyHandler types.
54
- * @returns {string} The name of the matching ProxyHandler type, or 'custom'
55
- * if no match is found.
56
- *
57
- * @example
58
- * // Get the name of a type from its arguments
59
- * const typeName = ProxyHandler.nameFromType(
60
- * ['target', 'thisArg', 'argumentsList']
61
- * );
62
- *
63
- * // Output: 'apply'
64
- * console.log(typeName);
65
- *
66
- * @throws {TypeError} If ProxyHandler.type is undefined.
67
- */
68
- static nameFromType(proxyHandlerType: Array<any>): string;
69
- /**
70
- * This method is used to retrieve all the types of ProxyHandler available
71
- * in the ProxyHandler.type object. It is useful when you need to iterate
72
- * over all the types or when you need to check if a certain type exists.
73
- *
74
- * @property {function} typeNames - A static getter method that returns an
75
- * array of keys from the ProxyHandler.type object.
76
- * @returns {Array.<string>} An array of strings representing the keys of
77
- * the ProxyHandler.type object.
78
- *
79
- * @example
80
- * // Get all type names
81
- * const types = ProxyHandler.typeNames;
82
- *
83
- * // Output: ['apply', 'construct', 'defineProperty', ...]
84
- * console.log(types);
85
- *
86
- * @throws {TypeError} If ProxyHandler.type is undefined.
87
- */
88
- static get typeNames(): Array<string>;
89
- /**
90
- * A static getter method that returns an object containing keyed proxy
91
- * trap types and their associated expected arguments list by name. A
92
- * docstring description complete with url shortening links for each entry
93
- * are provided (links go to the MDN documentation)
94
- *
95
- * @property {function} type - A static getter method that returns an object
96
- * of ProxyHandler types.
97
- * @returns {Object.<string, function>} An object where each key is a type
98
- * name and each value is a function that returns an array of strings
99
- * representing the arguments for that type.
100
- *
101
- * @example
102
- * // Get the 'apply' type
103
- * const applyType = ProxyHandler.type.apply;
104
- *
105
- * // Output: ['target', 'thisArg', 'argumentsList']
106
- * console.log(applyType());
107
- *
108
- * @throws {TypeError} If ProxyHandler.type is undefined.
109
- */
110
- static get type(): {
111
- [x: string]: Function;
112
- };
113
- constructor(handler: any, type?: Function);
114
- handler: any;
115
- typeName: string;
116
- type: any;
117
- invoke(...args: any[]): any;
118
- }
119
- export class PluggableProxy {
120
- static get kCreated(): symbol;
121
- static get kOriginal(): symbol;
122
- static get kProxy(): symbol;
123
- constructor(Class: any, handlers: any, options?: {
124
- prototype: undefined;
125
- apply: boolean;
126
- });
127
- handlers: Map<any, any>;
128
- handlersOfType(typeName: any): any;
129
- tryEachOfType(type: any, ...args: any[]): any[];
130
- apply(target: any, thisArg: any, argumentsList: any): any;
131
- construct(target: any, args: any): any;
132
- defineProperty(target: any, key: any, descriptor: any): any;
133
- deleteProperty(target: any, property: any): any;
134
- get(target: any, property: any, receiver: any): any;
135
- getOwnPropertyDescriptor(target: any, property: any): any;
136
- getPrototypeOf(target: any): any;
137
- has(target: any, property: any): any;
138
- isExtensible(target: any): any;
139
- ownKeys(target: any): any;
140
- preventExtensions(target: any): any;
141
- set(target: any, property: any, value: any, receiver: any): any;
142
- setPrototypeOf(target: any, prototype: any): any;
143
- }
144
- export const ProxyHandlerExtensions: Extension;
145
- export const PluggableProxyExtensions: Extension;
146
- export const PluggableProxyExtensionSet: {
147
- name: string;
148
- extensionObjects: Set<any>;
149
- extensions: Set<any>;
150
- apply(): void;
151
- revert(): void;
152
- };
153
- import { Extension } from '@nejs/extension';