@nejs/basic-extensions 2.9.0 → 2.11.0
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.
- package/dist/@nejs/basic-extensions.bundle.2.11.0.js +19 -0
- package/dist/@nejs/basic-extensions.bundle.2.11.0.js.map +7 -0
- package/dist/cjs/array.extensions.js +174 -0
- package/dist/cjs/array.extensions.js.map +1 -1
- package/dist/cjs/big.int.extension.js +1 -0
- package/dist/cjs/big.int.extension.js.map +1 -1
- package/dist/cjs/classes/descriptor.d.ts +67 -155
- package/dist/cjs/classes/descriptor.js +185 -278
- package/dist/cjs/classes/descriptor.js.map +1 -1
- package/dist/cjs/classes/index.d.ts +1 -0
- package/dist/cjs/classes/index.js +3 -0
- package/dist/cjs/classes/index.js.map +1 -1
- package/dist/cjs/classes/iterable.d.ts +44 -0
- package/dist/cjs/classes/iterable.js +64 -0
- package/dist/cjs/classes/iterable.js.map +1 -1
- package/dist/cjs/classes/param.parser.d.ts +10 -10
- package/dist/cjs/classes/property.d.ts +86 -0
- package/dist/cjs/classes/property.js +284 -0
- package/dist/cjs/classes/property.js.map +1 -0
- package/dist/cjs/classes/symkeys.d.ts +68 -11
- package/dist/cjs/classes/symkeys.js +103 -17
- package/dist/cjs/classes/symkeys.js.map +1 -1
- package/dist/cjs/classes/type.d.ts +4 -4
- package/dist/cjs/function.extensions.js +1 -0
- package/dist/cjs/function.extensions.js.map +1 -1
- package/dist/cjs/global.this.js +29 -0
- package/dist/cjs/global.this.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/json.extensions.js +19 -18
- package/dist/cjs/json.extensions.js.map +1 -1
- package/dist/cjs/map.extensions.js +1 -0
- package/dist/cjs/map.extensions.js.map +1 -1
- package/dist/cjs/number.extension.js +1 -0
- package/dist/cjs/number.extension.js.map +1 -1
- package/dist/cjs/object.extensions.d.ts +0 -29
- package/dist/cjs/object.extensions.js +218 -255
- package/dist/cjs/object.extensions.js.map +1 -1
- package/dist/cjs/set.extensions.js +1 -0
- package/dist/cjs/set.extensions.js.map +1 -1
- package/dist/cjs/string.extensions.js +474 -469
- package/dist/cjs/string.extensions.js.map +1 -1
- package/dist/cjs/symbol.extensions.js +387 -32
- package/dist/cjs/symbol.extensions.js.map +1 -1
- package/dist/cjs/utils/copy.object.d.ts +408 -0
- package/dist/cjs/utils/copy.object.js +720 -0
- package/dist/cjs/utils/copy.object.js.map +1 -0
- package/dist/cjs/utils/descriptor.utils.d.ts +146 -0
- package/dist/cjs/utils/descriptor.utils.js +614 -0
- package/dist/cjs/utils/descriptor.utils.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +60 -0
- package/dist/cjs/utils/index.js +52 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/toolkit.d.ts +1898 -0
- package/dist/cjs/utils/toolkit.js +1378 -0
- package/dist/cjs/utils/toolkit.js.map +1 -0
- package/dist/mjs/array.extensions.js +174 -0
- package/dist/mjs/array.extensions.js.map +1 -1
- package/dist/mjs/big.int.extension.js +1 -0
- package/dist/mjs/big.int.extension.js.map +1 -1
- package/dist/mjs/classes/descriptor.d.ts +67 -155
- package/dist/mjs/classes/descriptor.js +185 -278
- package/dist/mjs/classes/descriptor.js.map +1 -1
- package/dist/mjs/classes/index.d.ts +1 -0
- package/dist/mjs/classes/index.js +3 -0
- package/dist/mjs/classes/index.js.map +1 -1
- package/dist/mjs/classes/iterable.d.ts +44 -0
- package/dist/mjs/classes/iterable.js +64 -0
- package/dist/mjs/classes/iterable.js.map +1 -1
- package/dist/mjs/classes/param.parser.d.ts +10 -10
- package/dist/mjs/classes/property.d.ts +86 -0
- package/dist/mjs/classes/property.js +280 -0
- package/dist/mjs/classes/property.js.map +1 -0
- package/dist/mjs/classes/symkeys.d.ts +68 -11
- package/dist/mjs/classes/symkeys.js +103 -17
- package/dist/mjs/classes/symkeys.js.map +1 -1
- package/dist/mjs/classes/type.d.ts +4 -4
- package/dist/mjs/function.extensions.js +1 -0
- package/dist/mjs/function.extensions.js.map +1 -1
- package/dist/mjs/global.this.js +6 -0
- package/dist/mjs/global.this.js.map +1 -1
- package/dist/mjs/index.d.ts +3 -0
- package/dist/mjs/index.js +5 -0
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/json.extensions.js +19 -18
- package/dist/mjs/json.extensions.js.map +1 -1
- package/dist/mjs/map.extensions.js +1 -0
- package/dist/mjs/map.extensions.js.map +1 -1
- package/dist/mjs/number.extension.js +1 -0
- package/dist/mjs/number.extension.js.map +1 -1
- package/dist/mjs/object.extensions.d.ts +0 -29
- package/dist/mjs/object.extensions.js +215 -251
- package/dist/mjs/object.extensions.js.map +1 -1
- package/dist/mjs/set.extensions.js +1 -0
- package/dist/mjs/set.extensions.js.map +1 -1
- package/dist/mjs/string.extensions.js +474 -469
- package/dist/mjs/string.extensions.js.map +1 -1
- package/dist/mjs/symbol.extensions.js +387 -32
- package/dist/mjs/symbol.extensions.js.map +1 -1
- package/dist/mjs/utils/copy.object.d.ts +408 -0
- package/dist/mjs/utils/copy.object.js +702 -0
- package/dist/mjs/utils/copy.object.js.map +1 -0
- package/dist/mjs/utils/descriptor.utils.d.ts +146 -0
- package/dist/mjs/utils/descriptor.utils.js +606 -0
- package/dist/mjs/utils/descriptor.utils.js.map +1 -0
- package/dist/mjs/utils/index.d.ts +60 -0
- package/dist/mjs/utils/index.js +36 -0
- package/dist/mjs/utils/index.js.map +1 -0
- package/dist/mjs/utils/toolkit.d.ts +1898 -0
- package/dist/mjs/utils/toolkit.js +1373 -0
- package/dist/mjs/utils/toolkit.js.map +1 -0
- package/package.json +29 -37
- package/repl.bootstrap.js +12 -1
- package/src/array.extensions.js +191 -1
- package/src/big.int.extension.js +3 -1
- package/src/classes/descriptor.js +206 -305
- package/src/classes/index.js +4 -0
- package/src/classes/iterable.js +74 -0
- package/src/classes/property.js +333 -0
- package/src/classes/symkeys.js +120 -19
- package/src/function.extensions.js +2 -0
- package/src/global.this.js +8 -0
- package/src/index.js +6 -0
- package/src/json.extensions.js +18 -19
- package/src/map.extensions.js +3 -1
- package/src/number.extension.js +3 -1
- package/src/object.extensions.js +240 -277
- package/src/set.extensions.js +3 -1
- package/src/string.extensions.js +512 -506
- package/src/symbol.extensions.js +413 -30
- package/src/utils/copy.object.js +780 -0
- package/src/utils/descriptor.utils.js +707 -0
- package/src/utils/index.js +74 -0
- package/src/utils/toolkit.js +1473 -0
- package/tests/arrayextensions.test.js +2 -0
- package/tests/index.test.js +1 -0
- package/tests/newClasses/asyncIterable.test.js +2 -0
- package/tests/newClasses/deferred.test.js +5 -3
- package/tests/newClasses/descriptor.test.js +6 -8
- package/tests/newClasses/iterable.test.js +2 -0
- package/tests/newClasses/refmap.test.js +2 -1
- package/tests/newClasses/refset.test.js +2 -0
- package/tests/objectextensions.test.js +2 -0
- package/tests/setextensions.test.js +2 -0
- package/tests/stringextensions.test.js +1 -0
- package/tests/utils/toolkit.test.js +223 -0
- package/tsconfig.base.json +1 -1
- package/vitest.config.js +7 -0
- package/dist/@nejs/basic-extensions.bundle.2.8.0.js +0 -19
- package/dist/@nejs/basic-extensions.bundle.2.8.0.js.map +0 -7
- package/docs/assets/anchor.js +0 -350
- package/docs/assets/bass-addons.css +0 -12
- package/docs/assets/bass.css +0 -544
- package/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/docs/assets/fonts/LICENSE.txt +0 -93
- package/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/docs/assets/fonts/source-code-pro.css +0 -23
- package/docs/assets/github.css +0 -123
- package/docs/assets/site.js +0 -168
- package/docs/assets/split.css +0 -15
- package/docs/assets/split.js +0 -782
- package/docs/assets/style.css +0 -147
- package/docs/index.html +0 -35485
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/classes/descriptor.js"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C,MAAa,UAAU;IACrB;;;;;OAKG;IACH,KAAK,GAAG,SAAS,CAAA;IAEjB;;;;;;OAMG;IACH,OAAO,GAAG,SAAS,CAAA;IAEnB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,MAAM,EAAE,GAAG;QACrB,IAAI,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/classes/descriptor.js"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export * from "./introspector.js";
|
|
|
5
5
|
export * from "./iterable.js";
|
|
6
6
|
export * from "./param.parser.js";
|
|
7
7
|
export * from "./pluggable.proxy.js";
|
|
8
|
+
export * from "./property.js";
|
|
8
9
|
export * from "./refmap.js";
|
|
9
10
|
export * from "./refset.js";
|
|
10
11
|
export * from "./symkeys.js";
|
|
@@ -30,6 +30,8 @@ const param_parser_js_1 = require("./param.parser.js");
|
|
|
30
30
|
__exportStar(require("./param.parser.js"), exports);
|
|
31
31
|
const pluggable_proxy_js_1 = require("./pluggable.proxy.js");
|
|
32
32
|
__exportStar(require("./pluggable.proxy.js"), exports);
|
|
33
|
+
const property_js_1 = require("./property.js");
|
|
34
|
+
__exportStar(require("./property.js"), exports);
|
|
33
35
|
const refmap_js_1 = require("./refmap.js");
|
|
34
36
|
__exportStar(require("./refmap.js"), exports);
|
|
35
37
|
const refset_js_1 = require("./refset.js");
|
|
@@ -49,6 +51,7 @@ exports.NewClassesExtension = new extension_1.Patch(globalThis, {
|
|
|
49
51
|
ParamParser: param_parser_js_1.ParamParser,
|
|
50
52
|
PluggableProxy: pluggable_proxy_js_1.PluggableProxy,
|
|
51
53
|
ProxyHandler: pluggable_proxy_js_1.ProxyHandler,
|
|
54
|
+
Property: property_js_1.Property,
|
|
52
55
|
RefMap: refmap_js_1.RefMap,
|
|
53
56
|
RefSet: refset_js_1.RefSet,
|
|
54
57
|
Symkeys: symkeys_js_1.Symkeys,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAEvC,yDAAiE;AACjE,qDAAkC;AAElC,+CAAwC;AACxC,gDAA6B;AAE7B,mDAA4C;AAC5C,kDAA+B;AAE/B,uDAAgD;AAChD,oDAAiC;AAEjC,+CAAiD;AACjD,gDAA6B;AAE7B,uDAA+C;AAC/C,oDAAiC;AAEjC,6DAAmE;AACnE,uDAAoC;AAEpC,2CAAqC;AACrC,8CAA2B;AAE3B,2CAAoC;AACpC,8CAA2B;AAE3B,6CAAsC;AACtC,+CAA4B;AAE5B,uCAAgC;AAChC,4CAAyB;AAEZ,QAAA,mBAAmB,GAAG,IAAI,iBAAK,CAAC,UAAU,EAAE;IACvD,aAAa,EAAb,gCAAa;IACb,aAAa,EAAb,gCAAa;IACb,QAAQ,EAAR,sBAAQ;IACR,UAAU,EAAV,0BAAU;IACV,YAAY,EAAZ,8BAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,QAAQ,EAAR,sBAAQ;IACR,WAAW,EAAX,6BAAW;IACX,cAAc,EAAd,mCAAc;IACd,YAAY,EAAZ,iCAAY;IACZ,MAAM,EAAN,kBAAM;IACN,MAAM,EAAN,kBAAM;IACN,OAAO,EAAP,oBAAO;IACP,IAAI,EAAJ,cAAI;CACL,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAEvC,yDAAiE;AACjE,qDAAkC;AAElC,+CAAwC;AACxC,gDAA6B;AAE7B,mDAA4C;AAC5C,kDAA+B;AAE/B,uDAAgD;AAChD,oDAAiC;AAEjC,+CAAiD;AACjD,gDAA6B;AAE7B,uDAA+C;AAC/C,oDAAiC;AAEjC,6DAAmE;AACnE,uDAAoC;AAEpC,+CAA4D;AAC5D,gDAA6B;AAE7B,2CAAqC;AACrC,8CAA2B;AAE3B,2CAAoC;AACpC,8CAA2B;AAE3B,6CAAsC;AACtC,+CAA4B;AAE5B,uCAAgC;AAChC,4CAAyB;AAEZ,QAAA,mBAAmB,GAAG,IAAI,iBAAK,CAAC,UAAU,EAAE;IACvD,aAAa,EAAb,gCAAa;IACb,aAAa,EAAb,gCAAa;IACb,QAAQ,EAAR,sBAAQ;IACR,UAAU,EAAV,0BAAU;IACV,YAAY,EAAZ,8BAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,QAAQ,EAAR,sBAAQ;IACR,WAAW,EAAX,6BAAW;IACX,cAAc,EAAd,mCAAc;IACd,YAAY,EAAZ,iCAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,MAAM,EAAN,kBAAM;IACN,OAAO,EAAP,oBAAO;IACP,IAAI,EAAJ,cAAI;CACL,CAAC,CAAA"}
|
|
@@ -65,6 +65,50 @@ export class Iterable {
|
|
|
65
65
|
* `[Symbol.iterator]` property assigned to a generator function.
|
|
66
66
|
*/
|
|
67
67
|
export class Iterator {
|
|
68
|
+
/**
|
|
69
|
+
* Creates an Iterator for the keys of the given object.
|
|
70
|
+
*
|
|
71
|
+
* @note alternatives to keyFetcher might be `Reflect.ownKeys` or even
|
|
72
|
+
* `Object.keys`. Each type of fetcher has their own requirements but
|
|
73
|
+
* any function that takes an object and returns keys will suffice.
|
|
74
|
+
*
|
|
75
|
+
* @param {Object} object - The object whose keys will be iterated.
|
|
76
|
+
* @param {Function} [mapEach] - Optional function to map each key.
|
|
77
|
+
* @param {Function} [keyFetcher=Object.getOwnPropertyNames] - Function to
|
|
78
|
+
* fetch keys from the object. Defaults to Object.getOwnPropertyNames.
|
|
79
|
+
* @returns {Iterator} An Iterator instance containing the object's keys.
|
|
80
|
+
*/
|
|
81
|
+
static keys(object: Object, mapEach?: Function | undefined, keyFetcher?: Function | undefined): Iterator;
|
|
82
|
+
/**
|
|
83
|
+
* Creates an Iterator for the entries of the given object.
|
|
84
|
+
*
|
|
85
|
+
* @note alternatives to keyFetcher might be `Reflect.ownKeys` or even
|
|
86
|
+
* `Object.keys`. Each type of fetcher has their own requirements but
|
|
87
|
+
* any function that takes an object and returns keys will suffice.
|
|
88
|
+
*
|
|
89
|
+
* @param {Object} object - The object whose entries will be iterated.
|
|
90
|
+
* @param {Function} [mapEach] - Optional function to map each entry.
|
|
91
|
+
* @param {Function} [keyFetcher=Object.getOwnPropertyNames] - Function to
|
|
92
|
+
* fetch keys from the object. Defaults to Object.getOwnPropertyNames.
|
|
93
|
+
* @returns {Iterator} An Iterator instance containing the object's entries.
|
|
94
|
+
*/
|
|
95
|
+
static entries(object: Object, mapEach?: Function | undefined, keyFetcher?: Function | undefined): Iterator;
|
|
96
|
+
/**
|
|
97
|
+
* Creates an Iterator for the property descriptors of the given object.
|
|
98
|
+
*
|
|
99
|
+
* @note alternatives to keyFetcher might be `Reflect.ownKeys` or even
|
|
100
|
+
* `Object.keys`. Each type of fetcher has their own requirements but
|
|
101
|
+
* any function that takes an object and returns keys will suffice.
|
|
102
|
+
*
|
|
103
|
+
* @param {Object} object - The object whose descriptors will be iterated.
|
|
104
|
+
* @param {Function} [mapEach] - Optional function to map each descriptor
|
|
105
|
+
* entry.
|
|
106
|
+
* @param {Function} [keyFetcher=Object.getOwnPropertyNames] - Function to
|
|
107
|
+
* fetch keys from the object. Defaults to Object.getOwnPropertyNames.
|
|
108
|
+
* @returns {Iterator} An Iterator instance containing entries of [key,
|
|
109
|
+
* descriptor] pairs.
|
|
110
|
+
*/
|
|
111
|
+
static descriptors(object: Object, mapEach?: Function | undefined, keyFetcher?: Function | undefined): Iterator;
|
|
68
112
|
/**
|
|
69
113
|
* Creates a new `Iterator` object instance.
|
|
70
114
|
*
|
|
@@ -197,6 +197,70 @@ class Iterator {
|
|
|
197
197
|
* @private
|
|
198
198
|
*/
|
|
199
199
|
#iterator = null;
|
|
200
|
+
/**
|
|
201
|
+
* Creates an Iterator for the keys of the given object.
|
|
202
|
+
*
|
|
203
|
+
* @note alternatives to keyFetcher might be `Reflect.ownKeys` or even
|
|
204
|
+
* `Object.keys`. Each type of fetcher has their own requirements but
|
|
205
|
+
* any function that takes an object and returns keys will suffice.
|
|
206
|
+
*
|
|
207
|
+
* @param {Object} object - The object whose keys will be iterated.
|
|
208
|
+
* @param {Function} [mapEach] - Optional function to map each key.
|
|
209
|
+
* @param {Function} [keyFetcher=Object.getOwnPropertyNames] - Function to
|
|
210
|
+
* fetch keys from the object. Defaults to Object.getOwnPropertyNames.
|
|
211
|
+
* @returns {Iterator} An Iterator instance containing the object's keys.
|
|
212
|
+
*/
|
|
213
|
+
static keys(object, mapEach, keyFetcher) {
|
|
214
|
+
keyFetcher ??= Object.getOwnPropertyNames;
|
|
215
|
+
const keys = keyFetcher(object);
|
|
216
|
+
return new Iterator(keys, mapEach);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Creates an Iterator for the entries of the given object.
|
|
220
|
+
*
|
|
221
|
+
* @note alternatives to keyFetcher might be `Reflect.ownKeys` or even
|
|
222
|
+
* `Object.keys`. Each type of fetcher has their own requirements but
|
|
223
|
+
* any function that takes an object and returns keys will suffice.
|
|
224
|
+
*
|
|
225
|
+
* @param {Object} object - The object whose entries will be iterated.
|
|
226
|
+
* @param {Function} [mapEach] - Optional function to map each entry.
|
|
227
|
+
* @param {Function} [keyFetcher=Object.getOwnPropertyNames] - Function to
|
|
228
|
+
* fetch keys from the object. Defaults to Object.getOwnPropertyNames.
|
|
229
|
+
* @returns {Iterator} An Iterator instance containing the object's entries.
|
|
230
|
+
*/
|
|
231
|
+
static entries(object, mapEach, keyFetcher) {
|
|
232
|
+
keyFetcher ??= Object.getOwnPropertyNames;
|
|
233
|
+
const keys = keyFetcher(object);
|
|
234
|
+
const entries = [];
|
|
235
|
+
for (const key of keys) {
|
|
236
|
+
entries.push([key, object[key]]);
|
|
237
|
+
}
|
|
238
|
+
return new Iterator(entries, mapEach);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Creates an Iterator for the property descriptors of the given object.
|
|
242
|
+
*
|
|
243
|
+
* @note alternatives to keyFetcher might be `Reflect.ownKeys` or even
|
|
244
|
+
* `Object.keys`. Each type of fetcher has their own requirements but
|
|
245
|
+
* any function that takes an object and returns keys will suffice.
|
|
246
|
+
*
|
|
247
|
+
* @param {Object} object - The object whose descriptors will be iterated.
|
|
248
|
+
* @param {Function} [mapEach] - Optional function to map each descriptor
|
|
249
|
+
* entry.
|
|
250
|
+
* @param {Function} [keyFetcher=Object.getOwnPropertyNames] - Function to
|
|
251
|
+
* fetch keys from the object. Defaults to Object.getOwnPropertyNames.
|
|
252
|
+
* @returns {Iterator} An Iterator instance containing entries of [key,
|
|
253
|
+
* descriptor] pairs.
|
|
254
|
+
*/
|
|
255
|
+
static descriptors(object, mapEach, keyFetcher) {
|
|
256
|
+
keyFetcher ??= Object.getOwnPropertyNames;
|
|
257
|
+
const keys = keyFetcher(object);
|
|
258
|
+
const entries = [];
|
|
259
|
+
for (const key of keys) {
|
|
260
|
+
entries.push([key, Object.getOwnPropertyDescriptor(object, key)]);
|
|
261
|
+
}
|
|
262
|
+
return new Iterator(entries, mapEach);
|
|
263
|
+
}
|
|
200
264
|
}
|
|
201
265
|
exports.Iterator = Iterator;
|
|
202
266
|
exports.IterableExtensions = new extension_1.Extension(Iterable);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../src/classes/iterable.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../src/classes/iterable.js"],"names":[],"mappings":"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"}
|
|
@@ -115,19 +115,19 @@ export class ParamParser {
|
|
|
115
115
|
* }
|
|
116
116
|
*/
|
|
117
117
|
static get ParametersMustBeArrayError(): {
|
|
118
|
-
new (message?: string
|
|
118
|
+
new (message?: string): {
|
|
119
119
|
name: string;
|
|
120
120
|
message: string;
|
|
121
|
-
stack?: string
|
|
121
|
+
stack?: string;
|
|
122
122
|
cause?: unknown;
|
|
123
123
|
};
|
|
124
|
-
new (message?: string
|
|
124
|
+
new (message?: string, options?: ErrorOptions): {
|
|
125
125
|
name: string;
|
|
126
126
|
message: string;
|
|
127
|
-
stack?: string
|
|
127
|
+
stack?: string;
|
|
128
128
|
cause?: unknown;
|
|
129
129
|
};
|
|
130
|
-
captureStackTrace(targetObject: object, constructorOpt?: Function
|
|
130
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
131
131
|
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
132
132
|
stackTraceLimit: number;
|
|
133
133
|
};
|
|
@@ -158,19 +158,19 @@ export class ParamParser {
|
|
|
158
158
|
* }
|
|
159
159
|
*/
|
|
160
160
|
static get ParsersArrayMustContainParsersError(): {
|
|
161
|
-
new (message?: string
|
|
161
|
+
new (message?: string): {
|
|
162
162
|
name: string;
|
|
163
163
|
message: string;
|
|
164
|
-
stack?: string
|
|
164
|
+
stack?: string;
|
|
165
165
|
cause?: unknown;
|
|
166
166
|
};
|
|
167
|
-
new (message?: string
|
|
167
|
+
new (message?: string, options?: ErrorOptions): {
|
|
168
168
|
name: string;
|
|
169
169
|
message: string;
|
|
170
|
-
stack?: string
|
|
170
|
+
stack?: string;
|
|
171
171
|
cause?: unknown;
|
|
172
172
|
};
|
|
173
|
-
captureStackTrace(targetObject: object, constructorOpt?: Function
|
|
173
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
174
174
|
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
175
175
|
stackTraceLimit: number;
|
|
176
176
|
};
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
+
} | undefined): Property;
|
|
55
|
+
static data(name: any, value: any, { writable, configurable, enumerable }?: {
|
|
56
|
+
writable: any;
|
|
57
|
+
configurable: any;
|
|
58
|
+
enumerable: any;
|
|
59
|
+
}): Property;
|
|
60
|
+
static from(object: any, name: any): Property;
|
|
61
|
+
static get is(): {
|
|
62
|
+
object(value: any): any;
|
|
63
|
+
descriptor(object: any): boolean;
|
|
64
|
+
};
|
|
65
|
+
constructor(key: any, descriptor: any);
|
|
66
|
+
key: string | symbol;
|
|
67
|
+
set descriptor(descriptor: {
|
|
68
|
+
enumerable: any;
|
|
69
|
+
configurable: any;
|
|
70
|
+
});
|
|
71
|
+
get descriptor(): {
|
|
72
|
+
enumerable: any;
|
|
73
|
+
configurable: any;
|
|
74
|
+
};
|
|
75
|
+
apply(toObject: any, asKey: any): any;
|
|
76
|
+
get is(): {
|
|
77
|
+
readonly accessor: boolean;
|
|
78
|
+
readonly data: boolean;
|
|
79
|
+
};
|
|
80
|
+
toString(colors?: boolean, { key, descriptor }?: {
|
|
81
|
+
key: any;
|
|
82
|
+
descriptor: any;
|
|
83
|
+
}): string;
|
|
84
|
+
}
|
|
85
|
+
export const PropertyExtensions: Extension;
|
|
86
|
+
import { Extension } from '@nejs/extension';
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PropertyExtensions = exports.Property = void 0;
|
|
4
|
+
const extension_1 = require("@nejs/extension");
|
|
5
|
+
class Property {
|
|
6
|
+
constructor(key, descriptor) {
|
|
7
|
+
if (key.startsWith(':'))
|
|
8
|
+
key = Symbol.for(key.slice(1));
|
|
9
|
+
if (typeof key !== 'string' && typeof key !== 'symbol') {
|
|
10
|
+
throw new TypeError('Key or symbol or :symbol must be supplied!');
|
|
11
|
+
}
|
|
12
|
+
this.key = key;
|
|
13
|
+
if (!Property.is.descriptor(descriptor)) {
|
|
14
|
+
this.descriptor = {
|
|
15
|
+
value: descriptor,
|
|
16
|
+
writable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
enumerable: true,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.descriptor = descriptor;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
apply(toObject, asKey) {
|
|
26
|
+
if (!toObject || !['object', 'function'].some(k => k == typeof toObject))
|
|
27
|
+
return;
|
|
28
|
+
return Object.defineProperty(toObject, asKey ?? this.key, this.descriptor);
|
|
29
|
+
}
|
|
30
|
+
get descriptor() {
|
|
31
|
+
const baseline = { configurable: true, enumerable: false };
|
|
32
|
+
const result = {
|
|
33
|
+
enumerable: this.meta.enumerable,
|
|
34
|
+
configurable: this.meta.configurable,
|
|
35
|
+
};
|
|
36
|
+
if (this.is.accessor) {
|
|
37
|
+
result.get = this.meta.accessor.get;
|
|
38
|
+
result.set = this.meta.accessor.set;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
result.value = this.meta.data.value;
|
|
42
|
+
result.writable = this.meta.data.writable;
|
|
43
|
+
}
|
|
44
|
+
return Object.defineProperties(result, {
|
|
45
|
+
make: {
|
|
46
|
+
...baseline,
|
|
47
|
+
get() {
|
|
48
|
+
const self = this;
|
|
49
|
+
return {
|
|
50
|
+
get enumerable() { self.enumerable = true; return self; },
|
|
51
|
+
get hidden() { self.enumerable = false; return self; },
|
|
52
|
+
get writable() { self.writable = true; return self; },
|
|
53
|
+
get readonly() { self.writable = false; return self; },
|
|
54
|
+
get configurable() { self.configurable = true; return self; },
|
|
55
|
+
get immutable() { self.configurable = false; return self; },
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
is: {
|
|
60
|
+
...baseline,
|
|
61
|
+
get() {
|
|
62
|
+
const self = this;
|
|
63
|
+
return {
|
|
64
|
+
get accessor() { return self.is.accssor; },
|
|
65
|
+
get data() { return self.is.data; }
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
set descriptor(descriptor) {
|
|
72
|
+
const { is } = this.constructor;
|
|
73
|
+
if (!is.descriptor(descriptor))
|
|
74
|
+
return;
|
|
75
|
+
this.meta.configurable = descriptor.configurable ?? true;
|
|
76
|
+
this.meta.enumerable = descriptor.enumerable ?? true;
|
|
77
|
+
if (Reflect.has(descriptor, 'get') || Reflect.has(descriptor, 'set')) {
|
|
78
|
+
const { get, set } = descriptor;
|
|
79
|
+
if (get !== undefined)
|
|
80
|
+
this.meta.accessor.get = get;
|
|
81
|
+
if (set !== undefined)
|
|
82
|
+
this.meta.accessor.set = set;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const { value, writable } = descriptor;
|
|
86
|
+
this.meta.data.value = value;
|
|
87
|
+
this.meta.data.writable = writable ?? true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
get is() {
|
|
91
|
+
const self = this;
|
|
92
|
+
return {
|
|
93
|
+
get accessor() {
|
|
94
|
+
return !!(self.meta.accessor.get ||
|
|
95
|
+
self.meta.accessor.set);
|
|
96
|
+
},
|
|
97
|
+
get data() {
|
|
98
|
+
return !!!this.accessor;
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
toString(colors = false, { key, descriptor } = {}) {
|
|
103
|
+
const bold = s => colors ? `\x1b[1m${s}\x1b[22m` : s;
|
|
104
|
+
const dim = s => colors ? `\x1b[2m${s}\x1b[22m` : s;
|
|
105
|
+
const red = s => colors ? `\x1b[31m${s}\x1b[39m` : s;
|
|
106
|
+
const green = s => colors ? `\x1b[32m${s}\x1b[39m` : s;
|
|
107
|
+
const blue = s => colors ? `\x1b[34m${s}\x1b[39m` : s;
|
|
108
|
+
if (!key)
|
|
109
|
+
({ key } = this);
|
|
110
|
+
if (!descriptor || !Property.is.descriptor(descriptor))
|
|
111
|
+
({ descriptor } = this);
|
|
112
|
+
const buffer = [`${bold(key)} { `];
|
|
113
|
+
const keyPresent = (object) => (key) => Reflect.has(object, key);
|
|
114
|
+
const eqeq = (value, compare = (a, b) => a === b) => (element) => compare(element, value);
|
|
115
|
+
if (['get', 'set'].some(keyPresent(descriptor))) {
|
|
116
|
+
if (descriptor.get) {
|
|
117
|
+
buffer.push(blue('getter'));
|
|
118
|
+
if (descriptor.set) {
|
|
119
|
+
buffer.push(bold('|'));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (descriptor.set) {
|
|
123
|
+
buffer.push(blue('setter'));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
buffer.push(green('value'));
|
|
128
|
+
buffer.push(bold('|'));
|
|
129
|
+
buffer.push(descriptor.writable ? green('writable') : red('readonly'));
|
|
130
|
+
}
|
|
131
|
+
buffer.push(' ');
|
|
132
|
+
buffer.push(descriptor.configurable ? green('mutable') : red('immuatable'));
|
|
133
|
+
buffer.push(' ');
|
|
134
|
+
buffer.push(descriptor.enumerable ? green('visible') : red('hidden'));
|
|
135
|
+
buffer.push(' }');
|
|
136
|
+
return buffer.join('');
|
|
137
|
+
}
|
|
138
|
+
[Symbol.for('nodejs.util.inspect.custom')](depth, options, inspect) {
|
|
139
|
+
return this.toString(true);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Creates an accessor property with customizable getter and setter functions.
|
|
143
|
+
*
|
|
144
|
+
* This method offers flexible ways to define accessor properties, including
|
|
145
|
+
* support for storage-based getters and setters. It can handle various input
|
|
146
|
+
* formats, making it versatile for different use cases.
|
|
147
|
+
*
|
|
148
|
+
* @param {string} name - The name of the accessor property.
|
|
149
|
+
* @param {Object} accessors - Object containing getter and/or setter functions.
|
|
150
|
+
* @param {Function} [accessors.get] - Getter function for the property.
|
|
151
|
+
* @param {Function} [accessors.set] - Setter function for the property.
|
|
152
|
+
* @param {Object} [accessors.prototype] - Prototype object for getter/setter.
|
|
153
|
+
* @param {Object} [options] - Additional options for the accessor property.
|
|
154
|
+
* @param {boolean} [options.configurable=true] - Whether property is configurable.
|
|
155
|
+
* @param {boolean} [options.enumerable=true] - Whether property is enumerable.
|
|
156
|
+
* @param {Object} [options.storage] - Storage object for getter/setter closures.
|
|
157
|
+
* @returns {Property} A new Property instance representing the accessor.
|
|
158
|
+
* @throws {TypeError} If no name, getter, or setter is provided.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* // Basic usage
|
|
162
|
+
* Property.accessor('color', {
|
|
163
|
+
* get() { return this._color; },
|
|
164
|
+
* set(value) { this._color = value; }
|
|
165
|
+
* });
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* // Using storage
|
|
169
|
+
* Property.accessor('keyword', {
|
|
170
|
+
* get(storage) { return () => storage.keyword; },
|
|
171
|
+
* set(storage) { return (value) => { storage.keyword = value; } }
|
|
172
|
+
* }, { storage: { keyword: 'initial' } });
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* // Using named getter function
|
|
176
|
+
* Property.accessor('color', function get() { return 'red' })
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* // Using prototype
|
|
180
|
+
* const ColorAccessors = {
|
|
181
|
+
* red: { get() { return this._red; } }
|
|
182
|
+
* };
|
|
183
|
+
* Property.accessor('red', ColorAccessors.red);
|
|
184
|
+
*/
|
|
185
|
+
static accessor(name, { get, set, prototype }, { configurable, enumerable, storage } = {}) {
|
|
186
|
+
if (!get && !set && prototype) {
|
|
187
|
+
const constructor = prototype?.constructor;
|
|
188
|
+
if (constructor?.name === 'get') {
|
|
189
|
+
get = constructor;
|
|
190
|
+
}
|
|
191
|
+
else if (constructor?.name === 'set') {
|
|
192
|
+
set = constructor;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
if (get && storage && get.length == 1) {
|
|
196
|
+
get = get(storage);
|
|
197
|
+
}
|
|
198
|
+
if (set && storage && set.length == 1) {
|
|
199
|
+
set = set(storage);
|
|
200
|
+
}
|
|
201
|
+
if (!name && !get && !set)
|
|
202
|
+
throw new TypeError('Cannot create accessor');
|
|
203
|
+
configurable ??= true;
|
|
204
|
+
enumerable ??= true;
|
|
205
|
+
return new Property(name, { get, set, configurable, enumerable });
|
|
206
|
+
}
|
|
207
|
+
static data(name, value, { writable, configurable, enumerable } = {}) {
|
|
208
|
+
if (!name)
|
|
209
|
+
throw new TypeError('Cannot create data property without name');
|
|
210
|
+
writable ??= true;
|
|
211
|
+
configurable ??= true;
|
|
212
|
+
enumerable ??= true;
|
|
213
|
+
return new Property(name, { value, writable, configurable, enumerable });
|
|
214
|
+
}
|
|
215
|
+
static from(object, name) {
|
|
216
|
+
const descriptor = Object.getOwnPropertyDescriptor(object, name);
|
|
217
|
+
return new Property(name, descriptor);
|
|
218
|
+
}
|
|
219
|
+
static get is() {
|
|
220
|
+
return {
|
|
221
|
+
object(value) {
|
|
222
|
+
return value && ['object', 'function'].some(k => k == typeof value);
|
|
223
|
+
},
|
|
224
|
+
descriptor(object) {
|
|
225
|
+
if (!Property.is.object(object)) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
const present = element => Reflect.has(object, element);
|
|
229
|
+
const props = {
|
|
230
|
+
base: ['configurable', 'enumerable'],
|
|
231
|
+
data: ['writable', 'value'],
|
|
232
|
+
accessor: ['get', 'set'],
|
|
233
|
+
};
|
|
234
|
+
if (Object.getOwnPropertyNames(object).length > 4)
|
|
235
|
+
return false;
|
|
236
|
+
if (props.data.some(present) && props.accessor.some(present))
|
|
237
|
+
return false;
|
|
238
|
+
if (props.base.some(present))
|
|
239
|
+
return true;
|
|
240
|
+
if (props.data.some(present))
|
|
241
|
+
return true;
|
|
242
|
+
if (props.accessor.some(present))
|
|
243
|
+
return true;
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
static {
|
|
249
|
+
const storage = Object.assign(Object.create(null), {
|
|
250
|
+
key: undefined,
|
|
251
|
+
meta: {
|
|
252
|
+
enumerable: true,
|
|
253
|
+
configurable: true,
|
|
254
|
+
accessor: {
|
|
255
|
+
get: undefined,
|
|
256
|
+
set: undefined
|
|
257
|
+
},
|
|
258
|
+
data: {
|
|
259
|
+
value: undefined,
|
|
260
|
+
writable: true
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
});
|
|
264
|
+
basic_accessor(this.prototype, 'key', storage.key, storage);
|
|
265
|
+
basic_accessor(this.prototype, 'meta', storage.meta, storage);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
exports.Property = Property;
|
|
269
|
+
exports.PropertyExtensions = new extension_1.Extension(Property);
|
|
270
|
+
function basic_accessor(prototype, key, initialValue, storage = {}) {
|
|
271
|
+
storage[key] = initialValue;
|
|
272
|
+
Object.defineProperty(prototype, key, {
|
|
273
|
+
get() {
|
|
274
|
+
return storage[key];
|
|
275
|
+
},
|
|
276
|
+
set(value) {
|
|
277
|
+
storage[key] = value;
|
|
278
|
+
},
|
|
279
|
+
enumerable: true,
|
|
280
|
+
configurable: true,
|
|
281
|
+
});
|
|
282
|
+
return Object.getOwnPropertyDescriptor(prototype, key);
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=property.js.map
|