@giveback007/util-lib 0.25.4 → 1.0.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/README.md +7 -7
- package/dist/@types.d.ts +69 -42
- package/dist/@types.js +2 -2
- package/dist/array.d.ts +66 -66
- package/dist/array.js +128 -128
- package/dist/array.js.map +1 -1
- package/dist/clone.d.ts +2 -2
- package/dist/clone.js +44 -45
- package/dist/clone.js.map +1 -1
- package/dist/equality.d.ts +1 -1
- package/dist/equality.js +81 -82
- package/dist/equality.js.map +1 -1
- package/dist/general.d.ts +44 -37
- package/dist/general.js +172 -139
- package/dist/general.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +27 -23
- package/dist/index.js.map +1 -1
- package/dist/iterate.d.ts +44 -44
- package/dist/iterate.js +43 -44
- package/dist/iterate.js.map +1 -1
- package/dist/number.d.ts +33 -32
- package/dist/number.js +57 -55
- package/dist/number.js.map +1 -1
- package/dist/object.d.ts +45 -49
- package/dist/object.js +82 -92
- package/dist/object.js.map +1 -1
- package/dist/string.d.ts +3 -4
- package/dist/string.js +8 -18
- package/dist/string.js.map +1 -1
- package/dist/test.d.ts +40 -41
- package/dist/test.js +65 -67
- package/dist/test.js.map +1 -1
- package/dist/time.d.ts +87 -93
- package/dist/time.js +230 -174
- package/dist/time.js.map +1 -1
- package/package.json +33 -45
- package/src/@types.ts +102 -67
- package/src/array.ts +175 -175
- package/src/clone.ts +34 -35
- package/src/equality.ts +80 -80
- package/src/general.ts +192 -152
- package/src/index.ts +11 -11
- package/src/iterate.ts +86 -86
- package/src/number.ts +64 -62
- package/src/object.ts +109 -123
- package/src/string.ts +6 -20
- package/src/test.ts +71 -74
- package/src/time.ts +268 -219
- package/dist/node/file-systems.d.ts +0 -1
- package/dist/node/file-systems.js +0 -16
- package/dist/node/file-systems.js.map +0 -1
- package/dist/node/index.d.ts +0 -1
- package/dist/node/index.js +0 -14
- package/dist/node/index.js.map +0 -1
- package/src/node/file-systems.ts +0 -16
- package/src/node/index.ts +0 -1
package/dist/clone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,wBAAwB;AACxB,4CAA4C
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,wBAAwB;AACxB,4CAA4C;;AAG5C,sBA4BC;AA7BD,gDAAgD;AAChD,SAAgB,KAAK,CAAI,CAAI;IACzB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAM,EAAE,CAAM,EAAE,CAAM,CAAC;IACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,IAAI;QAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAQ,CAAC;IAEjD,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAEjC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;QAChB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC7C,IAAI,CAAC,YAAY,IAAI;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;;gBAC1C,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,CAAC,GAAG,EAAE,CAAC;IAEP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC,GAAI,CAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK;YAAE,SAAS;QACzD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aAC7C,IAAI,CAAC,YAAY,IAAI;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;;YAC1C,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
|
package/dist/equality.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function equal(a: any, b: any): boolean;
|
|
1
|
+
export declare function equal(a: any, b: any): boolean;
|
package/dist/equality.js
CHANGED
|
@@ -1,83 +1,82 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* tslint:disable */
|
|
3
|
-
// original source from:
|
|
4
|
-
// https://github.com/epoberezkin/fast-deep-equal
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.equal =
|
|
7
|
-
function equal(a, b) {
|
|
8
|
-
if (a === b)
|
|
9
|
-
return true;
|
|
10
|
-
if (a && b && typeof a === 'object' && typeof b === 'object') {
|
|
11
|
-
if (a.constructor !== b.constructor)
|
|
12
|
-
return false;
|
|
13
|
-
var length, i, keys;
|
|
14
|
-
if (Array.isArray(a)) {
|
|
15
|
-
length = a.length;
|
|
16
|
-
if (length !== b.length)
|
|
17
|
-
return false;
|
|
18
|
-
for (i = length; i-- !== 0;)
|
|
19
|
-
if (!equal(a[i], b[i]))
|
|
20
|
-
return false;
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
if ((a instanceof Map) && (b instanceof Map)) {
|
|
24
|
-
if (a.size !== b.size)
|
|
25
|
-
return false;
|
|
26
|
-
for (i of a.entries())
|
|
27
|
-
if (!b.has(i[0]))
|
|
28
|
-
return false;
|
|
29
|
-
for (i of a.entries())
|
|
30
|
-
if (!equal(i[1], b.get(i[0])))
|
|
31
|
-
return false;
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
if ((a instanceof Set) && (b instanceof Set)) {
|
|
35
|
-
if (a.size !== b.size)
|
|
36
|
-
return false;
|
|
37
|
-
for (i of a.entries())
|
|
38
|
-
if (!b.has(i[0]))
|
|
39
|
-
return false;
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
|
|
43
|
-
length = a.length;
|
|
44
|
-
if (length != b.length)
|
|
45
|
-
return false;
|
|
46
|
-
for (i = length; i-- !== 0;)
|
|
47
|
-
if (a[i] !== b[i])
|
|
48
|
-
return false;
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
if (a.constructor === RegExp)
|
|
52
|
-
return a.source === b.source && a.flags === b.flags;
|
|
53
|
-
if (a.valueOf !== Object.prototype.valueOf)
|
|
54
|
-
return a.valueOf() === b.valueOf();
|
|
55
|
-
if (a.toString !== Object.prototype.toString)
|
|
56
|
-
return a.toString() === b.toString();
|
|
57
|
-
keys = Object.keys(a);
|
|
58
|
-
length = keys.length;
|
|
59
|
-
if (length !== Object.keys(b).length)
|
|
60
|
-
return false;
|
|
61
|
-
for (i = length; i-- !== 0;)
|
|
62
|
-
if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
|
|
63
|
-
return false;
|
|
64
|
-
for (i = length; i-- !== 0;) {
|
|
65
|
-
var key = keys[i];
|
|
66
|
-
if (key === '_owner' && a.$$typeof) {
|
|
67
|
-
// React-specific: avoid traversing React elements'
|
|
68
|
-
// _owner. _owner contains circular references
|
|
69
|
-
// and is not needed when comparing the actual elements
|
|
70
|
-
// (and not their owners)
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
if (!equal(a[key], b[key]))
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
// true if both NaN, false otherwise
|
|
79
|
-
return a !== a && b !== b;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
;
|
|
1
|
+
"use strict";
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
// original source from:
|
|
4
|
+
// https://github.com/epoberezkin/fast-deep-equal
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.equal = equal;
|
|
7
|
+
function equal(a, b) {
|
|
8
|
+
if (a === b)
|
|
9
|
+
return true;
|
|
10
|
+
if (a && b && typeof a === 'object' && typeof b === 'object') {
|
|
11
|
+
if (a.constructor !== b.constructor)
|
|
12
|
+
return false;
|
|
13
|
+
var length, i, keys;
|
|
14
|
+
if (Array.isArray(a)) {
|
|
15
|
+
length = a.length;
|
|
16
|
+
if (length !== b.length)
|
|
17
|
+
return false;
|
|
18
|
+
for (i = length; i-- !== 0;)
|
|
19
|
+
if (!equal(a[i], b[i]))
|
|
20
|
+
return false;
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if ((a instanceof Map) && (b instanceof Map)) {
|
|
24
|
+
if (a.size !== b.size)
|
|
25
|
+
return false;
|
|
26
|
+
for (i of a.entries())
|
|
27
|
+
if (!b.has(i[0]))
|
|
28
|
+
return false;
|
|
29
|
+
for (i of a.entries())
|
|
30
|
+
if (!equal(i[1], b.get(i[0])))
|
|
31
|
+
return false;
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if ((a instanceof Set) && (b instanceof Set)) {
|
|
35
|
+
if (a.size !== b.size)
|
|
36
|
+
return false;
|
|
37
|
+
for (i of a.entries())
|
|
38
|
+
if (!b.has(i[0]))
|
|
39
|
+
return false;
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
|
|
43
|
+
length = a.length;
|
|
44
|
+
if (length != b.length)
|
|
45
|
+
return false;
|
|
46
|
+
for (i = length; i-- !== 0;)
|
|
47
|
+
if (a[i] !== b[i])
|
|
48
|
+
return false;
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
if (a.constructor === RegExp)
|
|
52
|
+
return a.source === b.source && a.flags === b.flags;
|
|
53
|
+
if (a.valueOf !== Object.prototype.valueOf)
|
|
54
|
+
return a.valueOf() === b.valueOf();
|
|
55
|
+
if (a.toString !== Object.prototype.toString)
|
|
56
|
+
return a.toString() === b.toString();
|
|
57
|
+
keys = Object.keys(a);
|
|
58
|
+
length = keys.length;
|
|
59
|
+
if (length !== Object.keys(b).length)
|
|
60
|
+
return false;
|
|
61
|
+
for (i = length; i-- !== 0;)
|
|
62
|
+
if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
|
|
63
|
+
return false;
|
|
64
|
+
for (i = length; i-- !== 0;) {
|
|
65
|
+
var key = keys[i];
|
|
66
|
+
if (key === '_owner' && a.$$typeof) {
|
|
67
|
+
// React-specific: avoid traversing React elements'
|
|
68
|
+
// _owner. _owner contains circular references
|
|
69
|
+
// and is not needed when comparing the actual elements
|
|
70
|
+
// (and not their owners)
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (!equal(a[key], b[key]))
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
// true if both NaN, false otherwise
|
|
79
|
+
return a !== a && b !== b;
|
|
80
|
+
}
|
|
81
|
+
;
|
|
83
82
|
//# sourceMappingURL=equality.js.map
|
package/dist/equality.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equality.js","sourceRoot":"","sources":["../src/equality.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,wBAAwB;AACxB,iDAAiD
|
|
1
|
+
{"version":3,"file":"equality.js","sourceRoot":"","sources":["../src/equality.ts"],"names":[],"mappings":"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"}
|
package/dist/general.d.ts
CHANGED
|
@@ -1,37 +1,44 @@
|
|
|
1
|
-
import type { AnyObj, JsType } from '.';
|
|
2
|
-
/**
|
|
3
|
-
* @example
|
|
4
|
-
* ```js
|
|
5
|
-
* interval((i) => console.log('idx: ' + i), 1000, 2))
|
|
6
|
-
* // (log =>) "idx: 0"
|
|
7
|
-
* // (log =>) "idx: 1"
|
|
8
|
-
* // only ran twice because maxTimes was set to: `2` (third parameter)
|
|
9
|
-
*
|
|
10
|
-
* interval((i, stop) => i === 10 && stop());
|
|
11
|
-
* // when i is 10 will stop the interval
|
|
12
|
-
* ```
|
|
13
|
-
*/
|
|
14
|
-
export declare const interval: (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export declare
|
|
30
|
-
|
|
31
|
-
export declare
|
|
32
|
-
export declare
|
|
33
|
-
export declare
|
|
34
|
-
export declare
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
1
|
+
import type { AnyFnc, AnyObj, JsType, num, str } from '.';
|
|
2
|
+
/**
|
|
3
|
+
* @example
|
|
4
|
+
* ```js
|
|
5
|
+
* interval((i) => console.log('idx: ' + i), 1000, 2))
|
|
6
|
+
* // (log =>) "idx: 0"
|
|
7
|
+
* // (log =>) "idx: 1"
|
|
8
|
+
* // only ran twice because maxTimes was set to: `2` (third parameter)
|
|
9
|
+
*
|
|
10
|
+
* interval((i, stop) => i === 10 && stop());
|
|
11
|
+
* // when i is 10 will stop the interval
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const interval: (func: (i: number, stop: () => void) => any, ms?: number,
|
|
15
|
+
/** n times to run the interval */
|
|
16
|
+
maxTimes?: number) => {
|
|
17
|
+
/** Stop the interval */
|
|
18
|
+
stop: () => void;
|
|
19
|
+
};
|
|
20
|
+
/** A promise that waits `ms` amount of milliseconds to execute */
|
|
21
|
+
export declare const wait: (ms: number) => Promise<void>;
|
|
22
|
+
export declare function unsubAll(objOrArr: AnyObj | any[], unsubName?: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Alternative to console.log in that it will clone the obj.
|
|
25
|
+
*
|
|
26
|
+
* Useful for when it is need to see the object in a specific
|
|
27
|
+
* state instance.
|
|
28
|
+
*/
|
|
29
|
+
export declare const cloneLog: (x: any) => void;
|
|
30
|
+
/** An improved version of native `typeof` */
|
|
31
|
+
export declare function type(val: any): JsType;
|
|
32
|
+
export declare function assertType<T extends JsType>(val: any, types: T | T[]): asserts val is T;
|
|
33
|
+
export declare const uuid: () => string;
|
|
34
|
+
export declare const randomColorHex: () => string;
|
|
35
|
+
export declare const debounce: (fn: AnyFnc, ms: num) => (this: any, ...args: any[]) => void;
|
|
36
|
+
export declare function debounceTimeOut(): (fct: Function | "cancel", ms?: number) => void;
|
|
37
|
+
export declare const debounceById: (fn: AnyFnc, ms: num, id: str | num) => void;
|
|
38
|
+
export declare function promiseOut<T = any>(): {
|
|
39
|
+
error: (reason?: any) => void;
|
|
40
|
+
resolve: (value: T) => void;
|
|
41
|
+
promise: Promise<T>;
|
|
42
|
+
};
|
|
43
|
+
export declare function concurrentTasks<T, Res = any>(arr: T[], fn: (x: T, idx: number) => Promise<Res> | Res, nOfConcurrentTasks?: number): Promise<Res[]>;
|
|
44
|
+
export declare function hash(str: string): string;
|
package/dist/general.js
CHANGED
|
@@ -1,140 +1,173 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
stop
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (val
|
|
72
|
-
return '
|
|
73
|
-
else
|
|
74
|
-
return
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
r = (
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
function debounceTimeOut() {
|
|
125
|
-
let timeoutId = null;
|
|
126
|
-
return (fct, ms) => {
|
|
127
|
-
if (timeoutId)
|
|
128
|
-
clearTimeout(timeoutId);
|
|
129
|
-
if (fct !== 'cancel')
|
|
130
|
-
timeoutId = setTimeout(fct, ms || 0);
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
exports.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.debounceById = exports.debounce = exports.randomColorHex = exports.uuid = exports.cloneLog = exports.wait = exports.interval = void 0;
|
|
4
|
+
exports.unsubAll = unsubAll;
|
|
5
|
+
exports.type = type;
|
|
6
|
+
exports.assertType = assertType;
|
|
7
|
+
exports.debounceTimeOut = debounceTimeOut;
|
|
8
|
+
exports.promiseOut = promiseOut;
|
|
9
|
+
exports.concurrentTasks = concurrentTasks;
|
|
10
|
+
exports.hash = hash;
|
|
11
|
+
const _1 = require(".");
|
|
12
|
+
/**
|
|
13
|
+
* @example
|
|
14
|
+
* ```js
|
|
15
|
+
* interval((i) => console.log('idx: ' + i), 1000, 2))
|
|
16
|
+
* // (log =>) "idx: 0"
|
|
17
|
+
* // (log =>) "idx: 1"
|
|
18
|
+
* // only ran twice because maxTimes was set to: `2` (third parameter)
|
|
19
|
+
*
|
|
20
|
+
* interval((i, stop) => i === 10 && stop());
|
|
21
|
+
* // when i is 10 will stop the interval
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
const interval = (func, ms = 0,
|
|
25
|
+
/** n times to run the interval */
|
|
26
|
+
maxTimes = Infinity) => {
|
|
27
|
+
maxTimes = Math.floor(maxTimes);
|
|
28
|
+
if (maxTimes < 1)
|
|
29
|
+
return { stop: () => void (0) };
|
|
30
|
+
let i = 0;
|
|
31
|
+
const stop = () => clearInterval(itv);
|
|
32
|
+
const itv = setInterval(() => {
|
|
33
|
+
func(i, stop);
|
|
34
|
+
i++;
|
|
35
|
+
if (maxTimes && i >= maxTimes)
|
|
36
|
+
stop();
|
|
37
|
+
}, ms);
|
|
38
|
+
return {
|
|
39
|
+
/** Stop the interval */
|
|
40
|
+
stop
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
exports.interval = interval;
|
|
44
|
+
/** A promise that waits `ms` amount of milliseconds to execute */
|
|
45
|
+
const wait = (ms) => new Promise((res) => setTimeout(() => res(), ms));
|
|
46
|
+
exports.wait = wait;
|
|
47
|
+
const usubAllFunct = (x, unsubName = 'unsubscribe') => (0, _1.isType)(x, 'object')
|
|
48
|
+
&&
|
|
49
|
+
(0, _1.hasKey)(x, unsubName) ? x[unsubName]() : null;
|
|
50
|
+
function unsubAll(objOrArr, unsubName = 'unsubscribe') {
|
|
51
|
+
if ((0, _1.isType)(objOrArr, 'array'))
|
|
52
|
+
objOrArr.forEach(x => usubAllFunct(x, unsubName));
|
|
53
|
+
else if ((0, _1.isType)(objOrArr, 'object'))
|
|
54
|
+
(0, _1.objMap)(objOrArr, ({ val }) => usubAllFunct(val, unsubName));
|
|
55
|
+
else
|
|
56
|
+
throw Error('argument "objOrArr" must be of type "object" or "array"');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Alternative to console.log in that it will clone the obj.
|
|
60
|
+
*
|
|
61
|
+
* Useful for when it is need to see the object in a specific
|
|
62
|
+
* state instance.
|
|
63
|
+
*/
|
|
64
|
+
const cloneLog = (x) => console.log((0, _1.clone)(x));
|
|
65
|
+
exports.cloneLog = cloneLog;
|
|
66
|
+
/** An improved version of native `typeof` */
|
|
67
|
+
function type(val) {
|
|
68
|
+
if (typeof val === 'object') {
|
|
69
|
+
if (Array.isArray(val))
|
|
70
|
+
return 'array';
|
|
71
|
+
else if (val === null)
|
|
72
|
+
return 'null';
|
|
73
|
+
else
|
|
74
|
+
return 'object';
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
if (val !== val)
|
|
78
|
+
return 'NaN';
|
|
79
|
+
else
|
|
80
|
+
return typeof val;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// https://httptoolkit.tech/blog/5-big-features-of-typescript-3.7#assert-signatures
|
|
84
|
+
function assertType(val, types) {
|
|
85
|
+
if (!(0, _1.isType)(types, 'array'))
|
|
86
|
+
types = [types];
|
|
87
|
+
for (const t of types)
|
|
88
|
+
if ((0, _1.isType)(val, t))
|
|
89
|
+
return;
|
|
90
|
+
throw Error(`value needs to be of type: ${types.join(' || ')}`);
|
|
91
|
+
}
|
|
92
|
+
const uuid = () => {
|
|
93
|
+
let d = new Date().getTime();
|
|
94
|
+
let d2 = (performance
|
|
95
|
+
&&
|
|
96
|
+
performance.now
|
|
97
|
+
&&
|
|
98
|
+
(performance.now() * 1000)) || 0;
|
|
99
|
+
const str = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
|
|
100
|
+
return str.replace(/[xy]/g, (c) => {
|
|
101
|
+
let r = Math.random() * 16;
|
|
102
|
+
if (d > 0) {
|
|
103
|
+
r = (d + r) % 16 | 0;
|
|
104
|
+
d = Math.floor(d / 16);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
r = (d2 + r) % 16 | 0;
|
|
108
|
+
d2 = Math.floor(d2 / 16);
|
|
109
|
+
}
|
|
110
|
+
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
exports.uuid = uuid;
|
|
114
|
+
const randomColorHex = () => '#' + ((1 << 24) * Math.random() | 0).toString(16);
|
|
115
|
+
exports.randomColorHex = randomColorHex;
|
|
116
|
+
const debounce = (fn, ms) => {
|
|
117
|
+
let timeoutId;
|
|
118
|
+
return function (...args) {
|
|
119
|
+
clearTimeout(timeoutId);
|
|
120
|
+
timeoutId = setTimeout(() => fn.apply(this, args), ms);
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
exports.debounce = debounce;
|
|
124
|
+
function debounceTimeOut() {
|
|
125
|
+
let timeoutId = null;
|
|
126
|
+
return (fct, ms) => {
|
|
127
|
+
if (timeoutId)
|
|
128
|
+
clearTimeout(timeoutId);
|
|
129
|
+
if (fct !== 'cancel')
|
|
130
|
+
timeoutId = setTimeout(fct, ms || 0);
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
exports.debounceById = (() => {
|
|
134
|
+
const debounceDict = {};
|
|
135
|
+
return (fn, ms, id) => {
|
|
136
|
+
const dId = debounceDict[id];
|
|
137
|
+
if (dId)
|
|
138
|
+
clearTimeout(dId);
|
|
139
|
+
debounceDict[id] = setTimeout(fn, ms);
|
|
140
|
+
};
|
|
141
|
+
})();
|
|
142
|
+
function promiseOut() {
|
|
143
|
+
let resolve;
|
|
144
|
+
let error;
|
|
145
|
+
const promise = new Promise((res, err) => {
|
|
146
|
+
resolve = res;
|
|
147
|
+
error = err;
|
|
148
|
+
});
|
|
149
|
+
return {
|
|
150
|
+
error: error,
|
|
151
|
+
resolve: resolve,
|
|
152
|
+
promise,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
async function concurrentTasks(arr, fn, nOfConcurrentTasks = 8) {
|
|
156
|
+
let idx = -1;
|
|
157
|
+
const result = [];
|
|
158
|
+
await Promise.all(Array(nOfConcurrentTasks).fill(0).map(async () => {
|
|
159
|
+
let data;
|
|
160
|
+
while (data = arr[++idx]) {
|
|
161
|
+
const i = idx;
|
|
162
|
+
result[i] = await fn(data, idx);
|
|
163
|
+
}
|
|
164
|
+
}));
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
function hash(str) {
|
|
168
|
+
let hash = 0n;
|
|
169
|
+
for (let i = 0; i < str.length; i++)
|
|
170
|
+
hash = (hash * 31n + BigInt(str.charCodeAt(i))) & 0xffffffffffffffffn;
|
|
171
|
+
return hash.toString(36);
|
|
172
|
+
}
|
|
140
173
|
//# sourceMappingURL=general.js.map
|
package/dist/general.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["../src/general.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../src/general.ts"],"names":[],"mappings":"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"}
|