@nejs/basic-extensions 2.4.0 → 2.6.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.
Files changed (37) hide show
  1. package/README.md +151 -118
  2. package/dist/@nejs/basic-extensions.bundle.2.5.0.js +8 -0
  3. package/dist/@nejs/basic-extensions.bundle.2.5.0.js.map +7 -0
  4. package/dist/cjs/arrayextensions.js +56 -54
  5. package/dist/cjs/arrayextensions.js.map +1 -1
  6. package/dist/cjs/functionextensions.js +81 -79
  7. package/dist/cjs/functionextensions.js.map +1 -1
  8. package/dist/cjs/mapextensions.js +23 -21
  9. package/dist/cjs/mapextensions.js.map +1 -1
  10. package/dist/cjs/objectextensions.js +49 -17
  11. package/dist/cjs/objectextensions.js.map +1 -1
  12. package/dist/cjs/setextensions.js +191 -189
  13. package/dist/cjs/setextensions.js.map +1 -1
  14. package/dist/cjs/stringextensions.js +69 -67
  15. package/dist/cjs/stringextensions.js.map +1 -1
  16. package/dist/mjs/arrayextensions.js +56 -54
  17. package/dist/mjs/arrayextensions.js.map +1 -1
  18. package/dist/mjs/functionextensions.js +81 -79
  19. package/dist/mjs/functionextensions.js.map +1 -1
  20. package/dist/mjs/mapextensions.js +23 -21
  21. package/dist/mjs/mapextensions.js.map +1 -1
  22. package/dist/mjs/objectextensions.js +49 -17
  23. package/dist/mjs/objectextensions.js.map +1 -1
  24. package/dist/mjs/setextensions.js +191 -189
  25. package/dist/mjs/setextensions.js.map +1 -1
  26. package/dist/mjs/stringextensions.js +69 -67
  27. package/dist/mjs/stringextensions.js.map +1 -1
  28. package/docs/index.html +636 -478
  29. package/package.json +5 -4
  30. package/src/arrayextensions.js +56 -55
  31. package/src/functionextensions.js +87 -85
  32. package/src/mapextensions.js +26 -24
  33. package/src/objectextensions.js +52 -17
  34. package/src/setextensions.js +216 -214
  35. package/src/stringextensions.js +69 -67
  36. package/dist/@nejs/basic-extensions.bundle.2.3.0.js +0 -8
  37. package/dist/@nejs/basic-extensions.bundle.2.3.0.js.map +0 -7
@@ -8,61 +8,63 @@ import { Patch } from '@nejs/extension';
8
8
  * operations on arrays and makes code more expressive and concise.
9
9
  */
10
10
  export const ArrayPrototypeExtensions = new Patch(Array.prototype, {
11
- /**
12
- * Sometimes defining even a short function for the invocation of `find`
13
- * can be troublesome. This helper function performs that job for you. If
14
- * the specified element is in the array, `true` will be returned.
15
- *
16
- * @param {*} value the value to search for. This value must triple equals
17
- * the array element in order to return true.
18
- * @returns true if the exact element exists in the array, false otherwise
19
- */
20
- contains(value) {
21
- return !!this.find(entry => entry === value);
22
- },
23
- /**
24
- * The `findEntry` function searches the entries of the object and returns
25
- * the `[index, value]` entry array for the first matching value found.
26
- *
27
- * @param {function} findFn a function that takes the element to be checked
28
- * and returns a boolean value
29
- * @returns if `findFn` returns `true`, an array with two elements, the first
30
- * being the index, the second being the value, is returned.
31
- */
32
- findEntry(findFn) {
33
- const entries = this.entries();
34
- const VALUE = 1;
35
- for (let entry of entries) {
36
- if (findFn(entry[VALUE])) {
37
- return entry;
11
+ [Patch.kMutablyHidden]: {
12
+ /**
13
+ * Sometimes defining even a short function for the invocation of `find`
14
+ * can be troublesome. This helper function performs that job for you. If
15
+ * the specified element is in the array, `true` will be returned.
16
+ *
17
+ * @param {*} value the value to search for. This value must triple equals
18
+ * the array element in order to return true.
19
+ * @returns true if the exact element exists in the array, false otherwise
20
+ */
21
+ contains(value) {
22
+ return !!this.find(entry => entry === value);
23
+ },
24
+ /**
25
+ * The `findEntry` function searches the entries of the object and returns
26
+ * the `[index, value]` entry array for the first matching value found.
27
+ *
28
+ * @param {function} findFn a function that takes the element to be checked
29
+ * and returns a boolean value
30
+ * @returns if `findFn` returns `true`, an array with two elements, the first
31
+ * being the index, the second being the value, is returned.
32
+ */
33
+ findEntry(findFn) {
34
+ const entries = this.entries();
35
+ const VALUE = 1;
36
+ for (let entry of entries) {
37
+ if (findFn(entry[VALUE])) {
38
+ return entry;
39
+ }
38
40
  }
39
- }
40
- return undefined;
41
- },
42
- /**
43
- * A getter property that returns the first element of the array. If the
44
- * array is empty, it returns `undefined`. This property is useful for
45
- * scenarios where you need to quickly access the first item of an array
46
- * without the need for additional checks or method calls.
47
- *
48
- * @returns {*} The first element of the array or `undefined` if the array
49
- * is empty.
50
- */
51
- get first() {
52
- return this[0];
53
- },
54
- /**
55
- * A getter property that returns the last element of the array. It
56
- * calculates the last index based on the array's length. If the array is
57
- * empty, it returns `undefined`. This property is beneficial when you need
58
- * to access the last item in an array, improving code readability and
59
- * avoiding manual index calculation.
60
- *
61
- * @returns {*} The last element of the array or `undefined` if the
62
- * array is empty.
63
- */
64
- get last() {
65
- return this[this.length - 1];
41
+ return undefined;
42
+ },
43
+ /**
44
+ * A getter property that returns the first element of the array. If the
45
+ * array is empty, it returns `undefined`. This property is useful for
46
+ * scenarios where you need to quickly access the first item of an array
47
+ * without the need for additional checks or method calls.
48
+ *
49
+ * @returns {*} The first element of the array or `undefined` if the array
50
+ * is empty.
51
+ */
52
+ get first() {
53
+ return this[0];
54
+ },
55
+ /**
56
+ * A getter property that returns the last element of the array. It
57
+ * calculates the last index based on the array's length. If the array is
58
+ * empty, it returns `undefined`. This property is beneficial when you need
59
+ * to access the last item in an array, improving code readability and
60
+ * avoiding manual index calculation.
61
+ *
62
+ * @returns {*} The last element of the array or `undefined` if the
63
+ * array is empty.
64
+ */
65
+ get last() {
66
+ return this[this.length - 1];
67
+ },
66
68
  },
67
69
  });
68
70
  //# sourceMappingURL=arrayextensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrayextensions.js","sourceRoot":"","sources":["../../src/arrayextensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE;IACjE;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAA;QAEf,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CAEF,CAAC,CAAA"}
1
+ {"version":3,"file":"arrayextensions.js","sourceRoot":"","sources":["../../src/arrayextensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE;IACjE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;QACtB;;;;;;;;WAQG;QACH,QAAQ,CAAC,KAAK;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QAC9C,CAAC;QAED;;;;;;;;WAQG;QACH,SAAS,CAAC,MAAM;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAA;YAEf,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,OAAO,SAAS,CAAA;QAClB,CAAC;QAED;;;;;;;;WAQG;QACH,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED;;;;;;;;;WASG;QACH,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;KACF;CACF,CAAC,CAAA"}
@@ -113,85 +113,87 @@ export const FunctionExtensions = new Patch(Function, {
113
113
  },
114
114
  });
115
115
  export const FunctionPrototypeExtensions = new Patch(Function.prototype, {
116
- /**
117
- * Determines if a given value is an asynchronous function. It checks if the
118
- * value is an instance of `Function` and if its string representation
119
- * includes the keyword 'Async'. This method is particularly useful for
120
- * identifying async functions.
121
- *
122
- * @returns {boolean} Returns `true` if the value is an async function,
123
- * otherwise `false`.
124
- */
125
- get isAsync() {
126
- return Function.isAsync(this);
127
- },
128
- /**
129
- * The function checks if a given value is an async generator function
130
- *
131
- * @returns {boolean} `true` if the value is an instance of a function and
132
- * its string tag is 'AsyncGeneratorFunction', otherwise it returns `false`.
133
- */
134
- get isAsyncGenerator() {
135
- return Function.isAsyncGenerator(this);
136
- },
137
- /**
138
- * Checks if a given value is an arrow function. It verifies if the value is
139
- * an instance of `Function`, if its string representation includes the '=>'
140
- * symbol, and if it lacks a prototype, which is a characteristic of arrow
141
- * functions in JavaScript.
142
- *
143
- * @returns {boolean} Returns `true` if the value is an arrow function,
144
- * otherwise `false`.
145
- */
146
- get isBigArrow() {
147
- return Function.isBigArrow(this);
148
- },
149
- /**
150
- * Determines if a given value is a bound function. Bound functions are
151
- * created using the `Function.prototype.bind` method, which allows setting
152
- * the `this` value at the time of binding. This method checks if the value
153
- * is an instance of `Function`, if its string representation starts with
154
- * 'bound', and if it lacks a `prototype` property. These characteristics
155
- * are indicative of bound functions in JavaScript.
156
- *
157
- * @returns {boolean} Returns `true` if the value is a bound function,
158
- * otherwise `false`. Bound functions have a specific format in their
159
- * string representation and do not have their own `prototype` property.
160
- */
161
- get isBound() {
162
- return Function.isBound(this);
163
- },
164
- /**
165
- * Determines if a given value is a class. It checks if the value is an
166
- * instance of `Function` and if its string representation includes the
167
- * keyword 'class'. This method is useful for distinguishing classes from
168
- * other function types in JavaScript.
169
- *
170
- * @returns {boolean} Returns `true` if the value is a class, otherwise
171
- * `false`.
172
- */
173
- get isClass() {
174
- return Function.isClass(this);
175
- },
176
- /**
177
- * Checks if a given value is a regular function. This method verifies if
178
- * the value is an instance of `Function`, which includes regular functions,
179
- * classes, and async functions but excludes arrow functions.
180
- *
181
- * @returns {boolean} Returns `true` if the value is a regular function,
182
- * otherwise `false`.
183
- */
184
- get isFunction() {
185
- return Function.isFunction(this);
186
- },
187
- /**
188
- * The function checks if a given value is a generator function
189
- *
190
- * @returns {boolean} `true` if the value is an instance of a function and
191
- * its string tag is 'GeneratorFunction', otherwise it returns `false`.
192
- */
193
- get isGenerator() {
194
- return Function.isGenerator(this);
116
+ [Patch.kMutablyHidden]: {
117
+ /**
118
+ * Determines if a given value is an asynchronous function. It checks if the
119
+ * value is an instance of `Function` and if its string representation
120
+ * includes the keyword 'Async'. This method is particularly useful for
121
+ * identifying async functions.
122
+ *
123
+ * @returns {boolean} Returns `true` if the value is an async function,
124
+ * otherwise `false`.
125
+ */
126
+ get isAsync() {
127
+ return Function.isAsync(this);
128
+ },
129
+ /**
130
+ * The function checks if a given value is an async generator function
131
+ *
132
+ * @returns {boolean} `true` if the value is an instance of a function and
133
+ * its string tag is 'AsyncGeneratorFunction', otherwise it returns `false`.
134
+ */
135
+ get isAsyncGenerator() {
136
+ return Function.isAsyncGenerator(this);
137
+ },
138
+ /**
139
+ * Checks if a given value is an arrow function. It verifies if the value is
140
+ * an instance of `Function`, if its string representation includes the '=>'
141
+ * symbol, and if it lacks a prototype, which is a characteristic of arrow
142
+ * functions in JavaScript.
143
+ *
144
+ * @returns {boolean} Returns `true` if the value is an arrow function,
145
+ * otherwise `false`.
146
+ */
147
+ get isBigArrow() {
148
+ return Function.isBigArrow(this);
149
+ },
150
+ /**
151
+ * Determines if a given value is a bound function. Bound functions are
152
+ * created using the `Function.prototype.bind` method, which allows setting
153
+ * the `this` value at the time of binding. This method checks if the value
154
+ * is an instance of `Function`, if its string representation starts with
155
+ * 'bound', and if it lacks a `prototype` property. These characteristics
156
+ * are indicative of bound functions in JavaScript.
157
+ *
158
+ * @returns {boolean} Returns `true` if the value is a bound function,
159
+ * otherwise `false`. Bound functions have a specific format in their
160
+ * string representation and do not have their own `prototype` property.
161
+ */
162
+ get isBound() {
163
+ return Function.isBound(this);
164
+ },
165
+ /**
166
+ * Determines if a given value is a class. It checks if the value is an
167
+ * instance of `Function` and if its string representation includes the
168
+ * keyword 'class'. This method is useful for distinguishing classes from
169
+ * other function types in JavaScript.
170
+ *
171
+ * @returns {boolean} Returns `true` if the value is a class, otherwise
172
+ * `false`.
173
+ */
174
+ get isClass() {
175
+ return Function.isClass(this);
176
+ },
177
+ /**
178
+ * Checks if a given value is a regular function. This method verifies if
179
+ * the value is an instance of `Function`, which includes regular functions,
180
+ * classes, and async functions but excludes arrow functions.
181
+ *
182
+ * @returns {boolean} Returns `true` if the value is a regular function,
183
+ * otherwise `false`.
184
+ */
185
+ get isFunction() {
186
+ return Function.isFunction(this);
187
+ },
188
+ /**
189
+ * The function checks if a given value is a generator function
190
+ *
191
+ * @returns {boolean} `true` if the value is an instance of a function and
192
+ * its string tag is 'GeneratorFunction', otherwise it returns `false`.
193
+ */
194
+ get isGenerator() {
195
+ return Function.isGenerator(this);
196
+ },
195
197
  },
196
198
  });
197
199
  //# sourceMappingURL=functionextensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functionextensions.js","sourceRoot":"","sources":["../../src/functionextensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAA;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;IACpD;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAK;QACX,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1E,OAAO,CACL,KAAK,YAAY,QAAQ;YACzB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC5B,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,KAAK;QACpB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAErC,OAAO,CACL,KAAK,YAAY,QAAQ;YACzB,SAAS,IAAI,wBAAwB,CACtC,CAAA;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,KAAK;QACd,OAAO,CACL,KAAK,YAAY,QAAQ;YACzB,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAClC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,KAAK;QACX,OAAO,CACL,KAAK,YAAY,QAAQ;YACzB,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YACjC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CACjC,CAAA;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAK;QACX,OAAO,KAAK,YAAY,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACtE,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK;QACd,OAAO,KAAK,YAAY,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK;QACf,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAErC,OAAO,CACL,KAAK,YAAY,QAAQ;YACzB,SAAS,IAAI,mBAAmB,CACjC,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;IACvE;;;;;;;;OAQG;IACH,IAAI,OAAO;QACT,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;OAKG;IACH,IAAI,gBAAgB;QAClB,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,UAAU;QACZ,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,OAAO;QACT,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,OAAO;QACT,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,UAAU;QACZ,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACH,IAAI,WAAW;QACb,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"functionextensions.js","sourceRoot":"","sources":["../../src/functionextensions.js"],"names":[],"mappings":"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"}
@@ -1,27 +1,29 @@
1
1
  import { Patch } from '@nejs/extension';
2
2
  export const MapPrototypeExtensions = new Patch(Map.prototype, {
3
- /**
4
- * The function `getKey` returns the key associated with a given value
5
- * in a map.
6
- *
7
- * @param {any} value - The value parameter is the value that you want to
8
- * find the corresponding key for in the map.
9
- * @param [strict=true] - The "strict" parameter is a boolean value that
10
- * determines whether strict equality (===) or loose equality (==) should
11
- * be used when comparing the "value" parameter with the values in the
12
- * entries of the object. If "strict" is set to true, strict equality will
13
- * be used.
14
- * @returns the key associated with the given value. If a matching key is
15
- * found, it is returned. If no matching key is found, null is returned.
16
- */
17
- getKey(value, strict = true) {
18
- for (const [key, entryValue] of this) {
19
- if ((strict && value === entryValue) &&
20
- (!strict && value == entryValue)) {
21
- return key;
3
+ [Patch.kMutablyHidden]: {
4
+ /**
5
+ * The function `getKey` returns the key associated with a given value
6
+ * in a map.
7
+ *
8
+ * @param {any} value - The value parameter is the value that you want to
9
+ * find the corresponding key for in the map.
10
+ * @param [strict=true] - The "strict" parameter is a boolean value that
11
+ * determines whether strict equality (===) or loose equality (==) should
12
+ * be used when comparing the "value" parameter with the values in the
13
+ * entries of the object. If "strict" is set to true, strict equality will
14
+ * be used.
15
+ * @returns the key associated with the given value. If a matching key is
16
+ * found, it is returned. If no matching key is found, null is returned.
17
+ */
18
+ getKey(value, strict = true) {
19
+ for (const [key, entryValue] of this) {
20
+ if ((strict && value === entryValue) &&
21
+ (!strict && value == entryValue)) {
22
+ return key;
23
+ }
24
+ return null;
22
25
  }
23
- return null;
24
- }
26
+ },
25
27
  },
26
28
  });
27
29
  //# sourceMappingURL=mapextensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapextensions.js","sourceRoot":"","sources":["../../src/mapextensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;IAC7D;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;QACzB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;YACrC,IACE,CAAC,MAAM,IAAI,KAAK,KAAK,UAAU,CAAC;gBAChC,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,UAAU,CAAC,EAChC,CAAC;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"mapextensions.js","sourceRoot":"","sources":["../../src/mapextensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;IAC7D,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;QACtB;;;;;;;;;;;;;WAaG;QACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrC,IACE,CAAC,MAAM,IAAI,KAAK,KAAK,UAAU,CAAC;oBAChC,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,UAAU,CAAC,EAChC,CAAC;oBACD,OAAO,GAAG,CAAA;gBACZ,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;KACF;CACF,CAAC,CAAA"}
@@ -175,23 +175,55 @@ export const ObjectExtensions = new Patch(Object, {
175
175
  return result;
176
176
  },
177
177
  });
178
+ const staticPatches = ObjectExtensions.patches;
178
179
  export const ObjectPrototypeExtensions = new Patch(Object.prototype, {
179
- /**
180
- * Strips an object down to only the keys specified. Optionally, any
181
- * accessors can be made to retain their context on the source object.
182
- * This is a passthrough to the static {@link Object.stripTo} function
183
- *
184
- * @param {Array<string|symbol>} keys the keys that should appear in the
185
- * final reduced object
186
- * @param {boolean} [bindAccessors = true] if this value is true then any
187
- * accessors from the source object will continue to have their `this`
188
- * value bound to the source. If the getter or setter on that object is
189
- * defined using an arrow function, this will not work as intended.
190
- * @returns {object} an object containing only the keys and symbols
191
- * specified in the `keys` parameter.
192
- */
193
- stripTo(keys, bindAccessors = true) {
194
- return Object.stripTo(this, keys, bindAccessors);
195
- }
180
+ [Patch.kMutablyHidden](store) {
181
+ return {
182
+ /**
183
+ * Checks to see if the supplied `value` is both an object, and has the
184
+ * appropriate symbol defined.
185
+ *
186
+ * @param {any} value the value to determine if it contains a defined
187
+ * `Symbol.toStringTag` defined.
188
+ * @returns true if the symbol is defined, false otherwise
189
+ */
190
+ get hasStringTag() {
191
+ return staticPatches.hasStringTag(this);
192
+ },
193
+ /**
194
+ * Retrieves the string tag of an object. The string tag is a representation
195
+ * of the object's type, as defined by its `Object.prototype.toString`
196
+ * method. This utility method is helpful for getting a more descriptive
197
+ * type of an object than what is returned by the `typeof` operator,
198
+ * especially for custom objects.
199
+ *
200
+ * @param {*} value - The object whose string tag is to be retrieved.
201
+ * @param {boolean} strict - if this is set to true, undefined will be
202
+ * returned whenever a supplied object does not have a
203
+ * `Symbol.toStringTag` defined, period. if false, the default,
204
+ * @returns {string} - The string tag of the object, indicating its type.
205
+ */
206
+ getStringTag(strict = false) {
207
+ return staticPatches.getStringTag(this, strict);
208
+ },
209
+ /**
210
+ * Strips an object down to only the keys specified. Optionally, any
211
+ * accessors can be made to retain their context on the source object.
212
+ * This is a passthrough to the static {@link Object.stripTo} function
213
+ *
214
+ * @param {Array<string|symbol>} keys the keys that should appear in the
215
+ * final reduced object
216
+ * @param {boolean} [bindAccessors = true] if this value is true then any
217
+ * accessors from the source object will continue to have their `this`
218
+ * value bound to the source. If the getter or setter on that object is
219
+ * defined using an arrow function, this will not work as intended.
220
+ * @returns {object} an object containing only the keys and symbols
221
+ * specified in the `keys` parameter.
222
+ */
223
+ stripTo(keys, bindAccessors = true) {
224
+ return Object.stripTo(this, keys, bindAccessors);
225
+ }
226
+ };
227
+ },
196
228
  });
197
229
  //# sourceMappingURL=objectextensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"objectextensions.js","sourceRoot":"","sources":["../../src/objectextensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;IAChD;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK;QACjB,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAA;IAC9C,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAK;QAChB,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACzE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;QAChC,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC,IAAI,CAAA;QACnB,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAE5C,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAA;YACxB,KAAK,WAAW,CAAC,CAAC,OAAO,SAAS,CAAA;YAClC;gBACE,OAAO,KAAK,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK;QACZ,OAAO,KAAK,IAAI,CAAC,KAAK,YAAY,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAK;QACf,uDAAuD;QACvD,cAAc;QACd,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6BAA6B;QAC7B,QAAQ,OAAO,KAAK,EAAE,CAAC;YACrB,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,WAAW,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,KAAK;QACd,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;QACxC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CACjB,sDAAsD,EACtD,MAAM,CACP,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,kBAAkB,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACxE,MAAM,UAAU,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;gBAE7C,IACE,OAAO,UAAU,CAAC,GAAG,KAAK,UAAU;oBACpC,OAAO,UAAU,CAAC,GAAG,KAAK,UAAU,EACpC,CAAC;oBACD,IAAI,aAAa,EAAE,CAAC;wBAClB,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC9C,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;gBAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;IACnE;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;IAClD,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"objectextensions.js","sourceRoot":"","sources":["../../src/objectextensions.js"],"names":[],"mappings":"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"}