@giveback007/util-lib 0.22.7 → 0.24.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/general.d.ts +7 -3
- package/dist/general.js +16 -9
- package/dist/general.js.map +1 -1
- package/dist/object.d.ts +2 -2
- package/dist/object.js +2 -2
- package/dist/test.d.ts +3 -1
- package/dist/test.js +7 -3
- package/dist/test.js.map +1 -1
- package/dist/time.d.ts +23 -5
- package/dist/time.js +71 -43
- package/dist/time.js.map +1 -1
- package/package.json +1 -1
- package/src/general.ts +18 -8
- package/src/object.ts +2 -2
- package/src/test.ts +4 -1
- package/src/time.ts +76 -45
package/dist/general.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const interval: (funct: (i: number) => any, ms: number, times?: n
|
|
|
11
11
|
};
|
|
12
12
|
/** A promise that waits `ms` amount of milliseconds to execute */
|
|
13
13
|
export declare const wait: (ms: number) => Promise<void>;
|
|
14
|
-
export declare function unsubAll(objOrArr: AnyObj | any[]): void;
|
|
14
|
+
export declare function unsubAll(objOrArr: AnyObj | any[], unsubName?: string): void;
|
|
15
15
|
/**
|
|
16
16
|
* Alternative to console.log in that it will clone the obj.
|
|
17
17
|
*
|
|
@@ -22,6 +22,10 @@ export declare const cloneLog: (x: any) => void;
|
|
|
22
22
|
/** An improved version of native `typeof` */
|
|
23
23
|
export declare function type(val: any): JsType;
|
|
24
24
|
export declare function assertType<T extends JsType>(val: any, types: T | T[]): asserts val is T;
|
|
25
|
-
export declare const
|
|
25
|
+
export declare const uuid: () => string;
|
|
26
26
|
export declare const randomColorHex: () => string;
|
|
27
|
-
export declare function debounceTimeOut(): (fct: Function, ms
|
|
27
|
+
export declare function debounceTimeOut(): (fct: Function | 'cancel', ms?: number | undefined) => void;
|
|
28
|
+
export declare function promiseOut<T = any>(): {
|
|
29
|
+
resolve: (value: T) => void;
|
|
30
|
+
promise: Promise<unknown>;
|
|
31
|
+
};
|
package/dist/general.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.debounceTimeOut = exports.randomColorHex = exports.
|
|
3
|
+
exports.promiseOut = exports.debounceTimeOut = exports.randomColorHex = exports.uuid = exports.assertType = exports.type = exports.cloneLog = exports.unsubAll = exports.wait = exports.interval = void 0;
|
|
4
4
|
const _1 = require(".");
|
|
5
5
|
/**
|
|
6
6
|
* @example
|
|
@@ -25,14 +25,14 @@ exports.interval = interval;
|
|
|
25
25
|
/** A promise that waits `ms` amount of milliseconds to execute */
|
|
26
26
|
const wait = (ms) => new Promise((res) => setTimeout(() => res(), ms));
|
|
27
27
|
exports.wait = wait;
|
|
28
|
-
const usubAllFunct = (x) => _1.isType(x, 'object')
|
|
28
|
+
const usubAllFunct = (x, unsubName = 'unsubscribe') => _1.isType(x, 'object')
|
|
29
29
|
&&
|
|
30
|
-
_1.hasKey(x,
|
|
31
|
-
function unsubAll(objOrArr) {
|
|
30
|
+
_1.hasKey(x, unsubName) ? x[unsubName]() : null;
|
|
31
|
+
function unsubAll(objOrArr, unsubName = 'unsubscribe') {
|
|
32
32
|
if (_1.isType(objOrArr, 'array'))
|
|
33
|
-
objOrArr.forEach(x => usubAllFunct(x));
|
|
33
|
+
objOrArr.forEach(x => usubAllFunct(x, unsubName));
|
|
34
34
|
else if (_1.isType(objOrArr, 'object'))
|
|
35
|
-
_1.objMap(objOrArr, ({ val }) => usubAllFunct(val));
|
|
35
|
+
_1.objMap(objOrArr, ({ val }) => usubAllFunct(val, unsubName));
|
|
36
36
|
else
|
|
37
37
|
throw Error('argument "objOrArr" must be of type "object" or "array"');
|
|
38
38
|
}
|
|
@@ -73,7 +73,7 @@ function assertType(val, types) {
|
|
|
73
73
|
throw Error(`value needs to be of type ${types.join(' || ')}`);
|
|
74
74
|
}
|
|
75
75
|
exports.assertType = assertType;
|
|
76
|
-
const
|
|
76
|
+
const uuid = () => {
|
|
77
77
|
let d = new Date().getTime();
|
|
78
78
|
let d2 = (performance
|
|
79
79
|
&&
|
|
@@ -94,7 +94,7 @@ const uiid = () => {
|
|
|
94
94
|
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
95
95
|
});
|
|
96
96
|
};
|
|
97
|
-
exports.
|
|
97
|
+
exports.uuid = uuid;
|
|
98
98
|
const randomColorHex = () => '#' + ((1 << 24) * Math.random() | 0).toString(16);
|
|
99
99
|
exports.randomColorHex = randomColorHex;
|
|
100
100
|
// export const jsonp = async <T = any>(
|
|
@@ -114,8 +114,15 @@ function debounceTimeOut() {
|
|
|
114
114
|
return (fct, ms) => {
|
|
115
115
|
if (timeoutId)
|
|
116
116
|
clearTimeout(timeoutId);
|
|
117
|
-
|
|
117
|
+
if (fct !== 'cancel')
|
|
118
|
+
timeoutId = setTimeout(fct, ms || 0);
|
|
118
119
|
};
|
|
119
120
|
}
|
|
120
121
|
exports.debounceTimeOut = debounceTimeOut;
|
|
122
|
+
function promiseOut() {
|
|
123
|
+
let resolve;
|
|
124
|
+
const promise = new Promise((res) => resolve = res);
|
|
125
|
+
return { resolve: resolve, promise };
|
|
126
|
+
}
|
|
127
|
+
exports.promiseOut = promiseOut;
|
|
121
128
|
//# 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":";;;AAEA,wBAAkD;AAElD;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CACpB,KAAyB,EACzB,EAAU,EACV,KAAc,EAChB,EAAE;IACA,IAAI,SAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC;QACpC,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAE1D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1B,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,CAAC,EAAE,CAAC;QAEJ,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC,CAAA;AAjBY,QAAA,QAAQ,YAiBpB;AAED,kEAAkE;AAC3D,MAAM,IAAI,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC9C,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AADzC,QAAA,IAAI,QACqC;AAEtD,MAAM,YAAY,GAAG,CAAC,CAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../src/general.ts"],"names":[],"mappings":"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"}
|
package/dist/object.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export declare const objResolve: (o: AnyObj, path: string) => any;
|
|
|
43
43
|
export declare const objSortKeys: <T extends {}>(o: T, compareFn?: ((a: keyof T, b: keyof T) => number) | undefined) => T;
|
|
44
44
|
/**
|
|
45
45
|
* Takes a dictionary/object made of Promises and Observables and
|
|
46
|
-
* extracts all values. This function will
|
|
47
|
-
* Observable/Promise
|
|
46
|
+
* extracts all values. This function will return resolved values from all
|
|
47
|
+
* Observable/Promise on the obj when all promises on object resolve.
|
|
48
48
|
*/
|
|
49
49
|
export declare function objPromiseAll<T extends Dict<Promise<any>>>(obj: T): Promise<{ [P in keyof T]: ResolvedValue<T[P]>; }>;
|
package/dist/object.js
CHANGED
|
@@ -74,8 +74,8 @@ const objSortKeys = (o, compareFn) => {
|
|
|
74
74
|
exports.objSortKeys = objSortKeys;
|
|
75
75
|
/**
|
|
76
76
|
* Takes a dictionary/object made of Promises and Observables and
|
|
77
|
-
* extracts all values. This function will
|
|
78
|
-
* Observable/Promise
|
|
77
|
+
* extracts all values. This function will return resolved values from all
|
|
78
|
+
* Observable/Promise on the obj when all promises on object resolve.
|
|
79
79
|
*/
|
|
80
80
|
function objPromiseAll(obj) {
|
|
81
81
|
const keyValues = exports.objKeyVals(obj);
|
package/dist/test.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { JsType } from '.';
|
|
2
2
|
import { JsTypeFind } from '.';
|
|
3
|
+
/** Check if `x` is equal to any of the values in the array. */
|
|
4
|
+
export declare const equalAny: (x: any, equals: any[]) => boolean;
|
|
3
5
|
/**
|
|
4
6
|
* Checks if object has the key, made as a function for type transfer.
|
|
5
7
|
*
|
package/dist/test.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidEmail = exports.nonValue = exports.nullOrEmpty = exports.isType = exports.hasKeys = exports.hasKey = void 0;
|
|
3
|
+
exports.isValidEmail = exports.nonValue = exports.nullOrEmpty = exports.isType = exports.hasKeys = exports.hasKey = exports.equalAny = void 0;
|
|
4
4
|
const _1 = require(".");
|
|
5
|
+
const _2 = require(".");
|
|
6
|
+
/** Check if `x` is equal to any of the values in the array. */
|
|
7
|
+
const equalAny = (x, equals) => !!equals.find((y) => _1.equal(x, y));
|
|
8
|
+
exports.equalAny = equalAny;
|
|
5
9
|
/**
|
|
6
10
|
* Checks if object has the key, made as a function for type transfer.
|
|
7
11
|
*
|
|
@@ -34,7 +38,7 @@ exports.hasKeys = hasKeys;
|
|
|
34
38
|
* isType(null, 'undefined') //=> false
|
|
35
39
|
* ```
|
|
36
40
|
*/
|
|
37
|
-
const isType = (val, testType) =>
|
|
41
|
+
const isType = (val, testType) => _2.type(val) === testType;
|
|
38
42
|
exports.isType = isType;
|
|
39
43
|
/** any of the values in the first "example" return `true`
|
|
40
44
|
* @example
|
|
@@ -52,7 +56,7 @@ function nullOrEmpty(x) {
|
|
|
52
56
|
return !x.length;
|
|
53
57
|
// object // { key: 'val' } => false, { } => true
|
|
54
58
|
if (exports.isType(x, 'object'))
|
|
55
|
-
return !
|
|
59
|
+
return !_2.objVals(x).length;
|
|
56
60
|
return false;
|
|
57
61
|
}
|
|
58
62
|
exports.nullOrEmpty = nullOrEmpty;
|
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;AAAA,wBAAkC;AAClC,wBAA8C;AAE9C,+DAA+D;AACxD,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,MAAa,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAAxE,QAAA,QAAQ,YAAgE;AAErF;;;;;;GAMG;AACI,MAAM,MAAM,GAAG,CAEpB,GAAQ,EAAE,GAAM,EAA4B,EAAE,CAC9C,cAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAHtC,QAAA,MAAM,UAGgC;AAEnD,4FAA4F;AAC5F,SAAgB,OAAO,CAErB,GAAQ,EAAE,IAAS;IACnB,IAAI,CAAC,cAAM,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,IAAI;QACpB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IAE7C,OAAO,IAAI,CAAC;AACd,CAAC;AATD,0BASC;AAED;;;;;;;;;;;;GAYG;AACI,MAAM,MAAM,GAAG,CACpB,GAAQ,EAAE,QAAW,EACC,EAAE,CAAC,OAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC;AAFrC,QAAA,MAAM,UAE+B;AAElD;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,CAAM;IAEhC,oBAAoB;IACpB,IAAI,gBAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7B,iCAAiC;IACjC,IAAI,cAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,cAAM,CAAC,CAAC,EAAE,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhE,iDAAiD;IACjD,IAAI,cAAM,CAAC,CAAC,EAAE,QAAQ,CAAC;QAAE,OAAO,CAAC,UAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEnD,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,kCAYC;AAED,mCAAmC;AAC5B,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAA6B,EAAE,CAC9D,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC;AADvB,QAAA,QAAQ,YACe;AAE7B,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAC5C,2JAA2J,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAD5J,QAAA,YAAY,gBACgJ"}
|
package/dist/time.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { MsTime } from '.';
|
|
2
2
|
export declare const msTime: MsTime;
|
|
3
|
+
export declare const weekTuple: readonly ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
|
|
3
4
|
/**
|
|
4
5
|
* Converts Date to time of day.
|
|
5
6
|
* Good for use in loging.
|
|
@@ -54,9 +55,26 @@ export declare const dys: (d: number) => number;
|
|
|
54
55
|
export declare const weeks: (w: number) => number;
|
|
55
56
|
/** Analog of weeks */
|
|
56
57
|
export declare const wks: (w: number) => number;
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
58
|
+
/** Gives the 'start' and 'end' of a day.
|
|
59
|
+
*
|
|
60
|
+
* Start of day is the first ms of the day
|
|
61
|
+
*
|
|
62
|
+
* End of day is the last ms of the day
|
|
60
63
|
*/
|
|
61
|
-
export declare
|
|
64
|
+
export declare function getDayStartEnd(t: number | Date, type?: 'unix' | 'local'): {
|
|
65
|
+
start: Date;
|
|
66
|
+
end: Date;
|
|
67
|
+
};
|
|
68
|
+
export declare function weekStartEnd(t: number | Date, weekStart?: 'sun' | 'mon', type?: 'unix' | 'local'): {
|
|
69
|
+
start: Date;
|
|
70
|
+
end: Date;
|
|
71
|
+
};
|
|
72
|
+
export declare function monthStartEnd(t: number | Date, type?: 'unix' | 'local'): {
|
|
73
|
+
start: Date;
|
|
74
|
+
end: Date;
|
|
75
|
+
};
|
|
76
|
+
export declare function yearStartEnd(t: number | Date, type?: 'unix' | 'local'): {
|
|
77
|
+
start: Date;
|
|
78
|
+
end: Date;
|
|
79
|
+
};
|
|
62
80
|
export {};
|
package/dist/time.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.yearStartEnd = exports.monthStartEnd = exports.weekStartEnd = exports.getDayStartEnd = exports.wks = exports.weeks = exports.dys = exports.days = exports.hrs = exports.hours = exports.min = exports.minutes = exports.sec = exports.seconds = exports.msToTime = exports.msToWks = exports.msToDys = exports.msToHrs = exports.msToMin = exports.msToSec = exports.dateTimeToString = exports.weekTuple = exports.msTime = void 0;
|
|
4
|
+
const _1 = require(".");
|
|
4
5
|
exports.msTime = {
|
|
5
6
|
s: 1000,
|
|
6
7
|
m: 60000,
|
|
@@ -8,6 +9,7 @@ exports.msTime = {
|
|
|
8
9
|
d: 86400000,
|
|
9
10
|
w: 604800000,
|
|
10
11
|
};
|
|
12
|
+
exports.weekTuple = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
|
|
11
13
|
/**
|
|
12
14
|
* Converts Date to time of day.
|
|
13
15
|
* Good for use in loging.
|
|
@@ -80,47 +82,73 @@ const weeks = (w) => w * exports.msTime.w;
|
|
|
80
82
|
exports.weeks = weeks;
|
|
81
83
|
/** Analog of weeks */
|
|
82
84
|
exports.wks = exports.weeks;
|
|
83
|
-
/**
|
|
84
|
-
*
|
|
85
|
-
*
|
|
85
|
+
/** Gives the 'start' and 'end' of a day.
|
|
86
|
+
*
|
|
87
|
+
* Start of day is the first ms of the day
|
|
88
|
+
*
|
|
89
|
+
* End of day is the last ms of the day
|
|
86
90
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
91
|
+
function getDayStartEnd(t, type = 'local') {
|
|
92
|
+
if (_1.isType(t, 'number'))
|
|
93
|
+
t = new Date(t);
|
|
94
|
+
const y = t.getFullYear();
|
|
95
|
+
const m = t.getMonth();
|
|
96
|
+
const d = t.getDate();
|
|
97
|
+
let start = new Date(y, m, d);
|
|
98
|
+
let end = new Date(y, m, d, 23, 59, 59, 999);
|
|
99
|
+
if (type === 'unix') {
|
|
100
|
+
const tzOffset = exports.min(start.getTimezoneOffset());
|
|
101
|
+
start = new Date(start.getTime() + tzOffset);
|
|
102
|
+
end = new Date(end.getTime() + tzOffset);
|
|
103
|
+
}
|
|
104
|
+
return { start, end };
|
|
105
|
+
}
|
|
106
|
+
exports.getDayStartEnd = getDayStartEnd;
|
|
107
|
+
function weekStartEnd(t, weekStart = 'sun', type = 'local') {
|
|
108
|
+
if (_1.isType(t, 'number'))
|
|
109
|
+
t = new Date(t);
|
|
110
|
+
const wd = t.getDay();
|
|
111
|
+
const startOffset = wd * -1 + (weekStart === 'mon' ? 1 : 0);
|
|
112
|
+
const endOffset = 6 + startOffset;
|
|
113
|
+
const s = new Date(t.getTime() + exports.days(startOffset));
|
|
114
|
+
const e = new Date(t.getTime() + exports.days(endOffset));
|
|
115
|
+
let start = new Date(s.getFullYear(), s.getMonth(), s.getDate());
|
|
116
|
+
let end = new Date(e.getFullYear(), e.getMonth(), e.getDate(), 23, 59, 59, 999);
|
|
117
|
+
if (type === 'unix') {
|
|
118
|
+
const tzOffset = exports.min(start.getTimezoneOffset());
|
|
119
|
+
start = new Date(start.getTime() + tzOffset);
|
|
120
|
+
end = new Date(end.getTime() + tzOffset);
|
|
121
|
+
}
|
|
122
|
+
return { start, end };
|
|
123
|
+
}
|
|
124
|
+
exports.weekStartEnd = weekStartEnd;
|
|
125
|
+
function monthStartEnd(t, type = 'local') {
|
|
126
|
+
if (_1.isType(t, 'number'))
|
|
127
|
+
t = new Date(t);
|
|
128
|
+
const y = t.getFullYear();
|
|
129
|
+
const m = t.getMonth();
|
|
130
|
+
let start = new Date(y, m, 1);
|
|
131
|
+
let end = new Date(y, m, 0, 23, 59, 59, 999);
|
|
132
|
+
if (type === 'unix') {
|
|
133
|
+
const tzOffset = exports.min(start.getTimezoneOffset());
|
|
134
|
+
start = new Date(start.getTime() + tzOffset);
|
|
135
|
+
end = new Date(end.getTime() + tzOffset);
|
|
136
|
+
}
|
|
137
|
+
return { start, end };
|
|
138
|
+
}
|
|
139
|
+
exports.monthStartEnd = monthStartEnd;
|
|
140
|
+
function yearStartEnd(t, type = 'local') {
|
|
141
|
+
if (_1.isType(t, 'number'))
|
|
142
|
+
t = new Date(t);
|
|
143
|
+
const y = t.getFullYear();
|
|
144
|
+
let start = new Date(y, 0, 1);
|
|
145
|
+
let end = new Date(y, 12, 0, 23, 59, 59, 999);
|
|
146
|
+
if (type === 'unix') {
|
|
147
|
+
const tzOffset = exports.min(start.getTimezoneOffset());
|
|
148
|
+
start = new Date(start.getTime() + tzOffset);
|
|
149
|
+
end = new Date(end.getTime() + tzOffset);
|
|
150
|
+
}
|
|
151
|
+
return { start, end };
|
|
152
|
+
}
|
|
153
|
+
exports.yearStartEnd = yearStartEnd;
|
|
126
154
|
//# sourceMappingURL=time.js.map
|
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
package/src/general.ts
CHANGED
|
@@ -32,15 +32,16 @@ export const interval = (
|
|
|
32
32
|
export const wait = (ms: number): Promise<void> =>
|
|
33
33
|
new Promise((res) => setTimeout(() => res(), ms));
|
|
34
34
|
|
|
35
|
-
const usubAllFunct = (x: any) =>
|
|
35
|
+
const usubAllFunct = (x: any, unsubName = 'unsubscribe') =>
|
|
36
36
|
isType(x, 'object')
|
|
37
37
|
&&
|
|
38
|
-
hasKey(x,
|
|
39
|
-
|
|
38
|
+
hasKey(x, unsubName) ? x[unsubName]() : null;
|
|
39
|
+
|
|
40
|
+
export function unsubAll(objOrArr: AnyObj | any[], unsubName = 'unsubscribe') {
|
|
40
41
|
if (isType(objOrArr, 'array'))
|
|
41
|
-
objOrArr.forEach(x => usubAllFunct(x));
|
|
42
|
+
objOrArr.forEach(x => usubAllFunct(x, unsubName));
|
|
42
43
|
else if (isType(objOrArr, 'object'))
|
|
43
|
-
objMap(objOrArr, ({ val }) => usubAllFunct(val));
|
|
44
|
+
objMap(objOrArr, ({ val }) => usubAllFunct(val, unsubName));
|
|
44
45
|
else
|
|
45
46
|
throw Error('argument "objOrArr" must be of type "object" or "array"');
|
|
46
47
|
}
|
|
@@ -77,7 +78,7 @@ export function assertType<T extends JsType>(
|
|
|
77
78
|
throw Error(`value needs to be of type ${types.join(' || ')}`)
|
|
78
79
|
}
|
|
79
80
|
|
|
80
|
-
export const
|
|
81
|
+
export const uuid = () =>
|
|
81
82
|
{
|
|
82
83
|
let d = new Date().getTime();
|
|
83
84
|
let d2 = (
|
|
@@ -123,8 +124,17 @@ export const randomColorHex = () =>
|
|
|
123
124
|
|
|
124
125
|
export function debounceTimeOut() {
|
|
125
126
|
let timeoutId: ReturnType<typeof setTimeout> | null = null;
|
|
126
|
-
|
|
127
|
+
|
|
128
|
+
return (fct: Function | 'cancel', ms?: number) => {
|
|
127
129
|
if (timeoutId) clearTimeout(timeoutId);
|
|
128
|
-
|
|
130
|
+
|
|
131
|
+
if (fct !== 'cancel')
|
|
132
|
+
timeoutId = setTimeout(fct, ms || 0) as any;
|
|
129
133
|
}
|
|
130
134
|
}
|
|
135
|
+
|
|
136
|
+
export function promiseOut<T = any>() {
|
|
137
|
+
let resolve: any;
|
|
138
|
+
const promise = new Promise((res) => resolve = res);
|
|
139
|
+
return { resolve: resolve as (value: T) => void, promise };
|
|
140
|
+
}
|
package/src/object.ts
CHANGED
|
@@ -103,8 +103,8 @@ export const objSortKeys = <T extends {}>(
|
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
105
|
* Takes a dictionary/object made of Promises and Observables and
|
|
106
|
-
* extracts all values. This function will
|
|
107
|
-
* Observable/Promise
|
|
106
|
+
* extracts all values. This function will return resolved values from all
|
|
107
|
+
* Observable/Promise on the obj when all promises on object resolve.
|
|
108
108
|
*/
|
|
109
109
|
export function objPromiseAll<T extends Dict<Promise<any>>>(obj: T) {
|
|
110
110
|
const keyValues = objKeyVals(obj);
|
package/src/test.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { equal, JsType } from '.';
|
|
2
2
|
import { JsTypeFind, objVals, type } from '.';
|
|
3
3
|
|
|
4
|
+
/** Check if `x` is equal to any of the values in the array. */
|
|
5
|
+
export const equalAny = (x: any, equals: any[]) => !!equals.find((y) => equal(x, y));
|
|
6
|
+
|
|
4
7
|
/**
|
|
5
8
|
* Checks if object has the key, made as a function for type transfer.
|
|
6
9
|
*
|
package/src/time.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import type { MsTime } from '.';
|
|
1
|
+
import { isType, MsTime } from '.';
|
|
3
2
|
|
|
4
3
|
export const msTime: MsTime = {
|
|
5
4
|
s: 1000,
|
|
@@ -9,6 +8,8 @@ export const msTime: MsTime = {
|
|
|
9
8
|
w: 604800000,
|
|
10
9
|
}
|
|
11
10
|
|
|
11
|
+
export const weekTuple = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'] as const;
|
|
12
|
+
|
|
12
13
|
/**
|
|
13
14
|
* Converts Date to time of day.
|
|
14
15
|
* Good for use in loging.
|
|
@@ -46,8 +47,7 @@ type timeObj = { d: number; h: number; m: number; s: number; ms: number; }
|
|
|
46
47
|
export function msToTime<T extends boolean>(msT: number, toObj?: boolean): string | timeObj;
|
|
47
48
|
export function msToTime<T extends boolean>(msT: number, toObj: true): timeObj;
|
|
48
49
|
export function msToTime<T extends boolean>(msT: number, toObj?: false): string;
|
|
49
|
-
export function msToTime(msT: number, toObj = false)
|
|
50
|
-
{
|
|
50
|
+
export function msToTime(msT: number, toObj = false) {
|
|
51
51
|
// N - number;
|
|
52
52
|
const msN = (msT % 1000);
|
|
53
53
|
let sN = Math.floor(msT / 1000);
|
|
@@ -100,58 +100,89 @@ export const weeks = (w: number) => w * msTime.w;
|
|
|
100
100
|
/** Analog of weeks */
|
|
101
101
|
export const wks = weeks;
|
|
102
102
|
|
|
103
|
-
/**
|
|
104
|
-
*
|
|
105
|
-
*
|
|
103
|
+
/** Gives the 'start' and 'end' of a day.
|
|
104
|
+
*
|
|
105
|
+
* Start of day is the first ms of the day
|
|
106
|
+
*
|
|
107
|
+
* End of day is the last ms of the day
|
|
106
108
|
*/
|
|
107
|
-
export
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
export function getDayStartEnd(t: number | Date, type: 'unix' | 'local' = 'local') {
|
|
110
|
+
if (isType(t, 'number')) t = new Date(t);
|
|
111
|
+
|
|
112
|
+
const y = t.getFullYear();
|
|
113
|
+
const m = t.getMonth();
|
|
114
|
+
const d = t.getDate();
|
|
115
|
+
|
|
116
|
+
let start = new Date(y, m, d);
|
|
117
|
+
let end = new Date(y, m, d, 23, 59, 59, 999);
|
|
118
|
+
|
|
119
|
+
if (type === 'unix') {
|
|
120
|
+
const tzOffset = min(start.getTimezoneOffset());
|
|
121
|
+
|
|
122
|
+
start = new Date(start.getTime() + tzOffset);
|
|
123
|
+
end = new Date(end.getTime() + tzOffset);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return { start, end };
|
|
111
127
|
}
|
|
112
128
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
// {
|
|
116
|
-
// const t = moment(unixMsTime).utc();
|
|
129
|
+
export function weekStartEnd(t: number | Date, weekStart: 'sun' | 'mon' = 'sun', type: 'unix' | 'local' = 'local') {
|
|
130
|
+
if (isType(t, 'number')) t = new Date(t);
|
|
117
131
|
|
|
118
|
-
|
|
119
|
-
// const start = t.valueOf();
|
|
132
|
+
const wd = t.getDay();
|
|
120
133
|
|
|
121
|
-
|
|
122
|
-
|
|
134
|
+
const startOffset = wd * -1 + (weekStart === 'mon' ? 1 : 0);
|
|
135
|
+
const endOffset = 6 + startOffset;
|
|
123
136
|
|
|
124
|
-
|
|
125
|
-
|
|
137
|
+
const s = new Date(t.getTime() + days(startOffset));
|
|
138
|
+
const e = new Date(t.getTime() + days(endOffset));
|
|
126
139
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// start: number;
|
|
130
|
-
// end: number;
|
|
131
|
-
// } =>
|
|
132
|
-
// {
|
|
133
|
-
// const year = moment(unixMsTime).utc().year();
|
|
134
|
-
// const month = ('0' + (moment(unixMsTime).utc().month() + 1)).slice(-2);
|
|
140
|
+
let start = new Date(s.getFullYear(), s.getMonth(), s.getDate());
|
|
141
|
+
let end = new Date(e.getFullYear(), e.getMonth(), e.getDate(), 23, 59, 59, 999);
|
|
135
142
|
|
|
136
|
-
|
|
137
|
-
|
|
143
|
+
if (type === 'unix') {
|
|
144
|
+
const tzOffset = min(start.getTimezoneOffset());
|
|
138
145
|
|
|
139
|
-
|
|
140
|
-
|
|
146
|
+
start = new Date(start.getTime() + tzOffset);
|
|
147
|
+
end = new Date(end.getTime() + tzOffset);
|
|
148
|
+
}
|
|
141
149
|
|
|
142
|
-
|
|
143
|
-
|
|
150
|
+
return { start, end };
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export function monthStartEnd(t: number | Date, type: 'unix' | 'local' = 'local') {
|
|
154
|
+
if (isType(t, 'number')) t = new Date(t);
|
|
155
|
+
|
|
156
|
+
const y = t.getFullYear();
|
|
157
|
+
const m = t.getMonth();
|
|
144
158
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
// {
|
|
148
|
-
// const year = moment(unixMsTime).utc().year();
|
|
159
|
+
let start = new Date(y, m, 1);
|
|
160
|
+
let end = new Date(y, m, 0, 23, 59, 59, 999);
|
|
149
161
|
|
|
150
|
-
|
|
151
|
-
|
|
162
|
+
if (type === 'unix') {
|
|
163
|
+
const tzOffset = min(start.getTimezoneOffset());
|
|
164
|
+
|
|
165
|
+
start = new Date(start.getTime() + tzOffset);
|
|
166
|
+
end = new Date(end.getTime() + tzOffset);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return { start, end };
|
|
170
|
+
}
|
|
152
171
|
|
|
153
|
-
|
|
154
|
-
|
|
172
|
+
export function yearStartEnd(t: number | Date, type: 'unix' | 'local' = 'local') {
|
|
173
|
+
if (isType(t, 'number')) t = new Date(t);
|
|
155
174
|
|
|
156
|
-
|
|
157
|
-
|
|
175
|
+
const y = t.getFullYear();
|
|
176
|
+
|
|
177
|
+
let start = new Date(y, 0, 1);
|
|
178
|
+
let end = new Date(y, 12, 0, 23, 59, 59, 999);
|
|
179
|
+
|
|
180
|
+
if (type === 'unix') {
|
|
181
|
+
const tzOffset = min(start.getTimezoneOffset());
|
|
182
|
+
|
|
183
|
+
start = new Date(start.getTime() + tzOffset);
|
|
184
|
+
end = new Date(end.getTime() + tzOffset);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return { start, end };
|
|
188
|
+
}
|