@nejs/basic-extensions 2.21.0 → 2.21.5
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/.idea/markdown.xml +8 -0
- package/.idea/modules.xml +8 -0
- package/.idea/ne-basic-extensions.iml +8 -0
- package/.idea/vcs.xml +6 -0
- package/CODE_STYLE.md +393 -0
- package/CODING_PHILOSOPHY.md +36 -0
- package/DOCUMENTATION_GUIDELINES.md +221 -0
- package/dist/@nejs/{basic-extensions.bundle.2.21.0.js → basic-extensions.bundle.2.21.5.js} +6 -6
- package/dist/@nejs/basic-extensions.bundle.2.21.5.js.map +7 -0
- package/dist/cjs/big.int.extension.js +153 -45
- package/dist/cjs/big.int.extension.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math.extension.d.ts +14 -0
- package/dist/cjs/math.extension.js +71 -0
- package/dist/cjs/math.extension.js.map +1 -0
- package/dist/cjs/number.extension.js +17 -0
- package/dist/cjs/number.extension.js.map +1 -1
- package/dist/mjs/big.int.extension.js +153 -45
- package/dist/mjs/big.int.extension.js.map +1 -1
- package/dist/mjs/index.d.ts +1 -1
- package/dist/mjs/index.js +2 -0
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/math.extension.d.ts +14 -0
- package/dist/mjs/math.extension.js +68 -0
- package/dist/mjs/math.extension.js.map +1 -0
- package/dist/mjs/number.extension.js +17 -0
- package/dist/mjs/number.extension.js.map +1 -1
- package/package.json +2 -2
- package/repl.history +30 -30
- package/src/big.int.extension.js +171 -45
- package/src/index.js +2 -0
- package/src/math.extension.js +73 -0
- package/src/number.extension.js +18 -0
- package/dist/@nejs/basic-extensions.bundle.2.21.0.js.map +0 -7
|
@@ -17,51 +17,117 @@ const extension_1 = require("@nejs/extension");
|
|
|
17
17
|
* // Now the `BigInt` class has additional methods available
|
|
18
18
|
*/
|
|
19
19
|
exports.BigIntExtensions = new extension_1.Patch(BigInt, {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
20
|
+
[extension_1.Patch.kMutablyHidden]: {
|
|
21
|
+
/**
|
|
22
|
+
* Checks if all or some of the supplied values are numbers.
|
|
23
|
+
*
|
|
24
|
+
* This method uses the `Array.prototype.every` or `Array.prototype.some`
|
|
25
|
+
* method to check if all or some of the supplied values are numbers,
|
|
26
|
+
* respectively. The method to use is determined by the `which` parameter.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} [which='every'] - Determines the method to use for the
|
|
29
|
+
* check. Can be either 'every' or 'some'. Defaults to 'every'.
|
|
30
|
+
* @param {...*} values - The values to check.
|
|
31
|
+
* @returns {boolean} - Returns `true` if all or some of the values are
|
|
32
|
+
* numbers (based on the `which` parameter), `false` otherwise.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* areNumbers('every', 1, 2, 3) // true
|
|
36
|
+
* areNumbers('some', 1, '2', 3) // true
|
|
37
|
+
* areNumbers('every', 1, '2', 3) // false
|
|
38
|
+
*/
|
|
39
|
+
areBigInts(which = ['every', 'some'][0], ...values) {
|
|
40
|
+
if (which !== 'every' && which !== 'some') {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
return values[which](num => this.isBigInt(num));
|
|
44
|
+
},
|
|
45
|
+
/**
|
|
46
|
+
* Determines if the supplied `value` is a `BigInt`. This check is
|
|
47
|
+
* performed by first checking the `typeof` the `value` and then
|
|
48
|
+
* checking to see if the `value` is an `instanceof` `BigInt`
|
|
49
|
+
*
|
|
50
|
+
* @param {*} value The value that needs to be checked to determine
|
|
51
|
+
* if it is a `BigInt` or not
|
|
52
|
+
* @returns {boolean} `true` if the supplied `value` is a `BigInt`,
|
|
53
|
+
* `false` otherwise
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* const bigInt = 1234567890123456789012345678901234567890n
|
|
57
|
+
* isBigInt(bigInt) // true
|
|
58
|
+
* isBigInt(1234567890123456789012345678901234567890) // false
|
|
59
|
+
* isBigInt('1234567890123456789012345678901234567890') // false
|
|
60
|
+
* isBigInt(BigInt('1234567890123456789012345678901234567890')) // true
|
|
61
|
+
*/
|
|
62
|
+
isBigInt(value) {
|
|
63
|
+
return typeof value === 'bigint' || value instanceof BigInt;
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* Conditionally returns a value based on whether the supplied
|
|
67
|
+
* `value` is a `BigInt` or not. If the `value` is a `BigInt`,
|
|
68
|
+
* the `thenValue` will be returned. If it is not a `BigInt`,
|
|
69
|
+
* the `elseValue` will be returned instead.
|
|
70
|
+
*
|
|
71
|
+
* @param {any} value The value to check to determine if it is a
|
|
72
|
+
* `BigInt`
|
|
73
|
+
* @param {any} thenValue The value to return if the supplied
|
|
74
|
+
* `value` is a `BigInt`
|
|
75
|
+
* @param {any} elseValue The value to return if the supplied
|
|
76
|
+
* `value` is not a `BigInt`
|
|
77
|
+
* @returns {any} Either the `thenValue` or `elseValue` depending
|
|
78
|
+
* on if the supplied `value` is a `BigInt`
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* const bigInt = 1234567890123456789012345678901234567890n
|
|
82
|
+
* const num = 42
|
|
83
|
+
* ifBigInt(bigInt, 'is a BigInt', 'not a BigInt')
|
|
84
|
+
* // 'is a BigInt'
|
|
85
|
+
* ifBigInt(num, 'is a BigInt', 'not a BigInt')
|
|
86
|
+
* // 'not a BigInt'
|
|
87
|
+
*/
|
|
88
|
+
ifBigInt(value, thenValue, elseValue) {
|
|
89
|
+
return isThenElse(this.isBigInt(value), thenValue, elseValue);
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* The Math.min() static method returns the smallest of the numbers given
|
|
93
|
+
* as input parameters, or Infinity if there are no parameters.
|
|
94
|
+
*
|
|
95
|
+
* @param {bigint|number} values value1, …, valueN – Zero or more numbers
|
|
96
|
+
* among which the lowest value will be selected and returned.
|
|
97
|
+
* @returns {bigint|number|Infinity} The smallest of the given numbers.
|
|
98
|
+
* Returns Infinity if no parameters are provided.
|
|
99
|
+
*/
|
|
100
|
+
min(...values) {
|
|
101
|
+
const sorter = (l, r) => l < r ? -1 : l > r ? 1 : 0;
|
|
102
|
+
if (!values.length)
|
|
103
|
+
return Infinity;
|
|
104
|
+
if (values.every(n => typeof n === 'bigint')) {
|
|
105
|
+
return values.toSorted(sorter).at(0);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
throw new TypeError('All supplied values must be of type bigint');
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
/**
|
|
112
|
+
* The Math.max() static method returns the largest of the numbers given
|
|
113
|
+
* as input parameters, or Infinity if there are no parameters.
|
|
114
|
+
*
|
|
115
|
+
* @param {bigint|number} values value1, …, valueN – Zero or more numbers
|
|
116
|
+
* among which the largest value will be selected and returned.
|
|
117
|
+
* @returns {bigint|number|Infinity} The largest of the given numbers.
|
|
118
|
+
* Returns Infinity if no parameters are provided.
|
|
119
|
+
*/
|
|
120
|
+
max(...values) {
|
|
121
|
+
const sorter = (l, r) => l < r ? -1 : l > r ? 1 : 0;
|
|
122
|
+
if (!values.length)
|
|
123
|
+
return Infinity;
|
|
124
|
+
if (values.every(n => typeof n === 'bigint')) {
|
|
125
|
+
return values.toSorted(sorter).at(-1);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
throw new TypeError('All supplied values must be of type bigint');
|
|
129
|
+
}
|
|
130
|
+
},
|
|
65
131
|
},
|
|
66
132
|
});
|
|
67
133
|
const { isBigInt: pIsBigInt, ifBigInt: pIfBigInt } = exports.BigIntExtensions.patches;
|
|
@@ -80,6 +146,31 @@ const { isBigInt: pIsBigInt, ifBigInt: pIfBigInt } = exports.BigIntExtensions.pa
|
|
|
80
146
|
* // Now the `BigInt` prototype has additional methods available
|
|
81
147
|
*/
|
|
82
148
|
exports.BigIntPrototypeExtensions = new extension_1.Patch(BigInt.prototype, {
|
|
149
|
+
/**
|
|
150
|
+
* Clamps a value between a minimum and maximum value.
|
|
151
|
+
*
|
|
152
|
+
* This method checks if the provided value and the min and max bounds are
|
|
153
|
+
* numbers. If they are not, it returns the original value. If they are,
|
|
154
|
+
* it ensures that the value does not go below the minimum value or above
|
|
155
|
+
* the maximum value.
|
|
156
|
+
*
|
|
157
|
+
* @param {bigint} [minValue=BigInt(-Number.MAX_VALUE)] - The minimum value.
|
|
158
|
+
* Defaults to BigInt(-Number.MAX_VALUE).
|
|
159
|
+
* @param {bigint} [maxValue=BigInt(Number.MAX_VALUE)] - The maximum value.
|
|
160
|
+
* Defaults to BigInt(Number.MAX_VALUE).
|
|
161
|
+
* @returns {bigint} - Returns the clamped value if all parameters are
|
|
162
|
+
* big integers.
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* (10n).clamp(1n, 5n) // returns 5n
|
|
166
|
+
* (-10n).clamp(1n, 5n) // returns 1n
|
|
167
|
+
* (3n).clamp(1n, 5n) // returns 3n
|
|
168
|
+
*/
|
|
169
|
+
clamp(minValue = BigInt(-Number.MAX_VALUE), maxValue = BigInt(Number.MAX_VALUE)) {
|
|
170
|
+
if (typeof minValue !== 'bigint' || typeof maxValue !== 'bigint')
|
|
171
|
+
throw new TypeError('All values must be big integers');
|
|
172
|
+
return BigInt.max(minValue, BigInt.min(maxValue, this));
|
|
173
|
+
},
|
|
83
174
|
/**
|
|
84
175
|
* A getter method that returns an object representation of the BigInt
|
|
85
176
|
* instance.
|
|
@@ -146,6 +237,23 @@ exports.BigIntPrototypeExtensions = new extension_1.Patch(BigInt.prototype, {
|
|
|
146
237
|
ifBigInt(thenValue, elseValue) {
|
|
147
238
|
return pIfBigInt(this, thenValue, elseValue);
|
|
148
239
|
},
|
|
240
|
+
/**
|
|
241
|
+
* Provides a way when dealing with numbers to determine if
|
|
242
|
+
* a given number is within a range of values. By default, if
|
|
243
|
+
* no parameters are supplied, it always returns true since
|
|
244
|
+
* the default range is -Infinity to +Infinity. Additionally,
|
|
245
|
+
* by default, the number will always be less than the supplied
|
|
246
|
+
* max unless inclusive is set to true.
|
|
247
|
+
*
|
|
248
|
+
* @param min the lower range value, defaults to -Infinity
|
|
249
|
+
* @param max the upper range value, defaults to +Infinity
|
|
250
|
+
* @param inclusive defaults to false, set to true if you
|
|
251
|
+
* want the max value to less than and equals to
|
|
252
|
+
* @returns {boolean} true if within the range, false otherwise
|
|
253
|
+
*/
|
|
254
|
+
within(min = BigInt(-Infinity), max = BigInt(Infinity), inclusive = false) {
|
|
255
|
+
return this >= min && (inclusive ? this <= max : this < max);
|
|
256
|
+
}
|
|
149
257
|
});
|
|
150
258
|
// NOTE to self; this is repeated here otherwise a circular reference from
|
|
151
259
|
// Object<->Function<->Global occurs. See original source in global.this.js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"big.int.extension.js","sourceRoot":"","sources":["../../src/big.int.extension.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAEvC;;;;;;;;;;;;;GAaG;AACU,QAAA,gBAAgB,GAAG,IAAI,iBAAK,CAAC,MAAM,EAAE;IAChD;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"big.int.extension.js","sourceRoot":"","sources":["../../src/big.int.extension.js"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ declare namespace results {
|
|
|
23
23
|
}
|
|
24
24
|
export const Extensions: {};
|
|
25
25
|
export const Patches: Map<any, any>;
|
|
26
|
-
export const StaticPatches: ((string | import("@nejs/extension").Patch | ArrayConstructor)[] | (string | import("@nejs/extension").Patch | BigIntConstructor)[] | (string | import("@nejs/extension").Patch | FunctionConstructor)[] | (string | import("@nejs/extension").Patch | JSON)[] | (string | import("@nejs/extension").Patch | MapConstructor)[] | (string | import("@nejs/extension").Patch | NumberConstructor)[] | (string | import("@nejs/extension").Patch | ObjectConstructor)[] | (string | import("@nejs/extension").Patch | typeof Reflect)[] | (string | import("@nejs/extension").Patch | RegExpConstructor)[] | (string | import("@nejs/extension").Patch | SetConstructor)[] | (string | import("@nejs/extension").Patch | StringConstructor)[] | (string | import("@nejs/extension").Patch | SymbolConstructor)[])[];
|
|
26
|
+
export const StaticPatches: ((string | import("@nejs/extension").Patch | ArrayConstructor)[] | (string | import("@nejs/extension").Patch | BigIntConstructor)[] | (string | import("@nejs/extension").Patch | FunctionConstructor)[] | (string | import("@nejs/extension").Patch | JSON)[] | (string | import("@nejs/extension").Patch | MapConstructor)[] | (string | import("@nejs/extension").Patch | Math)[] | (string | import("@nejs/extension").Patch | NumberConstructor)[] | (string | import("@nejs/extension").Patch | ObjectConstructor)[] | (string | import("@nejs/extension").Patch | typeof Reflect)[] | (string | import("@nejs/extension").Patch | RegExpConstructor)[] | (string | import("@nejs/extension").Patch | SetConstructor)[] | (string | import("@nejs/extension").Patch | StringConstructor)[] | (string | import("@nejs/extension").Patch | SymbolConstructor)[])[];
|
|
27
27
|
export const InstancePatches: ((string | import("@nejs/extension").Patch | BigInt)[] | (string | Number | import("@nejs/extension").Patch)[] | (string | Object)[])[];
|
|
28
28
|
export const Controls: {};
|
|
29
29
|
import { GlobalFunctionsAndProps } from './global.this.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -22,6 +22,7 @@ const global_this_js_1 = require("./global.this.js");
|
|
|
22
22
|
Object.defineProperty(exports, "GlobalFunctionsAndProps", { enumerable: true, get: function () { return global_this_js_1.GlobalFunctionsAndProps; } });
|
|
23
23
|
const json_extensions_js_1 = require("./json.extensions.js");
|
|
24
24
|
const map_extensions_js_1 = require("./map.extensions.js");
|
|
25
|
+
const math_extension_js_1 = require("./math.extension.js");
|
|
25
26
|
const number_extension_js_1 = require("./number.extension.js");
|
|
26
27
|
const object_extensions_js_1 = require("./object.extensions.js");
|
|
27
28
|
const reflect_extensions_js_1 = require("./reflect.extensions.js");
|
|
@@ -53,6 +54,7 @@ const StaticPatches = [
|
|
|
53
54
|
[Function, function_extensions_js_1.FunctionExtensions, Function.name],
|
|
54
55
|
[JSON, json_extensions_js_1.JSONExtensions, 'JSON'], // Missing a .name property
|
|
55
56
|
[Map, map_extensions_js_1.MapExtensions, Map.name],
|
|
57
|
+
[Math, math_extension_js_1.MathExtensions, 'Math'],
|
|
56
58
|
[Number, number_extension_js_1.NumberExtensions, Number.name],
|
|
57
59
|
[Object, object_extensions_js_1.ObjectExtensions, Object.name],
|
|
58
60
|
[Reflect, reflect_extensions_js_1.ReflectExtensions, 'Reflect'], // Missing a .name property
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+DAAiF;AACjF,iEAAoF;AACpF,qEAA0F;AAC1F,qDAA0D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Math` extensions. Building better worlds...actually just
|
|
3
|
+
* providing some parity between Number and BigInt types for
|
|
4
|
+
* now, but later, better worlds.
|
|
5
|
+
*
|
|
6
|
+
* @type {Patch}
|
|
7
|
+
* @example
|
|
8
|
+
* import { MathExtensions } from 'math.extension.js'
|
|
9
|
+
*
|
|
10
|
+
* MathExtensions.apply()
|
|
11
|
+
* // Now the `Math` class has additional methods available
|
|
12
|
+
*/
|
|
13
|
+
export const MathExtensions: Patch;
|
|
14
|
+
import { Patch } from '@nejs/extension';
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MathExtensions = void 0;
|
|
4
|
+
const extension_1 = require("@nejs/extension");
|
|
5
|
+
/**
|
|
6
|
+
* `Math` extensions. Building better worlds...actually just
|
|
7
|
+
* providing some parity between Number and BigInt types for
|
|
8
|
+
* now, but later, better worlds.
|
|
9
|
+
*
|
|
10
|
+
* @type {Patch}
|
|
11
|
+
* @example
|
|
12
|
+
* import { MathExtensions } from 'math.extension.js'
|
|
13
|
+
*
|
|
14
|
+
* MathExtensions.apply()
|
|
15
|
+
* // Now the `Math` class has additional methods available
|
|
16
|
+
*/
|
|
17
|
+
exports.MathExtensions = new extension_1.Patch(Math, {
|
|
18
|
+
[extension_1.Patch.kMutablyHidden]: {
|
|
19
|
+
/**
|
|
20
|
+
* The Math.min() static method returns the smallest of the numbers given
|
|
21
|
+
* as input parameters, or Infinity if there are no parameters.
|
|
22
|
+
*
|
|
23
|
+
* @param {bigint|number} values value1, …, valueN – Zero or more numbers
|
|
24
|
+
* among which the lowest value will be selected and returned.
|
|
25
|
+
* @returns {bigint|number|NaN|Infinity} The smallest of the given numbers.
|
|
26
|
+
* Returns NaN if any of the parameters is or is converted into NaN or if
|
|
27
|
+
* the types of numbers are mismatched (i.e., bigint vs. number types).
|
|
28
|
+
* Returns Infinity if no parameters are provided.
|
|
29
|
+
*/
|
|
30
|
+
min(...values) {
|
|
31
|
+
const sorter = (l, r) => l < r ? -1 : l > r ? 1 : 0;
|
|
32
|
+
if (!values.length)
|
|
33
|
+
return Infinity;
|
|
34
|
+
if (values.every(n => typeof n === 'bigint')) {
|
|
35
|
+
return values.toSorted(sorter).at(0);
|
|
36
|
+
}
|
|
37
|
+
else if (values.every(n => typeof n === 'number')) {
|
|
38
|
+
return values.toSorted(sorter).at(0);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return NaN;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* The Math.max() static method returns the largest of the numbers given
|
|
46
|
+
* as input parameters, or Infinity if there are no parameters.
|
|
47
|
+
*
|
|
48
|
+
* @param {bigint|number} values value1, …, valueN – Zero or more numbers
|
|
49
|
+
* among which the largest value will be selected and returned.
|
|
50
|
+
* @returns {bigint|number|NaN|Infinity} The largest of the given numbers.
|
|
51
|
+
* Returns NaN if any of the parameters is or is converted into NaN or if
|
|
52
|
+
* the types of numbers are mismatched (i.e., bigint vs. number types).
|
|
53
|
+
* Returns Infinity if no parameters are provided.
|
|
54
|
+
*/
|
|
55
|
+
max(...values) {
|
|
56
|
+
const sorter = (l, r) => l < r ? -1 : l > r ? 1 : 0;
|
|
57
|
+
if (!values.length)
|
|
58
|
+
return Infinity;
|
|
59
|
+
if (values.every(n => typeof n === 'bigint')) {
|
|
60
|
+
return values.toSorted(sorter).at(-1);
|
|
61
|
+
}
|
|
62
|
+
else if (values.every(n => typeof n === 'number')) {
|
|
63
|
+
return values.toSorted(sorter).at(-1);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return NaN;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=math.extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.extension.js","sourceRoot":"","sources":["../../src/math.extension.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAEvC;;;;;;;;;;;GAWG;AACU,QAAA,cAAc,GAAG,IAAI,iBAAK,CAAC,IAAI,EAAE;IAC5C,CAAC,iBAAK,CAAC,cAAc,CAAC,EAAE;QACtB;;;;;;;;;;WAUG;QACH,GAAG,CAAC,GAAG,MAAM;YACX,MAAM,MAAM,GAAG,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,CAAC,MAAM;gBAChB,OAAO,QAAQ,CAAA;YAEjB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;iBACI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;iBACI,CAAC;gBACJ,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;QAED;;;;;;;;;;WAUG;QACH,GAAG,CAAC,GAAG,MAAM;YACX,MAAM,MAAM,GAAG,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,CAAC,MAAM;gBAChB,OAAO,QAAQ,CAAA;YAEjB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;iBACI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;iBACI,CAAC;gBACJ,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;KACF;CACF,CAAC,CAAA"}
|
|
@@ -241,6 +241,23 @@ exports.NumberPrototypeExtensions = new extension_1.Patch(Number.prototype, {
|
|
|
241
241
|
ifNumber(thenValue, elseValue) {
|
|
242
242
|
return pIfNumber(this, thenValue, elseValue);
|
|
243
243
|
},
|
|
244
|
+
/**
|
|
245
|
+
* Provides a way when dealing with numbers to determine if
|
|
246
|
+
* a given number is within a range of values. By default, if
|
|
247
|
+
* no parameters are supplied, it always returns true since
|
|
248
|
+
* the default range is -Infinity to +Infinity. Additionally,
|
|
249
|
+
* by default, the number will always be less than the supplied
|
|
250
|
+
* max unless inclusive is set to true.
|
|
251
|
+
*
|
|
252
|
+
* @param min the lower range value, defaults to -Infinity
|
|
253
|
+
* @param max the upper range value, defaults to +Infinity
|
|
254
|
+
* @param inclusive defaults to false, set to true if you
|
|
255
|
+
* want the max value to less than and equals to
|
|
256
|
+
* @returns {boolean} true if within the range, false otherwise
|
|
257
|
+
*/
|
|
258
|
+
within(min = -Infinity, max = Infinity, inclusive = false) {
|
|
259
|
+
return this >= min && (inclusive ? this <= max : this < max);
|
|
260
|
+
}
|
|
244
261
|
}
|
|
245
262
|
});
|
|
246
263
|
// NOTE to self; this is repeated here otherwise a circular reference from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.extension.js","sourceRoot":"","sources":["../../src/number.extension.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"number.extension.js","sourceRoot":"","sources":["../../src/number.extension.js"],"names":[],"mappings":"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"}
|