@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,444 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PluggableProxyExtensionSet = exports.PluggableProxyExtensions = exports.ProxyHandlerExtensions = exports.PluggableProxy = exports.ProxyHandler = exports.ProxyHandlerResponse = void 0;
4
- const extension_1 = require("@nejs/extension");
5
- const { toStringTag, hasInstance } = Symbol;
6
- class ProxyHandlerResponse {
7
- constructor(success = false, value = undefined, context = undefined) {
8
- Object.assign(this, { succes, value, context });
9
- }
10
- /**
11
- * A getter method for the toStringTag symbol.
12
- * This method returns the name of the constructor of the instance.
13
- * It is used to provide a custom string description of the object,
14
- * which can be useful for debugging or logging purposes.
15
- *
16
- * @example
17
- * const response = new ProxyHandlerResponse();
18
- * console.log(response[Symbol.toStringTag]); // logs: "ProxyHandlerResponse"
19
- *
20
- * @returns {string} The name of the constructor of the instance.
21
- */
22
- get [toStringTag]() { return this.constructor.name; }
23
- /**
24
- * This static method is a Symbol.hasInstance method implementation.
25
- * It checks if the provided instance is an instance of the class.
26
- * It does this by comparing the instance's toStringTag or constructor
27
- * to the class's name or the class itself respectively.
28
- *
29
- * @param {Object} instance - The instance to check.
30
- * @returns {boolean} True if the instance is of the class, false otherwise.
31
- *
32
- * @example
33
- * // Assuming MyClass has implemented this method
34
- * const myInstance = new MyClass();
35
- * // logs: true
36
- * console.log(MyClass[Symbol.hasInstance](myInstance));
37
- */
38
- static [hasInstance](instance) {
39
- return (instance?.[toStringTag] === this.name ||
40
- instance?.constructor === this);
41
- }
42
- }
43
- exports.ProxyHandlerResponse = ProxyHandlerResponse;
44
- class ProxyHandler {
45
- constructor(handler, type = ProxyHandler.type.get) {
46
- this.handler = handler;
47
- this.typeName = Array.isArray(type)
48
- ? ProxyHandler.nameFromType(type) ?? 'get'
49
- : String(type);
50
- this.type = Array.isArray(type) ? type : ProxyHandler.type[type ?? 'get'];
51
- }
52
- invoke(...args) {
53
- const context = {
54
- defaultValue: Reflect[this.typeName](...args),
55
- proxyHandler: this,
56
- typeHandler: this.handler,
57
- };
58
- try {
59
- const result = this.handler.apply(context, args);
60
- if (!(result?.[Symbol.toStringTag] === ProxyHandler.ResponseType)) {
61
- return ProxyHandler.response(!!result, result, context);
62
- }
63
- result.context = context;
64
- return result;
65
- }
66
- catch (error) {
67
- return ProxyHandler.response(false, error);
68
- }
69
- }
70
- /**
71
- * This static method is used to create a response object. The response
72
- * object contains the success status, the value, and the context of the
73
- * response. It also includes a getter for the Symbol.toStringTag property
74
- * that returns the ResponseType of the ProxyHandler.
75
- *
76
- * @param {boolean} success - The success status of the response.
77
- * @param {*} value - The value of the response.
78
- * @param {Object} context - The context of the response.
79
- * @returns {Object} The response object.
80
- *
81
- * @example
82
- * // Create a response object
83
- * const response = ProxyHandler.response(
84
- * true, 'value', { key: 'context' }
85
- * );
86
- *
87
- * // Output: { success: true, value: 'value', context: { key: 'context' },
88
- * // [Symbol.toStringTag]: 'ProxyHandlerResponse' }
89
- * console.log(response);
90
- */
91
- static response(success, value, context) {
92
- return {
93
- success, value, context,
94
- get [Symbol.toStringTag]() { return this.ResponseType; }
95
- };
96
- }
97
- /**
98
- * This static getter method is used to retrieve the response type
99
- * of the ProxyHandler. It returns a string that represents the
100
- * response type of the ProxyHandler.
101
- *
102
- * @property {function} ResponseType - A static getter method that
103
- * returns the response type of the ProxyHandler.
104
- * @returns {string} A string representing the response type of the
105
- * ProxyHandler.
106
- *
107
- * @example
108
- * // Get the response type of the ProxyHandler
109
- * const responseType = ProxyHandler.ResponseType;
110
- *
111
- * // Output: 'ProxyHandlerResponse'
112
- * console.log(responseType);
113
- */
114
- static get ResponseType() { return 'ProxyHandlerResponse'; }
115
- /**
116
- * This static method is used to retrieve the name of a ProxyHandler type
117
- * from a given array of arguments. If the array of arguments matches any
118
- * of the ProxyHandler types, the name of that type is returned. If no
119
- * match is found, or if the input is not an array, 'custom' is returned.
120
- *
121
- * @param {Array.<*>} proxyHandlerType - An array of arguments to match
122
- * against the ProxyHandler types.
123
- * @returns {string} The name of the matching ProxyHandler type, or 'custom'
124
- * if no match is found.
125
- *
126
- * @example
127
- * // Get the name of a type from its arguments
128
- * const typeName = ProxyHandler.nameFromType(
129
- * ['target', 'thisArg', 'argumentsList']
130
- * );
131
- *
132
- * // Output: 'apply'
133
- * console.log(typeName);
134
- *
135
- * @throws {TypeError} If ProxyHandler.type is undefined.
136
- */
137
- static nameFromType(proxyHandlerType) {
138
- if (!Array.isArray(proxyHandlerType)) {
139
- return 'custom';
140
- }
141
- const names = Object.entries(ProxyHandler.type);
142
- for (const [name, args] of names) {
143
- if (proxyHandlerType.every(element => ~args.indexOf(element))) {
144
- return name;
145
- }
146
- }
147
- return 'custom';
148
- }
149
- /**
150
- * This method is used to retrieve all the types of ProxyHandler available
151
- * in the ProxyHandler.type object. It is useful when you need to iterate
152
- * over all the types or when you need to check if a certain type exists.
153
- *
154
- * @property {function} typeNames - A static getter method that returns an
155
- * array of keys from the ProxyHandler.type object.
156
- * @returns {Array.<string>} An array of strings representing the keys of
157
- * the ProxyHandler.type object.
158
- *
159
- * @example
160
- * // Get all type names
161
- * const types = ProxyHandler.typeNames;
162
- *
163
- * // Output: ['apply', 'construct', 'defineProperty', ...]
164
- * console.log(types);
165
- *
166
- * @throws {TypeError} If ProxyHandler.type is undefined.
167
- */
168
- static get typeNames() {
169
- return Object.keys(ProxyHandler.type);
170
- }
171
- /**
172
- * A static getter method that returns an object containing keyed proxy
173
- * trap types and their associated expected arguments list by name. A
174
- * docstring description complete with url shortening links for each entry
175
- * are provided (links go to the MDN documentation)
176
- *
177
- * @property {function} type - A static getter method that returns an object
178
- * of ProxyHandler types.
179
- * @returns {Object.<string, function>} An object where each key is a type
180
- * name and each value is a function that returns an array of strings
181
- * representing the arguments for that type.
182
- *
183
- * @example
184
- * // Get the 'apply' type
185
- * const applyType = ProxyHandler.type.apply;
186
- *
187
- * // Output: ['target', 'thisArg', 'argumentsList']
188
- * console.log(applyType());
189
- *
190
- * @throws {TypeError} If ProxyHandler.type is undefined.
191
- */
192
- static get type() {
193
- return {
194
- /**
195
- * The handler.apply() method is a trap for the [[Call]] object internal
196
- * method, which is used by operations such as function calls.
197
- * MDN link: https://t.ly/orBsG
198
- */
199
- get apply() { return ['target', 'thisArg', 'argumentsList']; },
200
- /**
201
- * The handler.construct() method is a trap for the [[Construct]] object
202
- * internal method, which is used by operations such as the new operator.
203
- * In order for the new operation to be valid on the resulting Proxy
204
- * object, the target used to initialize the proxy must itself be a
205
- * valid constructor.
206
- * MDN link: https://t.ly/1LukS
207
- */
208
- get construct() { return ['target', 'args']; },
209
- /**
210
- * The handler.defineProperty() method is a trap for the
211
- * [[DefineOwnProperty]] object internal method, which is used by
212
- * operations such as Object.defineProperty().
213
- * MDN link: https://t.ly/3Ml9y
214
- */
215
- get defineProperty() { return ['target', 'key', 'descriptor']; },
216
- /**
217
- * The handler.deleteProperty() method is a trap for the [[Delete]]
218
- * object internal method, which is used by operations such as the
219
- * delete operator.
220
- * MDN link: https://t.ly/neu2H
221
- */
222
- get deleteProperty() { return ['target', 'property']; },
223
- /**
224
- * The handler.get() method is a trap for the [[Get]] object internal
225
- * method, which is used by operations such as property accessors.
226
- * MDN link: https://t.ly/E419x
227
- */
228
- get get() { return ['target', 'property', 'receiver']; },
229
- /**
230
- * The handler.getOwnPropertyDescriptor() method is a trap for the
231
- * [[GetOwnProperty]] object internal method, which is used by operations
232
- * such as Object.getOwnPropertyDescriptor().
233
- * MDN link: https://t.ly/wzPTX
234
- */
235
- get getOwnPropertyDescriptor() { return ['target', 'property']; },
236
- /**
237
- * The handler.getPrototypeOf() method is a trap for the
238
- * [[GetPrototypeOf]] object internal method, which is used by operations
239
- * such as Object.getPrototypeOf().
240
- * MDN link: https://t.ly/Ww4S1
241
- */
242
- get getPrototypeOf() { return ['target']; },
243
- /**
244
- * The handler.has() method is a trap for the [[HasProperty]] object
245
- * internal method, which is used by operations such as the in operator.
246
- * MDN link: https://t.ly/UcJL-
247
- */
248
- get has() { return ['target', 'prototype']; },
249
- /**
250
- * The handler.isExtensible() method is a trap for the [[IsExtensible]]
251
- * object internal method, which is used by operations such as
252
- * Object.isExtensible().
253
- * MDN link: https://t.ly/MkdIK
254
- */
255
- get isExtensible() { return ['target']; },
256
- /**
257
- * The handler.ownKeys() method is a trap for the [[OwnPropertyKeys]]
258
- * object internal method, which is used by operations such as
259
- * Object.keys(), Reflect.ownKeys(), etc.
260
- * MDN link: https://t.ly/QkiTI
261
- */
262
- get ownKeys() { return ['target']; },
263
- /**
264
- * The handler.preventExtensions() method is a trap for the
265
- * [[PreventExtensions]] object internal method, which is used by
266
- * operations such as Object.preventExtensions().
267
- * MDN link: https://t.ly/nvfjJ
268
- */
269
- get preventExtensions() { return ['target']; },
270
- /**
271
- * The handler.set() method is a trap for the [[Set]] object internal
272
- * method, which is used by operations such as using property accessors
273
- * to set a property's value.
274
- * MDN link: https://t.ly/FDWcl
275
- */
276
- get set() { return ['target', 'property', 'value', 'receiver']; },
277
- /**
278
- * The handler.setPrototypeOf() method is a trap for the
279
- * [[SetPrototypeOf]] object internal method, which is used by operations
280
- * such as Object.setPrototypeOf().
281
- * MDN link: https://t.ly/pS8ej
282
- */
283
- get setPrototypeOf() { return ['target', 'prototype']; },
284
- };
285
- }
286
- }
287
- exports.ProxyHandler = ProxyHandler;
288
- class PluggableProxy {
289
- constructor(Class, handlers, options = {
290
- prototype: undefined, // undefined means extract from class
291
- apply: true,
292
- }) {
293
- const validHandlers = handlers.filter(h => h instanceof ProxyHandler);
294
- Object.assign(this, {
295
- class: Class instanceof Function ? Class : Class.constructor,
296
- instance: Class instanceof Function ? null : Class,
297
- });
298
- this.handlers = new Map();
299
- for (let typeName of ProxyHandler.typeNames) {
300
- const handlersOfType = [].concat(validHandlers.filter(h => h.typeName === typeName));
301
- this.handlers.set(typeName, handlersOfType);
302
- }
303
- this[PluggableProxy.kOriginal] = (options?.prototype ?? Object.getPrototypeOf(this.class));
304
- this[PluggableProxy.kCreated] = Object.create(this[PluggableProxy.kOriginal], this.instance);
305
- this[PluggableProxy.kProxy] = new Proxy(this[PluggableProxy.kCreated], this);
306
- if (options?.apply != true) {
307
- const target = this?.instance ?? this.class;
308
- Object.setPrototypeOf(target, this[PluggableProxy.kCreated]);
309
- }
310
- }
311
- handlersOfType(typeName) {
312
- return this.handlers.get(typeName);
313
- }
314
- tryEachOfType(type, ...args) {
315
- const types = ProxyHandler.typeNames;
316
- const failures = [];
317
- for (const handler of types) {
318
- const result = handler.invoke(...args);
319
- if (result.success) {
320
- return [result, failures];
321
- }
322
- failures.push(result);
323
- }
324
- return [undefined, failures];
325
- }
326
- apply(target, thisArg, argumentsList) {
327
- const type = 'apply', args = [target, thisArg, argumentsList];
328
- const [result, _fails] = tryEachOfType(type, ...args);
329
- if (result) {
330
- return result;
331
- }
332
- return Reflect[type](...args);
333
- }
334
- construct(target, args) {
335
- const type = 'construct', _args = [target, args];
336
- const [result, _fails] = tryEachOfType(type, ..._args);
337
- if (result) {
338
- return result;
339
- }
340
- return Reflect[type](..._args);
341
- }
342
- defineProperty(target, key, descriptor) {
343
- const type = 'defineProperty', args = [target, key, descriptor];
344
- const [result, _fails] = tryEachOfType(type, ...args);
345
- if (result) {
346
- return result;
347
- }
348
- return Reflect[type](...args);
349
- }
350
- deleteProperty(target, property) {
351
- const type = 'deleteProperty', args = [target, property];
352
- const [result, _fails] = tryEachOfType(type, ...args);
353
- if (result) {
354
- return result;
355
- }
356
- return Reflect[type](...args);
357
- }
358
- get(target, property, receiver) {
359
- const type = 'get', args = [target, property, receiver];
360
- const [result, _fails] = tryEachOfType(type, ...args);
361
- if (result) {
362
- return result;
363
- }
364
- return Reflect[type](...args);
365
- }
366
- getOwnPropertyDescriptor(target, property) {
367
- const type = 'getOwnPropertyDescriptor', args = [target, property];
368
- const [result, _fails] = tryEachOfType(type, ...args);
369
- if (result) {
370
- return result;
371
- }
372
- return Reflect[type](...args);
373
- }
374
- getPrototypeOf(target) {
375
- const type = 'getPrototypeOf', args = [target];
376
- const [result, _fails] = tryEachOfType(type, ...args);
377
- if (result) {
378
- return result;
379
- }
380
- return Reflect[type](...args);
381
- }
382
- has(target, property) {
383
- const type = 'has', args = [target, property];
384
- const [result, _fails] = tryEachOfType(type, ...args);
385
- if (result) {
386
- return result;
387
- }
388
- return Reflect[type](...args);
389
- }
390
- isExtensible(target) {
391
- const type = 'isExtensible', args = [target];
392
- const [result, _fails] = tryEachOfType(type, ...args);
393
- if (result) {
394
- return result;
395
- }
396
- return Reflect[type](...args);
397
- }
398
- ownKeys(target) {
399
- const type = 'ownKeys', args = [target];
400
- const [result, _fails] = tryEachOfType(type, ...args);
401
- if (result) {
402
- return result;
403
- }
404
- return Reflect[type](...args);
405
- }
406
- preventExtensions(target) {
407
- const type = 'preventExtensions', args = [target];
408
- const [result, _fails] = tryEachOfType(type, ...args);
409
- if (result) {
410
- return result;
411
- }
412
- return Reflect[type](...args);
413
- }
414
- set(target, property, value, receiver) {
415
- const type = 'set', args = [target, property, value, receiver];
416
- const [result, _fails] = tryEachOfType(type, ...args);
417
- if (result) {
418
- return result;
419
- }
420
- return Reflect[type](...args);
421
- }
422
- setPrototypeOf(target, prototype) {
423
- const type = 'setPrototypeOf', args = [target, prototype];
424
- const [result, _fails] = tryEachOfType(type, ...args);
425
- if (result) {
426
- return result;
427
- }
428
- return Reflect[type](...args);
429
- }
430
- static get kCreated() {
431
- return Symbol.for('pp.prototype.created');
432
- }
433
- static get kOriginal() {
434
- return Symbol.for('pp.prototype.original');
435
- }
436
- static get kProxy() {
437
- return Symbol.for('pp.proxy');
438
- }
439
- }
440
- exports.PluggableProxy = PluggableProxy;
441
- exports.ProxyHandlerExtensions = new extension_1.Extension(ProxyHandler);
442
- exports.PluggableProxyExtensions = new extension_1.Extension(PluggableProxy);
443
- exports.PluggableProxyExtensionSet = new extension_1.Extension.ExtensionSet('PluggableProxyExtensionSet', exports.ProxyHandlerExtensions, exports.PluggableProxyExtensions);
444
- //# sourceMappingURL=pluggable.proxy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluggable.proxy.js","sourceRoot":"","sources":["../../../src/classes/pluggable.proxy.js"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- export class Property {
2
- /**
3
- * Creates an accessor property with customizable getter and setter functions.
4
- *
5
- * This method offers flexible ways to define accessor properties, including
6
- * support for storage-based getters and setters. It can handle various input
7
- * formats, making it versatile for different use cases.
8
- *
9
- * @param {string} name - The name of the accessor property.
10
- * @param {Object} accessors - Object containing getter and/or setter functions.
11
- * @param {Function} [accessors.get] - Getter function for the property.
12
- * @param {Function} [accessors.set] - Setter function for the property.
13
- * @param {Object} [accessors.prototype] - Prototype object for getter/setter.
14
- * @param {Object} [options] - Additional options for the accessor property.
15
- * @param {boolean} [options.configurable=true] - Whether property is configurable.
16
- * @param {boolean} [options.enumerable=true] - Whether property is enumerable.
17
- * @param {Object} [options.storage] - Storage object for getter/setter closures.
18
- * @returns {Property} A new Property instance representing the accessor.
19
- * @throws {TypeError} If no name, getter, or setter is provided.
20
- *
21
- * @example
22
- * // Basic usage
23
- * Property.accessor('color', {
24
- * get() { return this._color; },
25
- * set(value) { this._color = value; }
26
- * });
27
- *
28
- * @example
29
- * // Using storage
30
- * Property.accessor('keyword', {
31
- * get(storage) { return () => storage.keyword; },
32
- * set(storage) { return (value) => { storage.keyword = value; } }
33
- * }, { storage: { keyword: 'initial' } });
34
- *
35
- * @example
36
- * // Using named getter function
37
- * Property.accessor('color', function get() { return 'red' })
38
- *
39
- * @example
40
- * // Using prototype
41
- * const ColorAccessors = {
42
- * red: { get() { return this._red; } }
43
- * };
44
- * Property.accessor('red', ColorAccessors.red);
45
- */
46
- static accessor(name: string, { get, set, prototype }: {
47
- get?: Function | undefined;
48
- set?: Function | undefined;
49
- prototype?: Object | undefined;
50
- }, { configurable, enumerable, storage }?: {
51
- configurable?: boolean | undefined;
52
- enumerable?: boolean | undefined;
53
- storage?: Object | undefined;
54
- }): Property;
55
- static data(name: any, value: any, { writable, configurable, enumerable }?: {}): Property;
56
- static from(object: any, name: any): Property;
57
- static get is(): {
58
- object(value: any): any;
59
- descriptor(object: any): boolean;
60
- };
61
- constructor(key: any, descriptor: any);
62
- key: string | symbol;
63
- set descriptor(descriptor: {
64
- enumerable: any;
65
- configurable: any;
66
- });
67
- get descriptor(): {
68
- enumerable: any;
69
- configurable: any;
70
- };
71
- apply(toObject: any, asKey: any): any;
72
- get is(): {
73
- readonly accessor: boolean;
74
- readonly data: boolean;
75
- };
76
- toString(colors?: boolean, { key, descriptor }?: {}): string;
77
- }
78
- export const PropertyExtensions: Extension;
79
- import { Extension } from '@nejs/extension';