@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.
- package/README.md +78 -4
- package/dist/@nejs/basic-extensions.bundle.2.22.6.js +25 -0
- package/dist/@nejs/basic-extensions.bundle.2.22.6.js.map +7 -0
- package/dist/cjs/classes/index.cjs +11129 -0
- package/dist/cjs/classes/index.cjs.map +7 -0
- package/dist/cjs/index.cjs +15191 -0
- package/dist/cjs/index.cjs.map +7 -0
- package/dist/cjs/utils/index.cjs +3954 -0
- package/dist/cjs/utils/index.cjs.map +7 -0
- package/dist/esm/basic-extensions.mjs +25 -0
- package/dist/esm/basic-extensions.mjs.map +7 -0
- package/package.json +16 -22
- package/repl.bootstrap.js +4 -7
- package/repl.history +26 -26
- package/src/classes/enumeration.js +466 -0
- package/src/classes/index.js +5 -1
- package/src/index.js +3 -1
- package/src/regular.expression.extensions.js +0 -35
- package/src/utils/toolkit.js +699 -516
- package/tests/arrayextensions.test.js +3 -3
- package/tests/index.test.js +3 -1
- package/tests/newClasses/asyncIterable.test.js +3 -3
- package/tests/newClasses/deferred.test.js +3 -3
- package/tests/newClasses/descriptor.test.js +3 -3
- package/tests/newClasses/iterable.test.js +3 -3
- package/tests/newClasses/refmap.test.js +3 -3
- package/tests/newClasses/refset.test.js +3 -3
- package/tests/objectextensions.test.js +3 -3
- package/tests/setextensions.test.js +3 -3
- package/tests/stringextensions.test.js +3 -2
- package/tests/utils/descriptor.utils.test.js +1 -1
- package/tests/utils/toolkit.test.js +429 -163
- package/.esdoc.json +0 -9
- package/.vscode/settings.json +0 -5
- package/bin/build +0 -27
- package/bin/clean +0 -14
- package/bin/esbuild +0 -91
- package/bin/fixup +0 -13
- package/bin/repl.basics.js +0 -584
- package/bin/repl.signature.js +0 -63
- package/bin/version +0 -100
- package/dist/@nejs/basic-extensions.bundle.2.21.5.js +0 -25
- package/dist/@nejs/basic-extensions.bundle.2.21.5.js.map +0 -7
- package/dist/cjs/array.extensions.d.ts +0 -39
- package/dist/cjs/array.extensions.js +0 -477
- package/dist/cjs/array.extensions.js.map +0 -1
- package/dist/cjs/big.int.extension.d.ts +0 -31
- package/dist/cjs/big.int.extension.js +0 -273
- package/dist/cjs/big.int.extension.js.map +0 -1
- package/dist/cjs/classes/asyncIterable.d.ts +0 -126
- package/dist/cjs/classes/asyncIterable.js +0 -209
- package/dist/cjs/classes/asyncIterable.js.map +0 -1
- package/dist/cjs/classes/deferred.d.ts +0 -146
- package/dist/cjs/classes/deferred.js +0 -291
- package/dist/cjs/classes/deferred.js.map +0 -1
- package/dist/cjs/classes/descriptor.d.ts +0 -334
- package/dist/cjs/classes/descriptor.js +0 -537
- package/dist/cjs/classes/descriptor.js.map +0 -1
- package/dist/cjs/classes/enum.d.ts +0 -50
- package/dist/cjs/classes/enum.js +0 -405
- package/dist/cjs/classes/enum.js.map +0 -1
- package/dist/cjs/classes/index.d.ts +0 -15
- package/dist/cjs/classes/index.js +0 -63
- package/dist/cjs/classes/index.js.map +0 -1
- package/dist/cjs/classes/introspector.d.ts +0 -20
- package/dist/cjs/classes/introspector.js +0 -130
- package/dist/cjs/classes/introspector.js.map +0 -1
- package/dist/cjs/classes/iterable.d.ts +0 -169
- package/dist/cjs/classes/iterable.js +0 -268
- package/dist/cjs/classes/iterable.js.map +0 -1
- package/dist/cjs/classes/param.parser.d.ts +0 -221
- package/dist/cjs/classes/param.parser.js +0 -242
- package/dist/cjs/classes/param.parser.js.map +0 -1
- package/dist/cjs/classes/pluggable.proxy.d.ts +0 -153
- package/dist/cjs/classes/pluggable.proxy.js +0 -444
- package/dist/cjs/classes/pluggable.proxy.js.map +0 -1
- package/dist/cjs/classes/property.d.ts +0 -79
- package/dist/cjs/classes/property.js +0 -284
- package/dist/cjs/classes/property.js.map +0 -1
- package/dist/cjs/classes/refmap.d.ts +0 -238
- package/dist/cjs/classes/refmap.js +0 -421
- package/dist/cjs/classes/refmap.js.map +0 -1
- package/dist/cjs/classes/refset.d.ts +0 -186
- package/dist/cjs/classes/refset.js +0 -370
- package/dist/cjs/classes/refset.js.map +0 -1
- package/dist/cjs/classes/symkeys.d.ts +0 -349
- package/dist/cjs/classes/symkeys.js +0 -510
- package/dist/cjs/classes/symkeys.js.map +0 -1
- package/dist/cjs/classes/type.d.ts +0 -56
- package/dist/cjs/classes/type.js +0 -405
- package/dist/cjs/classes/type.js.map +0 -1
- package/dist/cjs/function.extensions.d.ts +0 -12
- package/dist/cjs/function.extensions.js +0 -758
- package/dist/cjs/function.extensions.js.map +0 -1
- package/dist/cjs/global.this.d.ts +0 -2
- package/dist/cjs/global.this.js +0 -300
- package/dist/cjs/global.this.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -31
- package/dist/cjs/index.js +0 -228
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/json.extensions.d.ts +0 -2
- package/dist/cjs/json.extensions.js +0 -109
- package/dist/cjs/json.extensions.js.map +0 -1
- package/dist/cjs/map.extensions.d.ts +0 -3
- package/dist/cjs/map.extensions.js +0 -143
- package/dist/cjs/map.extensions.js.map +0 -1
- package/dist/cjs/math.extension.d.ts +0 -14
- package/dist/cjs/math.extension.js +0 -71
- package/dist/cjs/math.extension.js.map +0 -1
- package/dist/cjs/number.extension.d.ts +0 -44
- package/dist/cjs/number.extension.js +0 -278
- package/dist/cjs/number.extension.js.map +0 -1
- package/dist/cjs/object.extensions.d.ts +0 -33
- package/dist/cjs/object.extensions.js +0 -1091
- package/dist/cjs/object.extensions.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/proxy.extensions.d.ts +0 -2
- package/dist/cjs/proxy.extensions.js +0 -207
- package/dist/cjs/proxy.extensions.js.map +0 -1
- package/dist/cjs/reflect.extensions.d.ts +0 -14
- package/dist/cjs/reflect.extensions.js +0 -316
- package/dist/cjs/reflect.extensions.js.map +0 -1
- package/dist/cjs/regular.expression.extensions.d.ts +0 -2
- package/dist/cjs/regular.expression.extensions.js +0 -423
- package/dist/cjs/regular.expression.extensions.js.map +0 -1
- package/dist/cjs/set.extensions.d.ts +0 -40
- package/dist/cjs/set.extensions.js +0 -355
- package/dist/cjs/set.extensions.js.map +0 -1
- package/dist/cjs/string.extensions.d.ts +0 -23
- package/dist/cjs/string.extensions.js +0 -704
- package/dist/cjs/string.extensions.js.map +0 -1
- package/dist/cjs/symbol.extensions.d.ts +0 -11
- package/dist/cjs/symbol.extensions.js +0 -735
- package/dist/cjs/symbol.extensions.js.map +0 -1
- package/dist/cjs/utils/copy.object.d.ts +0 -408
- package/dist/cjs/utils/copy.object.js +0 -720
- package/dist/cjs/utils/copy.object.js.map +0 -1
- package/dist/cjs/utils/descriptor.utils.d.ts +0 -298
- package/dist/cjs/utils/descriptor.utils.js +0 -889
- package/dist/cjs/utils/descriptor.utils.js.map +0 -1
- package/dist/cjs/utils/index.d.ts +0 -75
- package/dist/cjs/utils/index.js +0 -61
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/stdout.d.ts +0 -742
- package/dist/cjs/utils/stdout.js +0 -1042
- package/dist/cjs/utils/stdout.js.map +0 -1
- package/dist/cjs/utils/toolkit.d.ts +0 -1898
- package/dist/cjs/utils/toolkit.js +0 -1378
- package/dist/cjs/utils/toolkit.js.map +0 -1
- package/dist/cjs/weakref.extensions.d.ts +0 -2
- package/dist/cjs/weakref.extensions.js +0 -19
- package/dist/cjs/weakref.extensions.js.map +0 -1
- package/dist/mjs/array.extensions.d.ts +0 -39
- package/dist/mjs/array.extensions.js +0 -474
- package/dist/mjs/array.extensions.js.map +0 -1
- package/dist/mjs/big.int.extension.d.ts +0 -31
- package/dist/mjs/big.int.extension.js +0 -270
- package/dist/mjs/big.int.extension.js.map +0 -1
- package/dist/mjs/classes/asyncIterable.d.ts +0 -126
- package/dist/mjs/classes/asyncIterable.js +0 -204
- package/dist/mjs/classes/asyncIterable.js.map +0 -1
- package/dist/mjs/classes/deferred.d.ts +0 -146
- package/dist/mjs/classes/deferred.js +0 -287
- package/dist/mjs/classes/deferred.js.map +0 -1
- package/dist/mjs/classes/descriptor.d.ts +0 -334
- package/dist/mjs/classes/descriptor.js +0 -533
- package/dist/mjs/classes/descriptor.js.map +0 -1
- package/dist/mjs/classes/enum.d.ts +0 -50
- package/dist/mjs/classes/enum.js +0 -400
- package/dist/mjs/classes/enum.js.map +0 -1
- package/dist/mjs/classes/index.d.ts +0 -15
- package/dist/mjs/classes/index.js +0 -46
- package/dist/mjs/classes/index.js.map +0 -1
- package/dist/mjs/classes/introspector.d.ts +0 -20
- package/dist/mjs/classes/introspector.js +0 -126
- package/dist/mjs/classes/introspector.js.map +0 -1
- package/dist/mjs/classes/iterable.d.ts +0 -169
- package/dist/mjs/classes/iterable.js +0 -263
- package/dist/mjs/classes/iterable.js.map +0 -1
- package/dist/mjs/classes/param.parser.d.ts +0 -221
- package/dist/mjs/classes/param.parser.js +0 -238
- package/dist/mjs/classes/param.parser.js.map +0 -1
- package/dist/mjs/classes/pluggable.proxy.d.ts +0 -153
- package/dist/mjs/classes/pluggable.proxy.js +0 -438
- package/dist/mjs/classes/pluggable.proxy.js.map +0 -1
- package/dist/mjs/classes/property.d.ts +0 -79
- package/dist/mjs/classes/property.js +0 -280
- package/dist/mjs/classes/property.js.map +0 -1
- package/dist/mjs/classes/refmap.d.ts +0 -238
- package/dist/mjs/classes/refmap.js +0 -417
- package/dist/mjs/classes/refmap.js.map +0 -1
- package/dist/mjs/classes/refset.d.ts +0 -186
- package/dist/mjs/classes/refset.js +0 -366
- package/dist/mjs/classes/refset.js.map +0 -1
- package/dist/mjs/classes/symkeys.d.ts +0 -349
- package/dist/mjs/classes/symkeys.js +0 -506
- package/dist/mjs/classes/symkeys.js.map +0 -1
- package/dist/mjs/classes/type.d.ts +0 -56
- package/dist/mjs/classes/type.js +0 -401
- package/dist/mjs/classes/type.js.map +0 -1
- package/dist/mjs/function.extensions.d.ts +0 -12
- package/dist/mjs/function.extensions.js +0 -755
- package/dist/mjs/function.extensions.js.map +0 -1
- package/dist/mjs/global.this.d.ts +0 -2
- package/dist/mjs/global.this.js +0 -264
- package/dist/mjs/global.this.js.map +0 -1
- package/dist/mjs/index.d.ts +0 -31
- package/dist/mjs/index.js +0 -206
- package/dist/mjs/index.js.map +0 -1
- package/dist/mjs/json.extensions.d.ts +0 -2
- package/dist/mjs/json.extensions.js +0 -106
- package/dist/mjs/json.extensions.js.map +0 -1
- package/dist/mjs/map.extensions.d.ts +0 -3
- package/dist/mjs/map.extensions.js +0 -140
- package/dist/mjs/map.extensions.js.map +0 -1
- package/dist/mjs/math.extension.d.ts +0 -14
- package/dist/mjs/math.extension.js +0 -68
- package/dist/mjs/math.extension.js.map +0 -1
- package/dist/mjs/number.extension.d.ts +0 -44
- package/dist/mjs/number.extension.js +0 -275
- package/dist/mjs/number.extension.js.map +0 -1
- package/dist/mjs/object.extensions.d.ts +0 -33
- package/dist/mjs/object.extensions.js +0 -1088
- package/dist/mjs/object.extensions.js.map +0 -1
- package/dist/mjs/package.json +0 -3
- package/dist/mjs/proxy.extensions.d.ts +0 -2
- package/dist/mjs/proxy.extensions.js +0 -204
- package/dist/mjs/proxy.extensions.js.map +0 -1
- package/dist/mjs/reflect.extensions.d.ts +0 -14
- package/dist/mjs/reflect.extensions.js +0 -313
- package/dist/mjs/reflect.extensions.js.map +0 -1
- package/dist/mjs/regular.expression.extensions.d.ts +0 -2
- package/dist/mjs/regular.expression.extensions.js +0 -420
- package/dist/mjs/regular.expression.extensions.js.map +0 -1
- package/dist/mjs/set.extensions.d.ts +0 -40
- package/dist/mjs/set.extensions.js +0 -352
- package/dist/mjs/set.extensions.js.map +0 -1
- package/dist/mjs/string.extensions.d.ts +0 -23
- package/dist/mjs/string.extensions.js +0 -701
- package/dist/mjs/string.extensions.js.map +0 -1
- package/dist/mjs/symbol.extensions.d.ts +0 -11
- package/dist/mjs/symbol.extensions.js +0 -732
- package/dist/mjs/symbol.extensions.js.map +0 -1
- package/dist/mjs/utils/copy.object.d.ts +0 -408
- package/dist/mjs/utils/copy.object.js +0 -702
- package/dist/mjs/utils/copy.object.js.map +0 -1
- package/dist/mjs/utils/descriptor.utils.d.ts +0 -298
- package/dist/mjs/utils/descriptor.utils.js +0 -875
- package/dist/mjs/utils/descriptor.utils.js.map +0 -1
- package/dist/mjs/utils/index.d.ts +0 -75
- package/dist/mjs/utils/index.js +0 -45
- package/dist/mjs/utils/index.js.map +0 -1
- package/dist/mjs/utils/stdout.d.ts +0 -742
- package/dist/mjs/utils/stdout.js +0 -1037
- package/dist/mjs/utils/stdout.js.map +0 -1
- package/dist/mjs/utils/toolkit.d.ts +0 -1898
- package/dist/mjs/utils/toolkit.js +0 -1373
- package/dist/mjs/utils/toolkit.js.map +0 -1
- package/dist/mjs/weakref.extensions.d.ts +0 -2
- package/dist/mjs/weakref.extensions.js +0 -16
- package/dist/mjs/weakref.extensions.js.map +0 -1
- package/jsdoc-config.json +0 -31
- package/tsconfig.base.json +0 -28
- package/tsconfig.cjs.json +0 -8
- package/tsconfig.esm.json +0 -8
- package/vitest.config.js +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.extensions.js","sourceRoot":"","sources":["../../src/object.extensions.js"],"names":[],"mappings":"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"}
|
package/dist/cjs/package.json
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProxyExtensions = void 0;
|
|
4
|
-
const extension_1 = require("@nejs/extension");
|
|
5
|
-
const object_extensions_js_1 = require("./object.extensions.js");
|
|
6
|
-
const string_extensions_js_1 = require("./string.extensions.js");
|
|
7
|
-
const symkeys_js_1 = require("./classes/symkeys.js");
|
|
8
|
-
const { isObject } = object_extensions_js_1.ObjectExtensions.patches;
|
|
9
|
-
const { isString } = string_extensions_js_1.StringExtensions.patches;
|
|
10
|
-
const keys = new symkeys_js_1.Symkeys('nejs.proxy');
|
|
11
|
-
exports.ProxyExtensions = new extension_1.Patch(Proxy, {
|
|
12
|
-
[extension_1.Patch.kImmutablyHidden]: {
|
|
13
|
-
/**
|
|
14
|
-
* Getter method for the 'keys' property.
|
|
15
|
-
*
|
|
16
|
-
* This method returns the 'keys' object which is an instance of the
|
|
17
|
-
* Symkeys class. The Symkeys class provides a way to easily generate
|
|
18
|
-
* Symbol.for elements that follow a particular pattern and also allows
|
|
19
|
-
* associated data storage with each generated key.
|
|
20
|
-
*
|
|
21
|
-
* @returns {Symkeys} The 'keys' object.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* const proxyExtensions = new ProxyExtensions();
|
|
25
|
-
* const kCustomKeyForMyProxy = Proxy.keys.add('mything', { thing: ... })
|
|
26
|
-
*
|
|
27
|
-
* new Proxy(object, {
|
|
28
|
-
* get(target, property, receiver) {
|
|
29
|
-
* if (property === kCustomKeyForMyProxy) {
|
|
30
|
-
* // use associated data
|
|
31
|
-
* return kCustomKeyForMyProxy.data.thing
|
|
32
|
-
* }
|
|
33
|
-
* return Reflect.get(target, property, receiver)
|
|
34
|
-
* }
|
|
35
|
-
* })
|
|
36
|
-
*/
|
|
37
|
-
get keys() {
|
|
38
|
-
return keys;
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
[extension_1.Patch.kMutablyHidden]: {
|
|
42
|
-
/**
|
|
43
|
-
* This method generates an object based on the trap type and values
|
|
44
|
-
* provided. The trap type is a string that corresponds to a Proxy handler
|
|
45
|
-
* method, and the values are either an array or an object that maps to
|
|
46
|
-
* the parameters of the handler method.
|
|
47
|
-
*
|
|
48
|
-
* If the trap type is not a valid Proxy handler method, the function
|
|
49
|
-
* returns undefined. If the values are an array, they are mapped to the
|
|
50
|
-
* parameters of the handler method in order. If the values are an object,
|
|
51
|
-
* only the entries that correspond to the parameters of the handler
|
|
52
|
-
* method are used.
|
|
53
|
-
*
|
|
54
|
-
* @param {array | string} trapType - Either a key into the Proxy.types
|
|
55
|
-
* object or the value that such a key might point to (i.e. an array of
|
|
56
|
-
* string names, in order, that the trap of the same name expects)
|
|
57
|
-
* @param {array | object} values - The values to be used for the trap
|
|
58
|
-
* parameters.
|
|
59
|
-
* @returns {object} An object that maps the trap parameters to the
|
|
60
|
-
* provided values.
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* // note that when values is an array, the order needs to match the
|
|
64
|
-
* // order of expected parameters for the trap function or the behavior
|
|
65
|
-
* // is undefined.
|
|
66
|
-
* trapParams('get', [
|
|
67
|
-
* 'target',
|
|
68
|
-
* 'property',
|
|
69
|
-
* 'receiver'
|
|
70
|
-
* ])
|
|
71
|
-
* // Returns: {
|
|
72
|
-
* // target: 'target', property: 'property', receiver: 'receiver'
|
|
73
|
-
* // }
|
|
74
|
-
*
|
|
75
|
-
* trapParams(Proxy.types.get, {
|
|
76
|
-
* target: 'target',
|
|
77
|
-
* property: 'property',
|
|
78
|
-
* receiver: 'receiver'
|
|
79
|
-
* })
|
|
80
|
-
* // Returns: {
|
|
81
|
-
* // target: 'target', property: 'property', receiver: 'receiver'
|
|
82
|
-
* // }
|
|
83
|
-
*/
|
|
84
|
-
trapParams(trapType, values) {
|
|
85
|
-
if ((isString(trapType) && !(~Proxy.types.indexOf(trapType))) ||
|
|
86
|
-
!Array.isArray(trapType)) {
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
|
-
let argumentNames = isString(trapType)
|
|
90
|
-
? Proxy.types[trapType]
|
|
91
|
-
: trapType.map(element => String(element));
|
|
92
|
-
let object = Object.create(Object.prototype);
|
|
93
|
-
if (!Array.isArray(values) && !Object.isObject(values)) {
|
|
94
|
-
values = [values];
|
|
95
|
-
for (let i = 1; i < argumentNames.length; i++) {
|
|
96
|
-
values.push(undefined);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
if (Array.isArray(values)) {
|
|
100
|
-
argumentNames.reduce((acc, argName, index) => {
|
|
101
|
-
acc[argName] = values?.[index];
|
|
102
|
-
}, object);
|
|
103
|
-
}
|
|
104
|
-
else if (isObject(values)) {
|
|
105
|
-
for (let [key, value] of Object.entries(values)) {
|
|
106
|
-
if (key in argumentNames) {
|
|
107
|
-
object[key] = value;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return object;
|
|
112
|
-
},
|
|
113
|
-
types: {
|
|
114
|
-
/**
|
|
115
|
-
* The handler.apply() method is a trap for the [[Call]] object internal
|
|
116
|
-
* method, which is used by operations such as function calls.
|
|
117
|
-
* MDN link: https://t.ly/orBsG
|
|
118
|
-
*/
|
|
119
|
-
get apply() { return ['target', 'thisArg', 'argumentsList']; },
|
|
120
|
-
/**
|
|
121
|
-
* The handler.construct() method is a trap for the [[Construct]] object
|
|
122
|
-
* internal method, which is used by operations such as the new operator.
|
|
123
|
-
* In order for the new operation to be valid on the resulting Proxy
|
|
124
|
-
* object, the target used to initialize the proxy must itself be a
|
|
125
|
-
* valid constructor.
|
|
126
|
-
* MDN link: https://t.ly/1LukS
|
|
127
|
-
*/
|
|
128
|
-
get construct() { return ['target', 'args']; },
|
|
129
|
-
/**
|
|
130
|
-
* The handler.defineProperty() method is a trap for the
|
|
131
|
-
* [[DefineOwnProperty]] object internal method, which is used by
|
|
132
|
-
* operations such as Object.defineProperty().
|
|
133
|
-
* MDN link: https://t.ly/3Ml9y
|
|
134
|
-
*/
|
|
135
|
-
get defineProperty() { return ['target', 'key', 'descriptor']; },
|
|
136
|
-
/**
|
|
137
|
-
* The handler.deleteProperty() method is a trap for the [[Delete]]
|
|
138
|
-
* object internal method, which is used by operations such as the
|
|
139
|
-
* delete operator.
|
|
140
|
-
* MDN link: https://t.ly/neu2H
|
|
141
|
-
*/
|
|
142
|
-
get deleteProperty() { return ['target', 'property']; },
|
|
143
|
-
/**
|
|
144
|
-
* The handler.get() method is a trap for the [[Get]] object internal
|
|
145
|
-
* method, which is used by operations such as property accessors.
|
|
146
|
-
* MDN link: https://t.ly/E419x
|
|
147
|
-
*/
|
|
148
|
-
get get() { return ['target', 'property', 'receiver']; },
|
|
149
|
-
/**
|
|
150
|
-
* The handler.getOwnPropertyDescriptor() method is a trap for the
|
|
151
|
-
* [[GetOwnProperty]] object internal method, which is used by operations
|
|
152
|
-
* such as Object.getOwnPropertyDescriptor().
|
|
153
|
-
* MDN link: https://t.ly/wzPTX
|
|
154
|
-
*/
|
|
155
|
-
get getOwnPropertyDescriptor() { return ['target', 'property']; },
|
|
156
|
-
/**
|
|
157
|
-
* The handler.getPrototypeOf() method is a trap for the
|
|
158
|
-
* [[GetPrototypeOf]] object internal method, which is used by operations
|
|
159
|
-
* such as Object.getPrototypeOf().
|
|
160
|
-
* MDN link: https://t.ly/Ww4S1
|
|
161
|
-
*/
|
|
162
|
-
get getPrototypeOf() { return ['target']; },
|
|
163
|
-
/**
|
|
164
|
-
* The handler.has() method is a trap for the [[HasProperty]] object
|
|
165
|
-
* internal method, which is used by operations such as the in operator.
|
|
166
|
-
* MDN link: https://t.ly/UcJL-
|
|
167
|
-
*/
|
|
168
|
-
get has() { return ['target', 'prototype']; },
|
|
169
|
-
/**
|
|
170
|
-
* The handler.isExtensible() method is a trap for the [[IsExtensible]]
|
|
171
|
-
* object internal method, which is used by operations such as
|
|
172
|
-
* Object.isExtensible().
|
|
173
|
-
* MDN link: https://t.ly/MkdIK
|
|
174
|
-
*/
|
|
175
|
-
get isExtensible() { return ['target']; },
|
|
176
|
-
/**
|
|
177
|
-
* The handler.ownKeys() method is a trap for the [[OwnPropertyKeys]]
|
|
178
|
-
* object internal method, which is used by operations such as
|
|
179
|
-
* Object.keys(), Reflect.ownKeys(), etc.
|
|
180
|
-
* MDN link: https://t.ly/QkiTI
|
|
181
|
-
*/
|
|
182
|
-
get ownKeys() { return ['target']; },
|
|
183
|
-
/**
|
|
184
|
-
* The handler.preventExtensions() method is a trap for the
|
|
185
|
-
* [[PreventExtensions]] object internal method, which is used by
|
|
186
|
-
* operations such as Object.preventExtensions().
|
|
187
|
-
* MDN link: https://t.ly/nvfjJ
|
|
188
|
-
*/
|
|
189
|
-
get preventExtensions() { return ['target']; },
|
|
190
|
-
/**
|
|
191
|
-
* The handler.set() method is a trap for the [[Set]] object internal
|
|
192
|
-
* method, which is used by operations such as using property accessors
|
|
193
|
-
* to set a property's value.
|
|
194
|
-
* MDN link: https://t.ly/FDWcl
|
|
195
|
-
*/
|
|
196
|
-
get set() { return ['target', 'property', 'value', 'receiver']; },
|
|
197
|
-
/**
|
|
198
|
-
* The handler.setPrototypeOf() method is a trap for the
|
|
199
|
-
* [[SetPrototypeOf]] object internal method, which is used by operations
|
|
200
|
-
* such as Object.setPrototypeOf().
|
|
201
|
-
* MDN link: https://t.ly/pS8ej
|
|
202
|
-
*/
|
|
203
|
-
get setPrototypeOf() { return ['target', 'prototype']; },
|
|
204
|
-
},
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
//# sourceMappingURL=proxy.extensions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.extensions.js","sourceRoot":"","sources":["../../src/proxy.extensions.js"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `ReflectExtensions` class is a patch applied to the built-in JavaScript
|
|
3
|
-
* `Reflect` object. It extends `Reflect` with additional utility methods that
|
|
4
|
-
* enhance its capabilities. These methods provide more advanced ways of
|
|
5
|
-
* interacting with object properties, such as checking for the presence of
|
|
6
|
-
* multiple keys at once (`hasAll`) or verifying if at least one specified key
|
|
7
|
-
* exists in an object (`hasSome`). This class is part of the `@nejs/extension`
|
|
8
|
-
* library and is designed to offer these extended functionalities in a way
|
|
9
|
-
* that is consistent with the existing `Reflect` API, making it intuitive for
|
|
10
|
-
* developers who are already familiar with standard reflection methods in
|
|
11
|
-
* JavaScript.
|
|
12
|
-
*/
|
|
13
|
-
export const ReflectExtensions: Patch;
|
|
14
|
-
import { Patch } from '@nejs/extension';
|
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReflectExtensions = void 0;
|
|
4
|
-
const extension_1 = require("@nejs/extension");
|
|
5
|
-
/**
|
|
6
|
-
* The `ReflectExtensions` class is a patch applied to the built-in JavaScript
|
|
7
|
-
* `Reflect` object. It extends `Reflect` with additional utility methods that
|
|
8
|
-
* enhance its capabilities. These methods provide more advanced ways of
|
|
9
|
-
* interacting with object properties, such as checking for the presence of
|
|
10
|
-
* multiple keys at once (`hasAll`) or verifying if at least one specified key
|
|
11
|
-
* exists in an object (`hasSome`). This class is part of the `@nejs/extension`
|
|
12
|
-
* library and is designed to offer these extended functionalities in a way
|
|
13
|
-
* that is consistent with the existing `Reflect` API, making it intuitive for
|
|
14
|
-
* developers who are already familiar with standard reflection methods in
|
|
15
|
-
* JavaScript.
|
|
16
|
-
*/
|
|
17
|
-
exports.ReflectExtensions = new extension_1.Patch(Reflect, {
|
|
18
|
-
/**
|
|
19
|
-
* The function checks if an object has all the specified keys.
|
|
20
|
-
*
|
|
21
|
-
* @param object - The `object` parameter is the object that we want to
|
|
22
|
-
* check if it has all the specified keys.
|
|
23
|
-
* @param keys - The `keys` parameter is a rest parameter, which means
|
|
24
|
-
* it can accept any number of arguments. In this case, it is expected
|
|
25
|
-
* to receive multiple keys as arguments.
|
|
26
|
-
* @returns a boolean value.
|
|
27
|
-
*/
|
|
28
|
-
hasAll(object, ...keys) {
|
|
29
|
-
return Object.isObject(object) && (keys.flat(Infinity)
|
|
30
|
-
.map(key => Reflect.has(object, key))
|
|
31
|
-
.every(has => has));
|
|
32
|
-
},
|
|
33
|
-
/**
|
|
34
|
-
* The function checks if an object has at least one of the specified keys.
|
|
35
|
-
*
|
|
36
|
-
* @param object - The `object` parameter is the object that we want to check
|
|
37
|
-
* for the presence of certain keys.
|
|
38
|
-
* @param keys - The `keys` parameter is a rest parameter, which means it can
|
|
39
|
-
* accept any number of arguments. These arguments are the keys that we want
|
|
40
|
-
* to check if they exist in the `object`.
|
|
41
|
-
* @returns The function `hasSome` returns a boolean value indicating whether
|
|
42
|
-
* at least one of the keys provided as arguments exists in the given object.
|
|
43
|
-
*/
|
|
44
|
-
hasSome(object, ...keys) {
|
|
45
|
-
return isObject(object) && (keys.flat(Infinity)
|
|
46
|
-
.map(key => Reflect.has(object, key))
|
|
47
|
-
.some(has => has));
|
|
48
|
-
},
|
|
49
|
-
/**
|
|
50
|
-
* The `metadata` method retrieves metadata about a property of an object.
|
|
51
|
-
* It returns an object containing information about the property, such as
|
|
52
|
-
* its value, descriptor, and whether it is read-only, assignable, an
|
|
53
|
-
* accessor, or a data descriptor.
|
|
54
|
-
*
|
|
55
|
-
* @param {string} key - The name of the property.
|
|
56
|
-
* @param {object} [owner=globalThis] - The object that owns the property.
|
|
57
|
-
* If not provided, it defaults to the global object.
|
|
58
|
-
* @returns {object|undefined} An object containing metadata about the
|
|
59
|
-
* property, or `undefined` if the property does not exist or the owner is
|
|
60
|
-
* not an object.
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* const obj = { foo: 'bar' }
|
|
64
|
-
* const meta = ReflectExtensions.metadata('foo', obj)
|
|
65
|
-
* console.log(meta.value) // Outputs: 'bar'
|
|
66
|
-
* console.log(meta.isReadOnly) // Outputs: false
|
|
67
|
-
*/
|
|
68
|
-
metadata(key, owner = globalThis) {
|
|
69
|
-
const args = [{ key }, { owner }];
|
|
70
|
-
const variants = applyVariants(args)();
|
|
71
|
-
if (variants.check(0)) {
|
|
72
|
-
key = variants.object.key;
|
|
73
|
-
owner = variants.object.owner;
|
|
74
|
-
}
|
|
75
|
-
const descriptor = isObject(owner) && isValidKey(key)
|
|
76
|
-
? Object.getOwnPropertyDescriptor(owner, key)
|
|
77
|
-
: undefined;
|
|
78
|
-
const value = () => descriptor?.get?.bind(owner)?.() ?? owner[key];
|
|
79
|
-
if (!descriptor) {
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
const meta = {
|
|
83
|
-
/**
|
|
84
|
-
* A getter method that returns the owner of the property.
|
|
85
|
-
* The owner is the object that owns the property.
|
|
86
|
-
*
|
|
87
|
-
* @returns {object} The owner of the property.
|
|
88
|
-
*
|
|
89
|
-
* @example
|
|
90
|
-
* const obj = { foo: 'bar' }
|
|
91
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
92
|
-
* console.log(meta.owner) // Outputs: obj
|
|
93
|
-
*/
|
|
94
|
-
get owner() { return owner; },
|
|
95
|
-
/**
|
|
96
|
-
* A getter method that returns the key of the property.
|
|
97
|
-
* The key is the name of the property.
|
|
98
|
-
*
|
|
99
|
-
* @returns {string} The key of the property.
|
|
100
|
-
*
|
|
101
|
-
* @example
|
|
102
|
-
* const obj = { foo: 'bar' }
|
|
103
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
104
|
-
* console.log(meta.key) // Outputs: 'foo'
|
|
105
|
-
*/
|
|
106
|
-
get key() { return key; },
|
|
107
|
-
/**
|
|
108
|
-
* A getter method that returns the value of the property.
|
|
109
|
-
* The value is obtained by invoking the `value` function.
|
|
110
|
-
*
|
|
111
|
-
* @returns {*} The value of the property.
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
* const obj = { foo: 'bar' }
|
|
115
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
116
|
-
* console.log(meta.value) // Outputs: 'bar'
|
|
117
|
-
*/
|
|
118
|
-
get value() { return value(); },
|
|
119
|
-
/**
|
|
120
|
-
* A getter method that returns the descriptor of the property.
|
|
121
|
-
* The descriptor is an object that describes a property's configuration.
|
|
122
|
-
* It includes properties like value, writable, enumerable, configurable,
|
|
123
|
-
* get, and set.
|
|
124
|
-
*
|
|
125
|
-
* @returns {object} The descriptor of the property.
|
|
126
|
-
*
|
|
127
|
-
* @example
|
|
128
|
-
* const obj = { foo: 'bar' }
|
|
129
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
130
|
-
* console.log(meta.descriptor)
|
|
131
|
-
*
|
|
132
|
-
* // Outputs: {
|
|
133
|
-
* // value: 'bar',
|
|
134
|
-
* // writable: true,
|
|
135
|
-
* // enumerable: true,
|
|
136
|
-
* // configurable: true
|
|
137
|
-
* // }
|
|
138
|
-
*/
|
|
139
|
-
get descriptor() { return descriptor; },
|
|
140
|
-
/**
|
|
141
|
-
* A getter method that checks if the property is read-only.
|
|
142
|
-
* A property is considered read-only if it is an accessor property
|
|
143
|
-
* (i.e., it has a getter or a setter) and it does not have a setter.
|
|
144
|
-
* This means that the property can be read, but not written to.
|
|
145
|
-
*
|
|
146
|
-
* @returns {boolean} `true` if the property is read-only,
|
|
147
|
-
* `false` otherwise.
|
|
148
|
-
*
|
|
149
|
-
* @example
|
|
150
|
-
* const obj = {
|
|
151
|
-
* get foo() { return 'bar' }
|
|
152
|
-
* }
|
|
153
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
154
|
-
* console.log(meta.isReadOnly) // Outputs: true
|
|
155
|
-
*/
|
|
156
|
-
get isReadOnly() {
|
|
157
|
-
return this.isAccessor && !descriptor?.set;
|
|
158
|
-
},
|
|
159
|
-
/**
|
|
160
|
-
* A getter method that checks if the property is assignable.
|
|
161
|
-
* A property is considered assignable if it is either configurable
|
|
162
|
-
* or writable. Configurable properties can be modified and deleted,
|
|
163
|
-
* while writable properties can have their values changed.
|
|
164
|
-
*
|
|
165
|
-
* @returns {boolean} `true` if the property is assignable,
|
|
166
|
-
* `false` otherwise.
|
|
167
|
-
*
|
|
168
|
-
* @example
|
|
169
|
-
* const obj = { foo: 'bar' }
|
|
170
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
171
|
-
* console.log(meta.isAssignable) // Outputs: true
|
|
172
|
-
*/
|
|
173
|
-
get isAssignable() {
|
|
174
|
-
return descriptor?.configurable ?? descriptor?.writable;
|
|
175
|
-
},
|
|
176
|
-
/**
|
|
177
|
-
* A getter method that checks if the property is an accessor.
|
|
178
|
-
* An accessor property is a property that has a getter method, a setter
|
|
179
|
-
* method, or both. This method returns `true` if the property has either
|
|
180
|
-
* a getter or a setter, and `false` otherwise.
|
|
181
|
-
*
|
|
182
|
-
* @returns {boolean} `true` if the property is an accessor,
|
|
183
|
-
* `false` otherwise.
|
|
184
|
-
*
|
|
185
|
-
* @example
|
|
186
|
-
* const obj = {
|
|
187
|
-
* get foo() { return 'bar' },
|
|
188
|
-
* set foo(value) { console.log('Setting foo to', value) }
|
|
189
|
-
* }
|
|
190
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
191
|
-
* console.log(meta.isAccessor) // Outputs: true
|
|
192
|
-
*/
|
|
193
|
-
get isAccessor() {
|
|
194
|
-
return !!(this?.descriptor?.get || this?.descriptor?.set);
|
|
195
|
-
},
|
|
196
|
-
/**
|
|
197
|
-
* A getter method that checks if the property is a data property.
|
|
198
|
-
* A data property is a property that has a value and can be written to.
|
|
199
|
-
* This method returns `true` if the property has a value or is writable,
|
|
200
|
-
* and `false` otherwise.
|
|
201
|
-
*
|
|
202
|
-
* @returns {boolean} `true` if the property is a data property,
|
|
203
|
-
* `false` otherwise.
|
|
204
|
-
*
|
|
205
|
-
* @example
|
|
206
|
-
* const obj = { foo: 'bar' }
|
|
207
|
-
* const meta = Reflect.metadata('foo', obj)
|
|
208
|
-
* console.log(meta.isData) // Outputs: true
|
|
209
|
-
*/
|
|
210
|
-
get isData() {
|
|
211
|
-
return !!(this?.descriptor?.value || this?.descriptor?.writable);
|
|
212
|
-
},
|
|
213
|
-
};
|
|
214
|
-
return meta;
|
|
215
|
-
},
|
|
216
|
-
/**
|
|
217
|
-
* Fetches all descriptors of an object, including those mapped to a
|
|
218
|
-
* symbol descriptor value.
|
|
219
|
-
*
|
|
220
|
-
* @param {object} object the object from whose descriptors need to be
|
|
221
|
-
* retrieved.
|
|
222
|
-
* @returns {object} with keys mapped to object descriptors
|
|
223
|
-
* @throws {TypeError} if the supplied `object` is null or not an object
|
|
224
|
-
* a TypeError exception will be thrown
|
|
225
|
-
*/
|
|
226
|
-
ownDescriptors(object) {
|
|
227
|
-
if (!isObject(object)) {
|
|
228
|
-
throw new TypeError('The supplied object must be non-null and an object');
|
|
229
|
-
}
|
|
230
|
-
const result = {};
|
|
231
|
-
const keys = Reflect.ownKeys(object);
|
|
232
|
-
for (const key of keys) {
|
|
233
|
-
result[key] = Object.getOwnPropertyDescriptor(key);
|
|
234
|
-
}
|
|
235
|
-
return result;
|
|
236
|
-
},
|
|
237
|
-
/**
|
|
238
|
-
* Retrieves an array of [key, descriptor] pairs for each property of the
|
|
239
|
-
* provided object. This method is akin to `Object.entries` but includes
|
|
240
|
-
* property descriptors instead of the property values. It's useful for cases
|
|
241
|
-
* where you need detailed information about properties, including their
|
|
242
|
-
* configurability, enumerability, and accessors.
|
|
243
|
-
*
|
|
244
|
-
* @param {object} object - The object whose property entries are to be
|
|
245
|
-
* retrieved.
|
|
246
|
-
* @returns {Array} An array of [key, descriptor] pairs, where each pair
|
|
247
|
-
* consists of the property name (key) and its descriptor. Returns an empty
|
|
248
|
-
* array if the input is not a valid object.
|
|
249
|
-
*/
|
|
250
|
-
entries(object) {
|
|
251
|
-
if (!object || typeof object !== 'object') {
|
|
252
|
-
return [];
|
|
253
|
-
}
|
|
254
|
-
return Reflect.ownKeys(object).map(key => [
|
|
255
|
-
key, Object.getOwnPropertyDescriptor(object, key)
|
|
256
|
-
]);
|
|
257
|
-
},
|
|
258
|
-
/**
|
|
259
|
-
* Retrieves an array of values from the property descriptors of the given
|
|
260
|
-
* object. This method works similarly to `Object.values` but operates on
|
|
261
|
-
* property descriptors instead. It's useful when you need the values of
|
|
262
|
-
* properties including getters, setters, and other descriptor-specific
|
|
263
|
-
* attributes.
|
|
264
|
-
*
|
|
265
|
-
* @param {object} object - The object whose property values are to be
|
|
266
|
-
* retrieved.
|
|
267
|
-
* @returns {Array} An array of values extracted from the object's property
|
|
268
|
-
* descriptors. The values correspond to the `value` attribute in each
|
|
269
|
-
* property's descriptor. Returns an empty array if the input is not a valid
|
|
270
|
-
* object.
|
|
271
|
-
*/
|
|
272
|
-
values(object) {
|
|
273
|
-
return Reflect.entries.map(([, value]) => value);
|
|
274
|
-
},
|
|
275
|
-
});
|
|
276
|
-
function isObject(value) {
|
|
277
|
-
return value && typeof value === 'object';
|
|
278
|
-
}
|
|
279
|
-
function isValidKey(value) {
|
|
280
|
-
return ['string', 'symbol'].some(type => typeof value === type);
|
|
281
|
-
}
|
|
282
|
-
function applyVariants(thisArg) {
|
|
283
|
-
return ((function variants() {
|
|
284
|
-
const keys = this.map(o => Object.keys(o)?.[0]);
|
|
285
|
-
const entries = this.map(o => Object.entries(o)?.[0]);
|
|
286
|
-
const object = entries.reduce((acc, [key, value]) => {
|
|
287
|
-
acc[key] = value;
|
|
288
|
-
return acc;
|
|
289
|
-
}, {});
|
|
290
|
-
const result = {
|
|
291
|
-
order: keys,
|
|
292
|
-
entries: entries,
|
|
293
|
-
object: object,
|
|
294
|
-
};
|
|
295
|
-
Object.defineProperty(result, 'check', {
|
|
296
|
-
value(position) {
|
|
297
|
-
if (typeof position !== 'number' &&
|
|
298
|
-
position >= 0 &&
|
|
299
|
-
position < this.order.length) {
|
|
300
|
-
return false;
|
|
301
|
-
}
|
|
302
|
-
const value = this.entries[position][1];
|
|
303
|
-
if (typeof value === 'object' && value) {
|
|
304
|
-
if (Object.keys(value).every(key => ~this.order.indexOf(key))) {
|
|
305
|
-
return true;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
return false;
|
|
309
|
-
},
|
|
310
|
-
enumerable: false,
|
|
311
|
-
configurable: true
|
|
312
|
-
});
|
|
313
|
-
return result;
|
|
314
|
-
}).bind(thisArg));
|
|
315
|
-
}
|
|
316
|
-
//# sourceMappingURL=reflect.extensions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.extensions.js","sourceRoot":"","sources":["../../src/reflect.extensions.js"],"names":[],"mappings":"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"}
|