Skip to content

Commit d78b5a2

Browse files
feat: isBetween to support strings as well
1 parent 7edda2f commit d78b5a2

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/number/number.util.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ test.each([
2727
[2, 2, 1, false],
2828
[2, 2, 2, false],
2929
[2, Number.NEGATIVE_INFINITY, 3, true],
30+
['2020-01-03', '2020-01-01', '2020-01-05', true],
3031
])('_isBetween(%s, %s, %s) === %s', (n, min, max, result) => {
3132
expect(_isBetween(n, min, max)).toBe(result)
3233
})

src/number/number.util.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,14 @@ export function _runLessOften(percent: number): boolean {
3434
* _isBetween(3, 1, 5) // true
3535
* _isBetween(5, 1, 5) // false
3636
* _isBetween(7, 1, 5) // false
37+
*
38+
* Also works with strings:
39+
* _isBetween('2020-01-03', '2020-01-01', '2020-01-05') // true
3740
*/
38-
export function _isBetween(
39-
x: number,
40-
min: number,
41-
max: number,
41+
export function _isBetween<T extends number | string>(
42+
x: T,
43+
min: T,
44+
max: T,
4245
incl: Inclusiveness = '[)',
4346
): boolean {
4447
if (incl === '[)') {
@@ -48,7 +51,6 @@ export function _isBetween(
4851
} else if (incl === '(]') {
4952
return x > min && x <= max
5053
}
51-
// ()
5254
return x > min && x < max
5355
}
5456

0 commit comments

Comments
 (0)