@giveback007/util-lib 2.1.3 → 2.3.1
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/dist/@state.types.d.ts +16 -0
- package/dist/@state.types.js +3 -0
- package/dist/@state.types.js.map +1 -0
- package/dist/@types.d.ts +10 -11
- package/dist/general.d.ts +0 -2
- package/dist/general.js +1 -4
- package/dist/general.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/number.d.ts +1 -8
- package/dist/number.js +3 -11
- package/dist/number.js.map +1 -1
- package/dist/state-manager.d.ts +74 -0
- package/dist/state-manager.js +227 -0
- package/dist/state-manager.js.map +1 -0
- package/dist/time.d.ts +134 -3
- package/dist/time.js +48 -8
- package/dist/time.js.map +1 -1
- package/package.json +1 -1
- package/src/@state.types.ts +19 -0
- package/src/@types.ts +28 -18
- package/src/general.ts +0 -4
- package/src/index.ts +4 -2
- package/src/number.ts +2 -11
- package/src/state-manager.ts +301 -0
- package/src/time.ts +50 -8
package/dist/time.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Temporal } from '@js-temporal/polyfill';
|
|
2
2
|
import { AnyDate, MsTime, num, str, TimeArr, TimeObj } from '.';
|
|
3
|
+
/** A promise that waits `ms` amount of milliseconds to execute */
|
|
4
|
+
export declare const wait: (ms: number) => Promise<void>;
|
|
5
|
+
/** Resolves after a given msEpoch passes. `msEpoch - Date.now()` */
|
|
6
|
+
export declare const waitUntil: (msEpoch: number) => Promise<void>;
|
|
3
7
|
export declare const msTime: MsTime;
|
|
4
|
-
export declare const weekTuple: readonly ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
5
8
|
/**
|
|
6
9
|
* Converts Date to time of day.
|
|
7
10
|
* Good for use in logging.
|
|
@@ -35,6 +38,7 @@ export declare const time: {
|
|
|
35
38
|
/** fnc(n) -> add min to now */
|
|
36
39
|
readonly min: (n: num) => number;
|
|
37
40
|
};
|
|
41
|
+
/** Convert ms into: */
|
|
38
42
|
readonly msTo: {
|
|
39
43
|
/** fnc(n) -> from ms to num of seconds */
|
|
40
44
|
readonly sec: (ms: num) => number;
|
|
@@ -51,15 +55,142 @@ export declare const time: {
|
|
|
51
55
|
};
|
|
52
56
|
export declare const humanizedTime: (date: AnyDate) => string | null;
|
|
53
57
|
/** A Date substitute, to make working with time easier and more versatile */
|
|
54
|
-
export declare function getTime(t
|
|
58
|
+
export declare function getTime(t?: Temporal.ZonedDateTime | TimeArr | num | str | 'now',
|
|
59
|
+
/** For a list of available timeZone values run:
|
|
60
|
+
* `Intl.supportedValuesOf('timeZone');` */
|
|
61
|
+
timeZone?: str): {
|
|
55
62
|
zonedTemporal: Temporal.ZonedDateTime;
|
|
56
63
|
date: Date;
|
|
57
64
|
tzOffsetMin: number;
|
|
58
65
|
localISO: string;
|
|
59
|
-
|
|
66
|
+
obj: TimeObj;
|
|
60
67
|
isoStr: string;
|
|
61
68
|
timeZone: string;
|
|
62
69
|
epochMs: number;
|
|
70
|
+
startOf: {
|
|
71
|
+
day: () => {
|
|
72
|
+
zonedTemporal: Temporal.ZonedDateTime;
|
|
73
|
+
date: Date;
|
|
74
|
+
tzOffsetMin: number;
|
|
75
|
+
localISO: string;
|
|
76
|
+
obj: TimeObj;
|
|
77
|
+
isoStr: string;
|
|
78
|
+
timeZone: string;
|
|
79
|
+
epochMs: number;
|
|
80
|
+
startOf: {
|
|
81
|
+
day: /*elided*/ any;
|
|
82
|
+
month: () => /*elided*/ any;
|
|
83
|
+
year: () => /*elided*/ any;
|
|
84
|
+
};
|
|
85
|
+
endOf: {
|
|
86
|
+
day: () => /*elided*/ any;
|
|
87
|
+
month: () => /*elided*/ any;
|
|
88
|
+
year: () => /*elided*/ any;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
month: () => {
|
|
92
|
+
zonedTemporal: Temporal.ZonedDateTime;
|
|
93
|
+
date: Date;
|
|
94
|
+
tzOffsetMin: number;
|
|
95
|
+
localISO: string;
|
|
96
|
+
obj: TimeObj;
|
|
97
|
+
isoStr: string;
|
|
98
|
+
timeZone: string;
|
|
99
|
+
epochMs: number;
|
|
100
|
+
startOf: {
|
|
101
|
+
day: () => /*elided*/ any;
|
|
102
|
+
month: /*elided*/ any;
|
|
103
|
+
year: () => /*elided*/ any;
|
|
104
|
+
};
|
|
105
|
+
endOf: {
|
|
106
|
+
day: () => /*elided*/ any;
|
|
107
|
+
month: () => /*elided*/ any;
|
|
108
|
+
year: () => /*elided*/ any;
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
year: () => {
|
|
112
|
+
zonedTemporal: Temporal.ZonedDateTime;
|
|
113
|
+
date: Date;
|
|
114
|
+
tzOffsetMin: number;
|
|
115
|
+
localISO: string;
|
|
116
|
+
obj: TimeObj;
|
|
117
|
+
isoStr: string;
|
|
118
|
+
timeZone: string;
|
|
119
|
+
epochMs: number;
|
|
120
|
+
startOf: {
|
|
121
|
+
day: () => /*elided*/ any;
|
|
122
|
+
month: () => /*elided*/ any;
|
|
123
|
+
year: /*elided*/ any;
|
|
124
|
+
};
|
|
125
|
+
endOf: {
|
|
126
|
+
day: () => /*elided*/ any;
|
|
127
|
+
month: () => /*elided*/ any;
|
|
128
|
+
year: () => /*elided*/ any;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
endOf: {
|
|
133
|
+
day: () => {
|
|
134
|
+
zonedTemporal: Temporal.ZonedDateTime;
|
|
135
|
+
date: Date;
|
|
136
|
+
tzOffsetMin: number;
|
|
137
|
+
localISO: string;
|
|
138
|
+
obj: TimeObj;
|
|
139
|
+
isoStr: string;
|
|
140
|
+
timeZone: string;
|
|
141
|
+
epochMs: number;
|
|
142
|
+
startOf: {
|
|
143
|
+
day: () => /*elided*/ any;
|
|
144
|
+
month: () => /*elided*/ any;
|
|
145
|
+
year: () => /*elided*/ any;
|
|
146
|
+
};
|
|
147
|
+
endOf: {
|
|
148
|
+
day: /*elided*/ any;
|
|
149
|
+
month: () => /*elided*/ any;
|
|
150
|
+
year: () => /*elided*/ any;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
month: () => {
|
|
154
|
+
zonedTemporal: Temporal.ZonedDateTime;
|
|
155
|
+
date: Date;
|
|
156
|
+
tzOffsetMin: number;
|
|
157
|
+
localISO: string;
|
|
158
|
+
obj: TimeObj;
|
|
159
|
+
isoStr: string;
|
|
160
|
+
timeZone: string;
|
|
161
|
+
epochMs: number;
|
|
162
|
+
startOf: {
|
|
163
|
+
day: () => /*elided*/ any;
|
|
164
|
+
month: () => /*elided*/ any;
|
|
165
|
+
year: () => /*elided*/ any;
|
|
166
|
+
};
|
|
167
|
+
endOf: {
|
|
168
|
+
day: () => /*elided*/ any;
|
|
169
|
+
month: /*elided*/ any;
|
|
170
|
+
year: () => /*elided*/ any;
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
year: () => {
|
|
174
|
+
zonedTemporal: Temporal.ZonedDateTime;
|
|
175
|
+
date: Date;
|
|
176
|
+
tzOffsetMin: number;
|
|
177
|
+
localISO: string;
|
|
178
|
+
obj: TimeObj;
|
|
179
|
+
isoStr: string;
|
|
180
|
+
timeZone: string;
|
|
181
|
+
epochMs: number;
|
|
182
|
+
startOf: {
|
|
183
|
+
day: () => /*elided*/ any;
|
|
184
|
+
month: () => /*elided*/ any;
|
|
185
|
+
year: () => /*elided*/ any;
|
|
186
|
+
};
|
|
187
|
+
endOf: {
|
|
188
|
+
day: () => /*elided*/ any;
|
|
189
|
+
month: () => /*elided*/ any;
|
|
190
|
+
year: /*elided*/ any;
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
};
|
|
63
194
|
};
|
|
64
195
|
export declare const timeObj: (dt: Date | Temporal.ZonedDateTime) => TimeObj;
|
|
65
196
|
export declare function parseDate(d: AnyDate): Date | null;
|
package/dist/time.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.timeObj = exports.humanizedTime = exports.time = exports.
|
|
3
|
+
exports.timeObj = exports.humanizedTime = exports.time = exports.msTime = exports.waitUntil = exports.wait = void 0;
|
|
4
4
|
exports.dateTimeToString = dateTimeToString;
|
|
5
5
|
exports.getTime = getTime;
|
|
6
6
|
exports.parseDate = parseDate;
|
|
7
7
|
const polyfill_1 = require("@js-temporal/polyfill");
|
|
8
8
|
const _1 = require(".");
|
|
9
|
+
/** A promise that waits `ms` amount of milliseconds to execute */
|
|
10
|
+
const wait = (ms) => new Promise((res) => setTimeout(() => res(), ms));
|
|
11
|
+
exports.wait = wait;
|
|
12
|
+
/** Resolves after a given msEpoch passes. `msEpoch - Date.now()` */
|
|
13
|
+
const waitUntil = (msEpoch) => new Promise(res => setTimeout(res, msEpoch - Date.now()));
|
|
14
|
+
exports.waitUntil = waitUntil;
|
|
9
15
|
exports.msTime = {
|
|
10
16
|
s: 1000,
|
|
11
17
|
m: 60000,
|
|
@@ -13,7 +19,6 @@ exports.msTime = {
|
|
|
13
19
|
d: 86400000,
|
|
14
20
|
w: 604800000,
|
|
15
21
|
};
|
|
16
|
-
exports.weekTuple = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
17
22
|
/**
|
|
18
23
|
* Converts Date to time of day.
|
|
19
24
|
* Good for use in logging.
|
|
@@ -53,6 +58,7 @@ exports.time = {
|
|
|
53
58
|
/** fnc(n) -> add min to now */
|
|
54
59
|
min: (n) => Date.now() + n * exports.msTime.m,
|
|
55
60
|
},
|
|
61
|
+
/** Convert ms into: */
|
|
56
62
|
msTo: {
|
|
57
63
|
/** fnc(n) -> from ms to num of seconds */
|
|
58
64
|
sec: (ms) => ms / exports.msTime.s,
|
|
@@ -95,10 +101,16 @@ const humanizedTime = (date) => {
|
|
|
95
101
|
}
|
|
96
102
|
};
|
|
97
103
|
exports.humanizedTime = humanizedTime;
|
|
98
|
-
// Intl.supportedValuesOf('timeZone');
|
|
99
104
|
/** A Date substitute, to make working with time easier and more versatile */
|
|
100
|
-
function getTime(t,
|
|
101
|
-
|
|
105
|
+
function getTime(t,
|
|
106
|
+
/** For a list of available timeZone values run:
|
|
107
|
+
* `Intl.supportedValuesOf('timeZone');` */
|
|
108
|
+
timeZone) {
|
|
109
|
+
if (t === undefined || t === 'now')
|
|
110
|
+
t = Date.now();
|
|
111
|
+
if (!timeZone)
|
|
112
|
+
timeZone = t instanceof polyfill_1.Temporal.ZonedDateTime ?
|
|
113
|
+
t.timeZoneId : Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
102
114
|
let zonedTemporal;
|
|
103
115
|
let date;
|
|
104
116
|
let isoStr;
|
|
@@ -110,6 +122,9 @@ function getTime(t, timeZone) {
|
|
|
110
122
|
else if ((0, _1.isType)(t, 'string')) {
|
|
111
123
|
zonedTemporal = polyfill_1.Temporal.ZonedDateTime.from(t + `[${timeZone}]`);
|
|
112
124
|
}
|
|
125
|
+
else if (t instanceof polyfill_1.Temporal.ZonedDateTime) {
|
|
126
|
+
zonedTemporal = t.withTimeZone(timeZone);
|
|
127
|
+
}
|
|
113
128
|
else {
|
|
114
129
|
zonedTemporal = polyfill_1.Temporal.ZonedDateTime.from({
|
|
115
130
|
year: t[0],
|
|
@@ -128,10 +143,35 @@ function getTime(t, timeZone) {
|
|
|
128
143
|
date,
|
|
129
144
|
tzOffsetMin: zonedTemporal.offsetNanoseconds / 60_000_000_000,
|
|
130
145
|
localISO: zonedTemporal.toJSON(),
|
|
131
|
-
|
|
146
|
+
obj: (0, exports.timeObj)(zonedTemporal),
|
|
132
147
|
isoStr: isoStr || date.toISOString(),
|
|
133
148
|
timeZone: timeZone,
|
|
134
149
|
epochMs: zonedTemporal.epochMilliseconds,
|
|
150
|
+
startOf: {
|
|
151
|
+
day: () => getTime(zonedTemporal.startOfDay(), timeZone),
|
|
152
|
+
month: () => {
|
|
153
|
+
const zT = zonedTemporal;
|
|
154
|
+
return getTime([zT.year, zT.month, 1, 0, 0, 0, 0], timeZone);
|
|
155
|
+
},
|
|
156
|
+
year: () => {
|
|
157
|
+
const zT = zonedTemporal;
|
|
158
|
+
return getTime([zT.year, 1, 1, 0, 0, 0, 0], timeZone);
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
endOf: {
|
|
162
|
+
day: () => {
|
|
163
|
+
const zT = zonedTemporal;
|
|
164
|
+
return getTime([zT.year, zT.month, zT.day, 23, 59, 59, 999], timeZone);
|
|
165
|
+
},
|
|
166
|
+
month: () => {
|
|
167
|
+
const zT = zonedTemporal;
|
|
168
|
+
return getTime([zT.year, zT.month, zT.daysInMonth, 23, 59, 59, 999], timeZone);
|
|
169
|
+
},
|
|
170
|
+
year: () => {
|
|
171
|
+
const zT = zonedTemporal;
|
|
172
|
+
return getTime([zT.year, 12, 31, 23, 59, 59, 999], timeZone);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
135
175
|
};
|
|
136
176
|
}
|
|
137
177
|
const timeObj = (dt) => dt instanceof Date ? ({
|
|
@@ -142,7 +182,7 @@ const timeObj = (dt) => dt instanceof Date ? ({
|
|
|
142
182
|
min: dt.getMinutes(),
|
|
143
183
|
sec: dt.getSeconds(),
|
|
144
184
|
ms: dt.getMilliseconds(),
|
|
145
|
-
wDay:
|
|
185
|
+
wDay: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][dt.getDay()]
|
|
146
186
|
}) : ({
|
|
147
187
|
y: dt.year,
|
|
148
188
|
m: dt.month,
|
|
@@ -151,7 +191,7 @@ const timeObj = (dt) => dt instanceof Date ? ({
|
|
|
151
191
|
min: dt.minute,
|
|
152
192
|
sec: dt.second,
|
|
153
193
|
ms: dt.millisecond,
|
|
154
|
-
wDay:
|
|
194
|
+
wDay: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'][dt.dayOfWeek - 1]
|
|
155
195
|
});
|
|
156
196
|
exports.timeObj = timeObj;
|
|
157
197
|
function parseDate(d) {
|
package/dist/time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type Immutable<T> = {
|
|
2
|
+
readonly [K in keyof T]: Immutable<T[K]>;
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
export type Action<T extends string, D = undefined> =
|
|
6
|
+
Readonly<D extends undefined ? {type: T} : { type: T; data: D; }>;
|
|
7
|
+
|
|
8
|
+
export type stateSubFct<S> = (s: S, prev: S | null) => any;
|
|
9
|
+
|
|
10
|
+
export type actSubFct<
|
|
11
|
+
A extends Action<any, any>,
|
|
12
|
+
S = any
|
|
13
|
+
> = (a: A, s: S) => any;
|
|
14
|
+
|
|
15
|
+
export type lsOptions<P> = {
|
|
16
|
+
id: string;
|
|
17
|
+
useKeys?: P[];
|
|
18
|
+
ignoreKeys?: P[];
|
|
19
|
+
};
|
package/src/@types.ts
CHANGED
|
@@ -5,8 +5,9 @@ export type StrKeys<T> = Extract<keyof T, string>;
|
|
|
5
5
|
|
|
6
6
|
export type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
|
|
7
7
|
|
|
8
|
-
export type Optional<
|
|
9
|
-
|
|
8
|
+
export type Optional<
|
|
9
|
+
T, K extends keyof T = keyof T
|
|
10
|
+
> = { [P in K]?: T[P] };
|
|
10
11
|
|
|
11
12
|
export type ResolvedValue<T> =
|
|
12
13
|
T extends Promise <infer U> ? U : any;
|
|
@@ -62,9 +63,13 @@ export type MsTime = {
|
|
|
62
63
|
* type Y => "k1" | "k3"
|
|
63
64
|
* ```
|
|
64
65
|
*/
|
|
65
|
-
export type KeysOfValueType<O, T> = {
|
|
66
|
+
export type KeysOfValueType<O, T> = {
|
|
67
|
+
[I in keyof O]: O[I] extends T ? I : never
|
|
68
|
+
}[keyof O];
|
|
66
69
|
|
|
67
|
-
export type AwaitReturn<
|
|
70
|
+
export type AwaitReturn<
|
|
71
|
+
T extends AnyFnc<any | Promise<any>>
|
|
72
|
+
> = Awaited<ReturnType<T>>;
|
|
68
73
|
|
|
69
74
|
export type num = number;
|
|
70
75
|
export type str = string;
|
|
@@ -72,7 +77,14 @@ export type bol = boolean;
|
|
|
72
77
|
|
|
73
78
|
export type AnyFnc<T = any> = (...args: any[]) => T;
|
|
74
79
|
|
|
75
|
-
export type DayOfWeek =
|
|
80
|
+
export type DayOfWeek =
|
|
81
|
+
| 'Sun'
|
|
82
|
+
| 'Mon'
|
|
83
|
+
| 'Tue'
|
|
84
|
+
| 'Wed'
|
|
85
|
+
| 'Thu'
|
|
86
|
+
| 'Fri'
|
|
87
|
+
| 'Sat';
|
|
76
88
|
|
|
77
89
|
export type TimeObj = {
|
|
78
90
|
y: num;
|
|
@@ -85,18 +97,16 @@ export type TimeObj = {
|
|
|
85
97
|
wDay: DayOfWeek;
|
|
86
98
|
};
|
|
87
99
|
|
|
88
|
-
export type
|
|
89
|
-
y:
|
|
90
|
-
m?:
|
|
91
|
-
d?:
|
|
92
|
-
h?:
|
|
93
|
-
min?:
|
|
94
|
-
sec?:
|
|
95
|
-
ms?:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
export type
|
|
99
|
-
|
|
100
|
-
export type AnyDate = string | number | Date | TimeObj | PartialTimeObj | TimeArr;
|
|
100
|
+
export type TimeArr = [
|
|
101
|
+
y: num,
|
|
102
|
+
m?: num,
|
|
103
|
+
d?: num,
|
|
104
|
+
h?: num,
|
|
105
|
+
min?: num,
|
|
106
|
+
sec?: num,
|
|
107
|
+
ms?: num
|
|
108
|
+
];
|
|
109
|
+
|
|
110
|
+
export type AnyDate = string | number | Date | TimeObj | TimeArr;
|
|
101
111
|
|
|
102
112
|
export type Dict<T> = { [id: string]: T };
|
package/src/general.ts
CHANGED
|
@@ -39,10 +39,6 @@ export const interval = (
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/** A promise that waits `ms` amount of milliseconds to execute */
|
|
43
|
-
export const wait = (ms: number): Promise<void> =>
|
|
44
|
-
new Promise((res) => setTimeout(() => res(), ms));
|
|
45
|
-
|
|
46
42
|
const usubAllFunct = (x: any, unsubName = 'unsubscribe') =>
|
|
47
43
|
isType(x, 'object')
|
|
48
44
|
&&
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
export * from './@types';
|
|
2
|
+
export * from './@state.types'
|
|
2
3
|
export * from './array';
|
|
3
4
|
export * from './clone';
|
|
4
5
|
export * from './equality';
|
|
5
6
|
export * from './general';
|
|
7
|
+
export * from './http';
|
|
6
8
|
export * from './iterate';
|
|
7
9
|
export * from './number';
|
|
8
10
|
export * from './object';
|
|
11
|
+
export * from './state-manager';
|
|
9
12
|
export * from './string';
|
|
10
13
|
export * from './test';
|
|
11
|
-
export * from './time';
|
|
12
|
-
export * from './http';
|
|
14
|
+
export * from './time';
|
package/src/number.ts
CHANGED
|
@@ -26,17 +26,8 @@ export const average = (nArr: number[]) =>
|
|
|
26
26
|
* decPlaces(1.1276, 2) //=> 1.13
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
|
-
export const
|
|
30
|
-
parseFloat(n.toFixed(
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @example
|
|
34
|
-
* ```js
|
|
35
|
-
* numberWithCommas(1000000) //=> '1,000,000'
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export const numberWithCommas = (n: number | string) =>
|
|
39
|
-
n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
29
|
+
export const numFixed = (n: number, fractionDigits: number) =>
|
|
30
|
+
parseFloat(n.toFixed(fractionDigits));
|
|
40
31
|
|
|
41
32
|
/**
|
|
42
33
|
* Takes a number || number[] and min & max, will generate a
|