@nejs/basic-extensions 2.20.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.
Files changed (92) hide show
  1. package/.idea/markdown.xml +8 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/ne-basic-extensions.iml +8 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/CODE_STYLE.md +393 -0
  6. package/CODING_PHILOSOPHY.md +36 -0
  7. package/DOCUMENTATION_GUIDELINES.md +221 -0
  8. package/bin/repl.basics.js +36 -6
  9. package/bin/repl.signature.js +63 -0
  10. package/dist/@nejs/basic-extensions.bundle.2.21.5.js +25 -0
  11. package/dist/@nejs/basic-extensions.bundle.2.21.5.js.map +7 -0
  12. package/dist/cjs/big.int.extension.js +153 -45
  13. package/dist/cjs/big.int.extension.js.map +1 -1
  14. package/dist/cjs/classes/descriptor.d.ts +1 -1
  15. package/dist/cjs/classes/enum.d.ts +37 -19
  16. package/dist/cjs/classes/enum.js +181 -56
  17. package/dist/cjs/classes/enum.js.map +1 -1
  18. package/dist/cjs/classes/iterable.d.ts +3 -3
  19. package/dist/cjs/classes/param.parser.d.ts +1 -7
  20. package/dist/cjs/classes/pluggable.proxy.d.ts +2 -1
  21. package/dist/cjs/classes/property.d.ts +2 -9
  22. package/dist/cjs/classes/refset.d.ts +2 -2
  23. package/dist/cjs/classes/symkeys.d.ts +1 -1
  24. package/dist/cjs/global.this.js +17 -7
  25. package/dist/cjs/global.this.js.map +1 -1
  26. package/dist/cjs/index.d.ts +9 -6
  27. package/dist/cjs/index.js +15 -8
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/math.extension.d.ts +14 -0
  30. package/dist/cjs/math.extension.js +71 -0
  31. package/dist/cjs/math.extension.js.map +1 -0
  32. package/dist/cjs/number.extension.js +17 -0
  33. package/dist/cjs/number.extension.js.map +1 -1
  34. package/dist/cjs/string.extensions.js +38 -0
  35. package/dist/cjs/string.extensions.js.map +1 -1
  36. package/dist/cjs/utils/copy.object.d.ts +2 -2
  37. package/dist/cjs/utils/descriptor.utils.d.ts +152 -0
  38. package/dist/cjs/utils/descriptor.utils.js +228 -9
  39. package/dist/cjs/utils/descriptor.utils.js.map +1 -1
  40. package/dist/cjs/utils/index.d.ts +15 -0
  41. package/dist/cjs/utils/index.js +9 -0
  42. package/dist/cjs/utils/index.js.map +1 -1
  43. package/dist/cjs/utils/stdout.d.ts +742 -0
  44. package/dist/cjs/utils/stdout.js +1042 -0
  45. package/dist/cjs/utils/stdout.js.map +1 -0
  46. package/dist/mjs/big.int.extension.js +153 -45
  47. package/dist/mjs/big.int.extension.js.map +1 -1
  48. package/dist/mjs/classes/descriptor.d.ts +1 -1
  49. package/dist/mjs/classes/enum.d.ts +37 -19
  50. package/dist/mjs/classes/enum.js +181 -57
  51. package/dist/mjs/classes/enum.js.map +1 -1
  52. package/dist/mjs/classes/iterable.d.ts +3 -3
  53. package/dist/mjs/classes/param.parser.d.ts +1 -7
  54. package/dist/mjs/classes/pluggable.proxy.d.ts +2 -1
  55. package/dist/mjs/classes/property.d.ts +2 -9
  56. package/dist/mjs/classes/refset.d.ts +2 -2
  57. package/dist/mjs/classes/symkeys.d.ts +1 -1
  58. package/dist/mjs/index.d.ts +9 -6
  59. package/dist/mjs/index.js +15 -8
  60. package/dist/mjs/index.js.map +1 -1
  61. package/dist/mjs/math.extension.d.ts +14 -0
  62. package/dist/mjs/math.extension.js +68 -0
  63. package/dist/mjs/math.extension.js.map +1 -0
  64. package/dist/mjs/number.extension.js +17 -0
  65. package/dist/mjs/number.extension.js.map +1 -1
  66. package/dist/mjs/string.extensions.js +38 -0
  67. package/dist/mjs/string.extensions.js.map +1 -1
  68. package/dist/mjs/utils/copy.object.d.ts +2 -2
  69. package/dist/mjs/utils/descriptor.utils.d.ts +152 -0
  70. package/dist/mjs/utils/descriptor.utils.js +222 -9
  71. package/dist/mjs/utils/descriptor.utils.js.map +1 -1
  72. package/dist/mjs/utils/index.d.ts +15 -0
  73. package/dist/mjs/utils/index.js +10 -1
  74. package/dist/mjs/utils/index.js.map +1 -1
  75. package/dist/mjs/utils/stdout.d.ts +742 -0
  76. package/dist/mjs/utils/stdout.js +1037 -0
  77. package/dist/mjs/utils/stdout.js.map +1 -0
  78. package/package.json +6 -20
  79. package/repl.bootstrap.js +24 -16
  80. package/repl.history +30 -30
  81. package/src/big.int.extension.js +171 -45
  82. package/src/classes/enum.js +249 -109
  83. package/src/index.js +24 -8
  84. package/src/math.extension.js +73 -0
  85. package/src/number.extension.js +18 -0
  86. package/src/string.extensions.js +41 -0
  87. package/src/utils/descriptor.utils.js +277 -9
  88. package/src/utils/index.js +20 -0
  89. package/src/utils/stdout.js +1151 -0
  90. package/tests/utils/descriptor.utils.test.js +130 -0
  91. package/dist/@nejs/basic-extensions.bundle.2.20.0.js +0 -19
  92. package/dist/@nejs/basic-extensions.bundle.2.20.0.js.map +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../../src/utils/stdout.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,33 +1,20 @@
1
1
  {
2
2
  "author": "Brielle Harrison <nyteshade at gmail.com>",
3
- "browser": "dist/@nejs/basic-extensions.bundle.2.20.0.js",
3
+ "browser": "dist/@nejs/basic-extensions.bundle.2.21.5.js",
4
4
  "description": "Basic but commonly used extensions",
5
5
  "dependencies": {
6
6
  "@nejs/extension": "^2.20.0",
7
7
  "zod": "^3.23.8"
8
8
  },
9
9
  "devDependencies": {
10
- "@esbuild/darwin-arm64": "^0.23.1",
11
- "balanced-match": "^3.0.1",
12
- "brace-expansion": "^4.0.0",
13
- "core-js": "^3.38.1",
14
10
  "docdash": "^2.0.2",
15
- "documentation": "^6.2.0",
16
- "esbuild": "^0.23.1",
17
- "esdoc": "^0.4.8",
11
+ "documentation": "^14.0.3",
12
+ "esbuild": "^0.25.3",
13
+ "esdoc": "^0.0.2",
18
14
  "esdoc-standard-plugin": "^1.0.0",
19
- "fsevents": "^2.3.3",
20
- "glob": "^11.0.0",
21
- "lru-cache": "^11.0.1",
22
- "minimatch": "^10.0.1",
23
- "minipass": "^7.1.2",
24
- "path-scurry": "^2.0.0",
25
- "prompts": "^2.4.2",
26
15
  "rimraf": "^6.0.1",
27
- "source-map-support": "^0.5.21",
28
16
  "typescript": "^5.5.4",
29
- "unist-util-is": "^6.0.0",
30
- "vitest": "^2.0.5"
17
+ "vitest": "^3.1.2"
31
18
  },
32
19
  "engines": {
33
20
  "node": ">=20"
@@ -65,6 +52,5 @@
65
52
  "test": "vitest"
66
53
  },
67
54
  "type": "module",
68
- "version": "2.20.0",
69
- "packageManager": "pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1"
55
+ "version": "2.21.5"
70
56
  }
package/repl.bootstrap.js CHANGED
@@ -2,40 +2,47 @@
2
2
 
3
3
  // Import everything for playtesting.
4
4
  (await import('./dist/mjs/index.js')).Controls.enableAll();
5
+ (await import('./bin/repl.signature.js'))
5
6
 
6
- const { accessor, data, isDescriptor } = await import('./dist/mjs/utils/index.js')
7
- const { inspect } = await import('util');
7
+ // Grab typescript
8
+ const ts = await import('typescript')
9
+
10
+ const {
11
+ accessor, data, describe, describeMany, extract, isDescriptor,
12
+ isAccessor, isData, redescribe,
13
+ } = await import('./dist/mjs/utils/index.js')
8
14
 
15
+ const { inspect } = await import('util');
9
16
  const nejsExtension = await import('@nejs/extension');
10
17
 
11
18
  const repl = await import('node:repl');
12
19
  const fs = await import('node:fs');
20
+
13
21
  const { createRepl } = await import('./bin/repl.basics.js')
14
22
 
15
- const help =
23
+ let replServer = undefined
24
+ const help = () =>
16
25
  `
17
26
  Welcome to the @nejs/basic-extensions repl bootstrapping process, the
18
27
  following objects are in scope for you to use. Additionally, all the
19
28
  extensions and patches included in basic-extensions are enabled and
20
29
  ready for testing.
21
30
 
22
- Patch - the Patch class from @nejs/extension
23
- Extension - the Extension class from @nejs/extension
24
- inspect - node.js util.inspect() function
25
-
26
- accessor - the descriptor utils accessor() function
27
- data - the descriptor utils data() function
28
- isDescriptor - the descriptor utils isDescriptor() function
29
-
31
+ ${replServer ? replServer.generateStateString() : `
32
+ Use the command \x1b[1mstate\x1b[22m to see all variables
33
+ exposed to the REPL for testing.
34
+ `}
35
+ Additionally
30
36
  .help - See REPL dot commands
31
37
  info - Show this menu again
38
+ state - See the exposed REPL variables again
32
39
  `
33
40
 
34
- createRepl({
41
+ replServer = createRepl({
35
42
  commands: [
36
43
  ['info', {
37
44
  action() {
38
- console.log(help);
45
+ console.log(help());
39
46
  this?.displayPrompt()
40
47
  },
41
48
  help: 'Shows info about defined properties'
@@ -44,10 +51,11 @@ createRepl({
44
51
  exports: {
45
52
  Patch: nejsExtension.Patch,
46
53
  Extension: nejsExtension.Extension,
47
- inspect,
48
- accessor, data, isDescriptor,
54
+
55
+ accessor, data, describe, describeMany, extract, inspect,
56
+ isAccessor, isData, isDescriptor, redescribe, ts,
49
57
  },
50
58
  onReady() {
51
- console.log(help)
59
+ console.log(help())
52
60
  }
53
61
  })
package/repl.history CHANGED
@@ -1,30 +1,30 @@
1
- Colors.blue.rgb
2
- Colors.red.rgb
3
- Colors = Enum('Colors', ['red', 'blue', 'green'], { get rgb() { switch (this.real) { case 'red': return 'rgb(255,0,0)'; case 'green': return 'rgb(0, 255, 0)'; case 'blue': return 'rgb(0,0,255)'; } } })
4
- Colors.red.rgb
5
- Colors = Enum('Colors', ['red', 'blue', 'green'], { get rgb() { switch (this.real) { case 'red': return 'rgb(255,0,0)'; case 'green': return 'rgb(0, 255, 0)'; case 'blue': return 'rgb(0,0,255)'; } } })
6
- Colors.red
7
- Colors.red.rgb
8
- Colors = Enum('Colors', ['red', 'blue', 'green'], { get rgb() { switch (this.real) { case 'red': return 'rgb(255,0,0)'; case 'green': return 'rgb(0, 255, 0)'; case 'blue': return 'rgb(0,0,255)'; } } })
9
- props = { get rgb() { switch (this.real) { case 'red': return 'rgb(255,0,0)'; case 'green': return 'rgb(0, 255, 0)'; case 'blue': return 'rgb(0,0,255)'; } } }
10
- isDescriptor(undefined, true)
11
- isDescriptor(false, true)
12
- isDescriptor(null, true)
13
- isDescriptor(false)
14
- isDescriptor(null, true)
15
- Object.defineProperty({}, 'name', accessor('Brie', false))
16
- accessor.keys
17
- {accessor} = await import('./dist/cjs/utils/index.js')
18
- await import('./dist/cjs/utils/index.js')
19
- await import('./dist/utils/index.js')
20
- await import('./utils')
21
- await import('./utils')(
22
- Gender.Female.value
23
- Gender.Female.real
24
- Gender.Female
25
- Gender.NonBinary
26
- Gender.Male.compare(null)
27
- Gender.Male.compare(TransWoman)
28
- TransMan.compare(TransWoman)
29
- TransMan = Gender.Transgender('Trans Man')
30
- TransWoman = Gender.Transgender('Trans Woman')Gender', ['Male', 'Female', ['Transgender'], 'NonBinary']), name: 'Brielle'}, {configurable: false, enumerable: false })
1
+ (20n).within(10n, 20n, false)
2
+ (20n).within(10n, 20n, true)
3
+ (30n).within(10n, 20n, true)
4
+ (33n).within(10n, 20n, true)
5
+ (-33n).within(10n, 20n, true)
6
+ (-33n).within(10n, 20n)
7
+ (-33n).clamp(10n, 30n)
8
+ BigInt.max(10n, BigInt.min(30n, -33n))
9
+ -33n.clamp(10n, 30n)
10
+ BigIntExtensions.apply(); BigIntPrototypeExtensions.apply()
11
+ var { BigIntExtensions, BigIntPrototypeExtensions } = await import('./dist/mjs/big.int.extension.js')
12
+ -33n.clamp(10n, 25n)
13
+ BigIntExtensions.apply(); BigIntPrototypeExtensions.apply()
14
+ var { BigIntExtensions, BigIntPrototypeExtensions } = await import('./dist/mjs/big.int.extension.js')
15
+ BigInt.max(10n, BigInt.min(25n, -33n))
16
+ BigInt.max(10n, -33n)
17
+ BigInt.min(25n, -33n)
18
+ -33n.clamp(10n, 25n)
19
+ 33n.clamp(10n, 25n)
20
+ BigIntExtensions.apply(); BigIntPrototypeExtensions.apply()
21
+ var { BigIntExtensions, BigIntPrototypeExtensions } = await import('./dist/mjs/big.int.extension.js')
22
+ BigInt(Number.MAX_VALUE + 1)
23
+ BigInt.max
24
+ Number.MAX_VALUE
25
+ BigInt(Number.MAX_VALUE)
26
+ BigInt(Infinity)
27
+ 33n.clamp(5n,25n)
28
+ BigIntPrototypeExtensions.apply()
29
+ BigIntExtensions.apply()
30
+ var { BigIntExtensions, BigIntPrototypeExtensions } = await import('./dist/mjs/big.int.extension.js')js/math.extension.js')p) } })get(p) } return Reflect.get(t,p,r) }, has(t,p) { if (t.has(p)) { return true } return Reflect.has(t,p) } })ypeOf(m)ame')ame', 'Brielle']])wner')mport ('.')og','This is being logged'], ['error', 'But something terrible happened'])p('Fun', ['log','This is being logged'], ['error', 'But something terrible happened']).print()ics','underline']).print()int() { console.log(this) }brave new world', ['italics','underline']))['italics','underline'])
@@ -15,52 +15,126 @@ import { Patch } from '@nejs/extension'
15
15
  * // Now the `BigInt` class has additional methods available
16
16
  */
17
17
  export const BigIntExtensions = new Patch(BigInt, {
18
- /**
19
- * Determines if the supplied `value` is a `BigInt`. This check is
20
- * performed by first checking the `typeof` the `value` and then
21
- * checking to see if the `value` is an `instanceof` `BigInt`
22
- *
23
- * @param {*} value The value that needs to be checked to determine
24
- * if it is a `BigInt` or not
25
- * @returns {boolean} `true` if the supplied `value` is a `BigInt`,
26
- * `false` otherwise
27
- *
28
- * @example
29
- * const bigInt = 1234567890123456789012345678901234567890n
30
- * isBigInt(bigInt) // true
31
- * isBigInt(1234567890123456789012345678901234567890) // false
32
- * isBigInt('1234567890123456789012345678901234567890') // false
33
- * isBigInt(BigInt('1234567890123456789012345678901234567890')) // true
34
- */
35
- isBigInt(value) {
36
- return typeof value === 'bigint' || value instanceof BigInt
37
- },
18
+ [Patch.kMutablyHidden]: {
19
+ /**
20
+ * Checks if all or some of the supplied values are numbers.
21
+ *
22
+ * This method uses the `Array.prototype.every` or `Array.prototype.some`
23
+ * method to check if all or some of the supplied values are numbers,
24
+ * respectively. The method to use is determined by the `which` parameter.
25
+ *
26
+ * @param {string} [which='every'] - Determines the method to use for the
27
+ * check. Can be either 'every' or 'some'. Defaults to 'every'.
28
+ * @param {...*} values - The values to check.
29
+ * @returns {boolean} - Returns `true` if all or some of the values are
30
+ * numbers (based on the `which` parameter), `false` otherwise.
31
+ *
32
+ * @example
33
+ * areNumbers('every', 1, 2, 3) // true
34
+ * areNumbers('some', 1, '2', 3) // true
35
+ * areNumbers('every', 1, '2', 3) // false
36
+ */
37
+ areBigInts(which = ['every', 'some'][0], ...values) {
38
+ if (which !== 'every' && which !== 'some') {
39
+ return false
40
+ }
38
41
 
39
- /**
40
- * Conditionally returns a value based on whether the supplied
41
- * `value` is a `BigInt` or not. If the `value` is a `BigInt`,
42
- * the `thenValue` will be returned. If it is not a `BigInt`,
43
- * the `elseValue` will be returned instead.
44
- *
45
- * @param {any} value The value to check to determine if it is a
46
- * `BigInt`
47
- * @param {any} thenValue The value to return if the supplied
48
- * `value` is a `BigInt`
49
- * @param {any} elseValue The value to return if the supplied
50
- * `value` is not a `BigInt`
51
- * @returns {any} Either the `thenValue` or `elseValue` depending
52
- * on if the supplied `value` is a `BigInt`
53
- *
54
- * @example
55
- * const bigInt = 1234567890123456789012345678901234567890n
56
- * const num = 42
57
- * ifBigInt(bigInt, 'is a BigInt', 'not a BigInt')
58
- * // 'is a BigInt'
59
- * ifBigInt(num, 'is a BigInt', 'not a BigInt')
60
- * // 'not a BigInt'
61
- */
62
- ifBigInt(value, thenValue, elseValue) {
63
- return isThenElse(this.isBigInt(value), thenValue, elseValue)
42
+ return values[which](num => this.isBigInt(num))
43
+ },
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
+ /**
67
+ * Conditionally returns a value based on whether the supplied
68
+ * `value` is a `BigInt` or not. If the `value` is a `BigInt`,
69
+ * the `thenValue` will be returned. If it is not a `BigInt`,
70
+ * the `elseValue` will be returned instead.
71
+ *
72
+ * @param {any} value The value to check to determine if it is a
73
+ * `BigInt`
74
+ * @param {any} thenValue The value to return if the supplied
75
+ * `value` is a `BigInt`
76
+ * @param {any} elseValue The value to return if the supplied
77
+ * `value` is not a `BigInt`
78
+ * @returns {any} Either the `thenValue` or `elseValue` depending
79
+ * on if the supplied `value` is a `BigInt`
80
+ *
81
+ * @example
82
+ * const bigInt = 1234567890123456789012345678901234567890n
83
+ * const num = 42
84
+ * ifBigInt(bigInt, 'is a BigInt', 'not a BigInt')
85
+ * // 'is a BigInt'
86
+ * ifBigInt(num, 'is a BigInt', 'not a BigInt')
87
+ * // 'not a BigInt'
88
+ */
89
+ ifBigInt(value, thenValue, elseValue) {
90
+ return isThenElse(this.isBigInt(value), thenValue, elseValue)
91
+ },
92
+
93
+ /**
94
+ * The Math.min() static method returns the smallest of the numbers given
95
+ * as input parameters, or Infinity if there are no parameters.
96
+ *
97
+ * @param {bigint|number} values value1, …, valueN – Zero or more numbers
98
+ * among which the lowest value will be selected and returned.
99
+ * @returns {bigint|number|Infinity} The smallest of the given numbers.
100
+ * Returns Infinity if no parameters are provided.
101
+ */
102
+ min(...values) {
103
+ const sorter = (l,r) => l < r ? -1 : l > r ? 1 : 0
104
+
105
+ if (!values.length)
106
+ return Infinity
107
+
108
+ if (values.every(n => typeof n === 'bigint')) {
109
+ return values.toSorted(sorter).at(0)
110
+ }
111
+ else {
112
+ throw new TypeError('All supplied values must be of type bigint')
113
+ }
114
+ },
115
+
116
+ /**
117
+ * The Math.max() static method returns the largest of the numbers given
118
+ * as input parameters, or Infinity if there are no parameters.
119
+ *
120
+ * @param {bigint|number} values value1, …, valueN – Zero or more numbers
121
+ * among which the largest value will be selected and returned.
122
+ * @returns {bigint|number|Infinity} The largest of the given numbers.
123
+ * Returns Infinity if no parameters are provided.
124
+ */
125
+ max(...values) {
126
+ const sorter = (l,r) => l < r ? -1 : l > r ? 1 : 0
127
+
128
+ if (!values.length)
129
+ return Infinity
130
+
131
+ if (values.every(n => typeof n === 'bigint')) {
132
+ return values.toSorted(sorter).at(-1)
133
+ }
134
+ else {
135
+ throw new TypeError('All supplied values must be of type bigint')
136
+ }
137
+ },
64
138
  },
65
139
  })
66
140
 
@@ -81,6 +155,36 @@ const { isBigInt: pIsBigInt, ifBigInt: pIfBigInt } = BigIntExtensions.patches
81
155
  * // Now the `BigInt` prototype has additional methods available
82
156
  */
83
157
  export const BigIntPrototypeExtensions = new Patch(BigInt.prototype, {
158
+ /**
159
+ * Clamps a value between a minimum and maximum value.
160
+ *
161
+ * This method checks if the provided value and the min and max bounds are
162
+ * numbers. If they are not, it returns the original value. If they are,
163
+ * it ensures that the value does not go below the minimum value or above
164
+ * the maximum value.
165
+ *
166
+ * @param {bigint} [minValue=BigInt(-Number.MAX_VALUE)] - The minimum value.
167
+ * Defaults to BigInt(-Number.MAX_VALUE).
168
+ * @param {bigint} [maxValue=BigInt(Number.MAX_VALUE)] - The maximum value.
169
+ * Defaults to BigInt(Number.MAX_VALUE).
170
+ * @returns {bigint} - Returns the clamped value if all parameters are
171
+ * big integers.
172
+ *
173
+ * @example
174
+ * (10n).clamp(1n, 5n) // returns 5n
175
+ * (-10n).clamp(1n, 5n) // returns 1n
176
+ * (3n).clamp(1n, 5n) // returns 3n
177
+ */
178
+ clamp(
179
+ minValue = BigInt(-Number.MAX_VALUE),
180
+ maxValue = BigInt(Number.MAX_VALUE)
181
+ ) {
182
+ if (typeof minValue !== 'bigint' || typeof maxValue !== 'bigint')
183
+ throw new TypeError('All values must be big integers')
184
+
185
+ return BigInt.max(minValue, BigInt.min(maxValue, this))
186
+ },
187
+
84
188
  /**
85
189
  * A getter method that returns an object representation of the BigInt
86
190
  * instance.
@@ -149,6 +253,28 @@ export const BigIntPrototypeExtensions = new Patch(BigInt.prototype, {
149
253
  ifBigInt(thenValue, elseValue) {
150
254
  return pIfBigInt(this, thenValue, elseValue)
151
255
  },
256
+
257
+ /**
258
+ * Provides a way when dealing with numbers to determine if
259
+ * a given number is within a range of values. By default, if
260
+ * no parameters are supplied, it always returns true since
261
+ * the default range is -Infinity to +Infinity. Additionally,
262
+ * by default, the number will always be less than the supplied
263
+ * max unless inclusive is set to true.
264
+ *
265
+ * @param min the lower range value, defaults to -Infinity
266
+ * @param max the upper range value, defaults to +Infinity
267
+ * @param inclusive defaults to false, set to true if you
268
+ * want the max value to less than and equals to
269
+ * @returns {boolean} true if within the range, false otherwise
270
+ */
271
+ within(
272
+ min = BigInt(-Infinity),
273
+ max = BigInt(Infinity),
274
+ inclusive = false
275
+ ) {
276
+ return this >= min && (inclusive ? this <= max : this < max)
277
+ }
152
278
  })
153
279
 
154
280
  // NOTE to self; this is repeated here otherwise a circular reference from