@bitbeater/ecma-utils 2.7.0
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 +23 -0
- package/dist/bytes.d.ts +65 -0
- package/dist/bytes.d.ts.map +1 -0
- package/dist/bytes.js +68 -0
- package/dist/bytes.js.map +1 -0
- package/dist/collection/CircularArray.d.ts +98 -0
- package/dist/collection/CircularArray.d.ts.map +1 -0
- package/dist/collection/CircularArray.js +134 -0
- package/dist/collection/CircularArray.js.map +1 -0
- package/dist/collection/EvictingDequeue.d.ts +22 -0
- package/dist/collection/EvictingDequeue.d.ts.map +1 -0
- package/dist/collection/EvictingDequeue.js +57 -0
- package/dist/collection/EvictingDequeue.js.map +1 -0
- package/dist/collection/collection.d.ts +4 -0
- package/dist/collection/collection.d.ts.map +1 -0
- package/dist/collection/collection.js +23 -0
- package/dist/collection/collection.js.map +1 -0
- package/dist/collection/collectionOperations.d.ts +125 -0
- package/dist/collection/collectionOperations.d.ts.map +1 -0
- package/dist/collection/collectionOperations.js +193 -0
- package/dist/collection/collectionOperations.js.map +1 -0
- package/dist/cons.d.ts +34 -0
- package/dist/cons.d.ts.map +1 -0
- package/dist/cons.js +49 -0
- package/dist/cons.js.map +1 -0
- package/dist/consts.d.ts +2 -0
- package/dist/consts.d.ts.map +1 -0
- package/dist/consts.js +5 -0
- package/dist/consts.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +95 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +172 -0
- package/dist/logger.js.map +1 -0
- package/dist/math.d.ts +183 -0
- package/dist/math.d.ts.map +1 -0
- package/dist/math.js +263 -0
- package/dist/math.js.map +1 -0
- package/dist/net/http.d.ts +22 -0
- package/dist/net/http.d.ts.map +1 -0
- package/dist/net/http.js +74 -0
- package/dist/net/http.js.map +1 -0
- package/dist/object.d.ts +98 -0
- package/dist/object.d.ts.map +1 -0
- package/dist/object.js +127 -0
- package/dist/object.js.map +1 -0
- package/dist/path/path.d.ts +2 -0
- package/dist/path/path.d.ts.map +1 -0
- package/dist/path/path.js +8 -0
- package/dist/path/path.js.map +1 -0
- package/dist/promises.d.ts +3 -0
- package/dist/promises.d.ts.map +1 -0
- package/dist/promises.js +13 -0
- package/dist/promises.js.map +1 -0
- package/dist/random.d.ts +46 -0
- package/dist/random.d.ts.map +1 -0
- package/dist/random.js +76 -0
- package/dist/random.js.map +1 -0
- package/dist/revivers.d.ts +25 -0
- package/dist/revivers.d.ts.map +1 -0
- package/dist/revivers.js +34 -0
- package/dist/revivers.js.map +1 -0
- package/dist/strings.d.ts +16 -0
- package/dist/strings.d.ts.map +1 -0
- package/dist/strings.js +34 -0
- package/dist/strings.js.map +1 -0
- package/dist/time/time.d.ts +189 -0
- package/dist/time/time.d.ts.map +1 -0
- package/dist/time/time.js +315 -0
- package/dist/time/time.js.map +1 -0
- package/dist/time/timer.d.ts +93 -0
- package/dist/time/timer.d.ts.map +1 -0
- package/dist/time/timer.js +182 -0
- package/dist/time/timer.js.map +1 -0
- package/dist/time.d.ts +189 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +308 -0
- package/dist/time.js.map +1 -0
- package/dist/utils/task_duration_tracker.d.ts +102 -0
- package/dist/utils/task_duration_tracker.d.ts.map +1 -0
- package/dist/utils/task_duration_tracker.js +144 -0
- package/dist/utils/task_duration_tracker.js.map +1 -0
- package/dist/utils/utils.d.ts +24 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +47 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.arrayDifferences = arrayDifferences;
|
|
4
|
+
exports.forEachConsPairs = forEachConsPairs;
|
|
5
|
+
exports.isSorted = isSorted;
|
|
6
|
+
exports.lastEl = lastEl;
|
|
7
|
+
exports.takeRight = takeRight;
|
|
8
|
+
exports.pickRandomElement = pickRandomElement;
|
|
9
|
+
exports.pickRandomElements = pickRandomElements;
|
|
10
|
+
exports.takeRandomElement = takeRandomElement;
|
|
11
|
+
exports.takeRandomElements = takeRandomElements;
|
|
12
|
+
const utils_1 = require("../utils/utils");
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* Compute the element-wise absolute differences between two arrays of numbers.
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* arrayDifferences([1,2,3],[3,2,1]); // [2,0,2]
|
|
19
|
+
* ```
|
|
20
|
+
* @param a1 array to compare
|
|
21
|
+
* @param a2 array to compare
|
|
22
|
+
* @returns return the array difference a1-a2
|
|
23
|
+
*/
|
|
24
|
+
function arrayDifferences(a1 = [], a2 = []) {
|
|
25
|
+
const retVal = [];
|
|
26
|
+
for (let i = 0; i < a1.length; i++)
|
|
27
|
+
retVal.push(Math.abs((a1[i] || 0) - (a2[i] || 0)));
|
|
28
|
+
return retVal;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* executes the provided function fn once for each pair of consecutive elements of the provided array.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const array=[1,2,3,4];
|
|
36
|
+
*
|
|
37
|
+
* forEachConsPairs(array,console.log);
|
|
38
|
+
*
|
|
39
|
+
* // prints
|
|
40
|
+
* // 1 2
|
|
41
|
+
* // 2 3
|
|
42
|
+
* // 3 4
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
function forEachConsPairs(array, fn) {
|
|
47
|
+
if (!array?.length || typeof fn !== 'function')
|
|
48
|
+
return;
|
|
49
|
+
for (let i = 1; i < array.length; i++) {
|
|
50
|
+
const item1 = array[i - 1];
|
|
51
|
+
const item2 = array[i];
|
|
52
|
+
fn(item1, item2);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* check if the givven array is sorted or not.
|
|
57
|
+
*
|
|
58
|
+
* @example check array of numbers
|
|
59
|
+
* ```ts
|
|
60
|
+
* isSorted([1,2,3]) //true
|
|
61
|
+
* isSorted([1,3,2]) //false
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @example check array of strings
|
|
65
|
+
*```ts
|
|
66
|
+
* isSorted(['a','b','c']) //true
|
|
67
|
+
* isSorted(['a','c','b']) //false
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @example check array of objects, with compareFn
|
|
71
|
+
* ```ts
|
|
72
|
+
* isSorted([{ x:1}, { x:2}, { x:3}], (o1,o2)=> o1.x-o2.x) // true
|
|
73
|
+
* isSorted([{ x:1}, { x:3}, { x:2}], (o1,o2)=> o1.x-o2.x) // false
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @param array array to check if is sorted
|
|
77
|
+
* @param compareFn function to use for comparison operation
|
|
78
|
+
*/
|
|
79
|
+
function isSorted(array, compareFn = genericSortFunction) {
|
|
80
|
+
if (!array?.length)
|
|
81
|
+
return;
|
|
82
|
+
for (let i = 1; i < array.length; i++) {
|
|
83
|
+
const item1 = array[i - 1];
|
|
84
|
+
const item2 = array[i];
|
|
85
|
+
if (compareFn(item1, item2) > 0)
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
const genericSortFunction = (item1, item2) => {
|
|
91
|
+
try {
|
|
92
|
+
return item1 === item2 ? 0 : item1 > item2 ? 1 : -1;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* get the last element of an aray.
|
|
100
|
+
*
|
|
101
|
+
* @example simply does:
|
|
102
|
+
* ```ts
|
|
103
|
+
* array[array.length - 1];
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
function lastEl(array) {
|
|
107
|
+
return array?.[array?.length - 1];
|
|
108
|
+
}
|
|
109
|
+
// /**
|
|
110
|
+
// * generate an array, of specified length using the generate function
|
|
111
|
+
// *
|
|
112
|
+
// * @example Generate an array with numbers from 0 to 9
|
|
113
|
+
// * ```ts
|
|
114
|
+
// * gen(10, i => i); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
|
115
|
+
// * ```
|
|
116
|
+
// */
|
|
117
|
+
// export function gen<T>(length: number, genFn: (index: number) => T): T[] {
|
|
118
|
+
// const retVal = new Array<T>(length);
|
|
119
|
+
// for (var i = 0; i < length; i++) retVal[i] = genFn(i);
|
|
120
|
+
// return retVal;
|
|
121
|
+
// }
|
|
122
|
+
/**
|
|
123
|
+
*
|
|
124
|
+
* like {@link https://lodash.com/docs/4.17.15#takeRight lodash's takeRight}, but also with offset.
|
|
125
|
+
*
|
|
126
|
+
*
|
|
127
|
+
*
|
|
128
|
+
*
|
|
129
|
+
** * *
|
|
130
|
+
* simply does
|
|
131
|
+
* ```ts
|
|
132
|
+
* array?.slice(array.length - n - offset , array.length - offset);
|
|
133
|
+
* ```
|
|
134
|
+
* * * *
|
|
135
|
+
*
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* takeRight([0, 1, 2, 3]) //=> [3]
|
|
140
|
+
* takeRight([0, 1, 2, 3], 2) //=> [2, 3]
|
|
141
|
+
* takeRight([0, 1, 2, 3], 2, 1) //=> [1, 2]
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @param array The array to query.
|
|
145
|
+
* @param n The number of elements to take.
|
|
146
|
+
* @param offset The offset to apply for elements to take.
|
|
147
|
+
* @returns Returns the slice of array.
|
|
148
|
+
*/
|
|
149
|
+
function takeRight(array, n = 1, offset = 0) {
|
|
150
|
+
return array?.slice(array.length - offset - n, array.length - offset);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
*
|
|
154
|
+
* Returns a random element from the provided array.
|
|
155
|
+
*
|
|
156
|
+
* @param array
|
|
157
|
+
* @returns a random element from the provided array.
|
|
158
|
+
*/
|
|
159
|
+
function pickRandomElement(array) {
|
|
160
|
+
return array[Math.floor(Math.random() * array.length)];
|
|
161
|
+
}
|
|
162
|
+
/** *
|
|
163
|
+
* Returns an array of random elements from the provided array.
|
|
164
|
+
*
|
|
165
|
+
* @param array
|
|
166
|
+
* @param legth number of elements to pick
|
|
167
|
+
* @returns an array of random elements from the provided array.
|
|
168
|
+
*/
|
|
169
|
+
function pickRandomElements(array, legth) {
|
|
170
|
+
return takeRandomElements([...array], legth);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Returns a random element from the provided array,
|
|
174
|
+
* and **removes** the element from the array.
|
|
175
|
+
*
|
|
176
|
+
* @param array
|
|
177
|
+
* @returns a random element from the provided array.
|
|
178
|
+
*/
|
|
179
|
+
function takeRandomElement(array) {
|
|
180
|
+
return array.splice(Math.floor(Math.random() * array.length), 1)[0];
|
|
181
|
+
}
|
|
182
|
+
/** *
|
|
183
|
+
* Returns an array of random elements from the provided array,
|
|
184
|
+
* and **removes** the elements from the array.
|
|
185
|
+
*
|
|
186
|
+
* @param array
|
|
187
|
+
* @param legth number of elements to pick
|
|
188
|
+
* @returns an array of random elements from the provided array.
|
|
189
|
+
*/
|
|
190
|
+
function takeRandomElements(array, legth) {
|
|
191
|
+
return (0, utils_1.forEach)(legth, () => takeRandomElement(array));
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=collectionOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectionOperations.js","sourceRoot":"","sources":["../../src/collection/collectionOperations.ts"],"names":[],"mappings":"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"}
|
package/dist/cons.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare function printNl(n?: number): void;
|
|
2
|
+
export declare const logColors: {
|
|
3
|
+
reset: string;
|
|
4
|
+
bright: string;
|
|
5
|
+
dim: string;
|
|
6
|
+
underscore: string;
|
|
7
|
+
blink: string;
|
|
8
|
+
reverse: string;
|
|
9
|
+
hidden: string;
|
|
10
|
+
fg: {
|
|
11
|
+
black: string;
|
|
12
|
+
red: string;
|
|
13
|
+
green: string;
|
|
14
|
+
yellow: string;
|
|
15
|
+
blue: string;
|
|
16
|
+
magenta: string;
|
|
17
|
+
cyan: string;
|
|
18
|
+
white: string;
|
|
19
|
+
crimson: string;
|
|
20
|
+
};
|
|
21
|
+
bg: {
|
|
22
|
+
black: string;
|
|
23
|
+
red: string;
|
|
24
|
+
green: string;
|
|
25
|
+
yellow: string;
|
|
26
|
+
blue: string;
|
|
27
|
+
magenta: string;
|
|
28
|
+
cyan: string;
|
|
29
|
+
white: string;
|
|
30
|
+
crimson: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export declare function printObj(obj: any): void;
|
|
34
|
+
//# sourceMappingURL=cons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cons.d.ts","sourceRoot":"","sources":["../src/cons.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,CAAC,GAAE,MAAU,QAIpC;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCrB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,QAIhC"}
|
package/dist/cons.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logColors = void 0;
|
|
4
|
+
exports.printNl = printNl;
|
|
5
|
+
exports.printObj = printObj;
|
|
6
|
+
function printNl(n = 5) {
|
|
7
|
+
for (let i = 0; i < n; i++) {
|
|
8
|
+
console.log();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.logColors = {
|
|
12
|
+
reset: '\x1b[0m',
|
|
13
|
+
bright: '\x1b[1m',
|
|
14
|
+
dim: '\x1b[2m',
|
|
15
|
+
underscore: '\x1b[4m',
|
|
16
|
+
blink: '\x1b[5m',
|
|
17
|
+
reverse: '\x1b[7m',
|
|
18
|
+
hidden: '\x1b[8m',
|
|
19
|
+
// Foreground (text) colors
|
|
20
|
+
fg: {
|
|
21
|
+
black: '\x1b[30m',
|
|
22
|
+
red: '\x1b[31m',
|
|
23
|
+
green: '\x1b[32m',
|
|
24
|
+
yellow: '\x1b[33m',
|
|
25
|
+
blue: '\x1b[34m',
|
|
26
|
+
magenta: '\x1b[35m',
|
|
27
|
+
cyan: '\x1b[36m',
|
|
28
|
+
white: '\x1b[37m',
|
|
29
|
+
crimson: '\x1b[38m',
|
|
30
|
+
},
|
|
31
|
+
// Background colors
|
|
32
|
+
bg: {
|
|
33
|
+
black: '\x1b[40m',
|
|
34
|
+
red: '\x1b[41m',
|
|
35
|
+
green: '\x1b[42m',
|
|
36
|
+
yellow: '\x1b[43m',
|
|
37
|
+
blue: '\x1b[44m',
|
|
38
|
+
magenta: '\x1b[45m',
|
|
39
|
+
cyan: '\x1b[46m',
|
|
40
|
+
white: '\x1b[47m',
|
|
41
|
+
crimson: '\x1b[48m',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
function printObj(obj) {
|
|
45
|
+
for (const key of Object.keys(obj)) {
|
|
46
|
+
console.log(key, ' : ', obj[key]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=cons.js.map
|
package/dist/cons.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../src/cons.ts"],"names":[],"mappings":";;;AAAA,0BAIC;AAoCD,4BAIC;AA5CD,SAAgB,OAAO,CAAC,IAAY,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;AACF,CAAC;AAEY,QAAA,SAAS,GAAG;IACxB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;IACd,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,2BAA2B;IAC3B,EAAE,EAAE;QACH,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,UAAU;KACnB;IACD,oBAAoB;IACpB,EAAE,EAAE;QACH,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,UAAU;KACnB;CACD,CAAC;AAEF,SAAgB,QAAQ,CAAC,GAAQ;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;AACF,CAAC"}
|
package/dist/consts.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,QAAgJ,CAAC"}
|
package/dist/consts.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ISO_8601_DATE_FORMAT_REX = void 0;
|
|
4
|
+
exports.ISO_8601_DATE_FORMAT_REX = /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|1\d|2\d|3[0-1])T([0-1][0-9]|2[0-3]):([0-5]\d):([0-5]\d(\.\d*)?)(([-|+]([0-1][0-9]|2[0-3]):?([0-5]\d)|Z)?)$/;
|
|
5
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,wBAAwB,GAAG,6IAA6I,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * as bytes from './bytes';
|
|
2
|
+
export * as collection from './collection/collection';
|
|
3
|
+
export * as cons from './cons';
|
|
4
|
+
export * as utils from './utils/utils';
|
|
5
|
+
export * as log from './logger';
|
|
6
|
+
export * as math from './math';
|
|
7
|
+
export * as net from './net/http';
|
|
8
|
+
export * as object from './object';
|
|
9
|
+
export * as promises from './promises';
|
|
10
|
+
export * as reviver from './revivers';
|
|
11
|
+
export * as strings from './strings';
|
|
12
|
+
export * as time from './time/time';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.time = exports.strings = exports.reviver = exports.promises = exports.object = exports.net = exports.math = exports.log = exports.utils = exports.cons = exports.collection = exports.bytes = void 0;
|
|
37
|
+
exports.bytes = __importStar(require("./bytes"));
|
|
38
|
+
exports.collection = __importStar(require("./collection/collection"));
|
|
39
|
+
exports.cons = __importStar(require("./cons"));
|
|
40
|
+
exports.utils = __importStar(require("./utils/utils"));
|
|
41
|
+
exports.log = __importStar(require("./logger"));
|
|
42
|
+
exports.math = __importStar(require("./math"));
|
|
43
|
+
exports.net = __importStar(require("./net/http"));
|
|
44
|
+
exports.object = __importStar(require("./object"));
|
|
45
|
+
exports.promises = __importStar(require("./promises"));
|
|
46
|
+
exports.reviver = __importStar(require("./revivers"));
|
|
47
|
+
exports.strings = __importStar(require("./strings"));
|
|
48
|
+
exports.time = __importStar(require("./time/time"));
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiC;AACjC,sEAAsD;AACtD,+CAA+B;AAC/B,uDAAuC;AACvC,gDAAgC;AAChC,+CAA+B;AAC/B,kDAAkC;AAClC,mDAAmC;AACnC,uDAAuC;AACvC,sDAAsC;AACtC,qDAAqC;AACrC,oDAAoC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export declare enum LogLevel {
|
|
2
|
+
TRACE = 0,
|
|
3
|
+
DEBUG = 1,
|
|
4
|
+
INFO = 2,
|
|
5
|
+
WARN = 3,
|
|
6
|
+
ERROR = 4,
|
|
7
|
+
FATAL = 5,
|
|
8
|
+
OFF = 6
|
|
9
|
+
}
|
|
10
|
+
export type Loggable = string | number | boolean | object | undefined | null | Error | Loggable[];
|
|
11
|
+
export interface LogWriter {
|
|
12
|
+
/**
|
|
13
|
+
* Designates fine-grained informational events that are most useful to debug an application.
|
|
14
|
+
*/
|
|
15
|
+
debug: (...msg: Loggable[]) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Designates informational messages that highlight the progress of the application at coarse-grained level.
|
|
18
|
+
*/
|
|
19
|
+
info: (...msg: Loggable[]) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Designates potentially harmful situations.
|
|
22
|
+
*/
|
|
23
|
+
warn: (...msg: Loggable[]) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Designates error events that might still allow the application to continue running.
|
|
26
|
+
*/
|
|
27
|
+
error: (...msg: Loggable[]) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Designates very severe error events that will presumably lead the application to abort.
|
|
30
|
+
*/
|
|
31
|
+
fatal: (...msg: Loggable[]) => void;
|
|
32
|
+
/**
|
|
33
|
+
* Designates finer-grained informational events than the DEBUG.
|
|
34
|
+
*/
|
|
35
|
+
trace: (...msg: Loggable[]) => void;
|
|
36
|
+
}
|
|
37
|
+
export interface LoggerConfig {
|
|
38
|
+
logWriter?: LogWriter;
|
|
39
|
+
logLevel?: LogLevel;
|
|
40
|
+
prefix?: string;
|
|
41
|
+
}
|
|
42
|
+
export declare class Logger implements LogWriter {
|
|
43
|
+
logLevel: LogLevel;
|
|
44
|
+
logWriter: LogWriter;
|
|
45
|
+
prefix: string;
|
|
46
|
+
constructor(conf?: LoggerConfig | string);
|
|
47
|
+
trace(...data: Loggable[]): void;
|
|
48
|
+
debug(...data: Loggable[]): void;
|
|
49
|
+
info(...data: Loggable[]): void;
|
|
50
|
+
warn(...data: Loggable[]): void;
|
|
51
|
+
error(...data: Loggable[]): void;
|
|
52
|
+
fatal(...data: Loggable[]): void;
|
|
53
|
+
/**
|
|
54
|
+
* @unstable
|
|
55
|
+
* @todo needs testing
|
|
56
|
+
*
|
|
57
|
+
* Creates a new StepLogger with the given name.
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* const logger = new Logger('[main]');
|
|
61
|
+
*
|
|
62
|
+
* logger.info('creating a step logger');
|
|
63
|
+
*
|
|
64
|
+
* const step = logger.step('[step]');
|
|
65
|
+
* step.info('doing something...');
|
|
66
|
+
* step.finish();
|
|
67
|
+
*
|
|
68
|
+
*
|
|
69
|
+
* logger.info('after step logger has finished');
|
|
70
|
+
*
|
|
71
|
+
* // Output:
|
|
72
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main] creating a step logger
|
|
73
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main]:[step] started
|
|
74
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main]:[step] doing something...
|
|
75
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main]:[step] finished in 0ms
|
|
76
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main] after step logger has finished
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @param name
|
|
80
|
+
* @returns a new StepLogger wrapping this logger.
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
83
|
+
step(name: string): StepLogger;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Wrapper Logger that logs the start and end of a step.
|
|
87
|
+
* When it is created, it logs the start of the step.
|
|
88
|
+
* When the finish method is called, it logs the end of the step, and the logWriter is set to null to prevent further logging.
|
|
89
|
+
*/
|
|
90
|
+
export declare class StepLogger extends Logger {
|
|
91
|
+
readonly startTime: number;
|
|
92
|
+
constructor(logger: Logger, stepName: string);
|
|
93
|
+
finish(): void;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,KAAK,IAAA;IACL,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,KAAK,IAAA;IACL,GAAG,IAAA;CACH;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,EAAE,CAAC;AAElG,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACpC;;OAEG;IACH,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACpC;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACpC;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;CACpC;AAuED,MAAM,WAAW,YAAY;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,MAAO,YAAW,SAAS;IACvC,QAAQ,WAAiB;IACzB,SAAS,YAAoB;IAC7B,MAAM,SAAM;gBACA,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM;IAWxC,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE;IAIzB,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE;IAIzB,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE;IAGxB,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE;IAGxB,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE;IAGzB,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE;IAIzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;CAG9B;AAED;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,MAAM;IACrC,QAAQ,CAAC,SAAS,SAAc;gBACpB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAM5C,MAAM;CAKN"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StepLogger = exports.Logger = exports.LogLevel = void 0;
|
|
4
|
+
var LogLevel;
|
|
5
|
+
(function (LogLevel) {
|
|
6
|
+
LogLevel[LogLevel["TRACE"] = 0] = "TRACE";
|
|
7
|
+
LogLevel[LogLevel["DEBUG"] = 1] = "DEBUG";
|
|
8
|
+
LogLevel[LogLevel["INFO"] = 2] = "INFO";
|
|
9
|
+
LogLevel[LogLevel["WARN"] = 3] = "WARN";
|
|
10
|
+
LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
|
|
11
|
+
LogLevel[LogLevel["FATAL"] = 5] = "FATAL";
|
|
12
|
+
LogLevel[LogLevel["OFF"] = 6] = "OFF";
|
|
13
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
14
|
+
const defaultLogWriter = {
|
|
15
|
+
debug: (...data) => console.debug(`[${new Date().toJSON()}] DEBUG:`, ...data),
|
|
16
|
+
info: (...data) => console.info(`[${new Date().toJSON()}] INFO:`, ...data),
|
|
17
|
+
warn: (...data) => console.warn(`[${new Date().toJSON()}] WARN:`, ...data),
|
|
18
|
+
error: (...data) => {
|
|
19
|
+
(console.error(`[${new Date().toJSON()}] ERROR:`, ...data), printStack(data));
|
|
20
|
+
},
|
|
21
|
+
fatal: (...data) => {
|
|
22
|
+
(console.error(`[${new Date().toJSON()}] FATAL:`, ...data), printStack(data));
|
|
23
|
+
},
|
|
24
|
+
trace: (...data) => console.info(`[${new Date().toJSON()}] TRACE:`, ...data),
|
|
25
|
+
};
|
|
26
|
+
let actualLogWriter = { ...defaultLogWriter };
|
|
27
|
+
let _logLevel = LogLevel.OFF;
|
|
28
|
+
const _logger = {
|
|
29
|
+
trace: (...data) => {
|
|
30
|
+
if (_logLevel <= LogLevel.TRACE)
|
|
31
|
+
actualLogWriter?.trace(...data);
|
|
32
|
+
},
|
|
33
|
+
debug: (...data) => {
|
|
34
|
+
if (_logLevel <= LogLevel.DEBUG)
|
|
35
|
+
actualLogWriter?.debug(...data);
|
|
36
|
+
},
|
|
37
|
+
info: (...data) => {
|
|
38
|
+
if (_logLevel <= LogLevel.INFO)
|
|
39
|
+
actualLogWriter?.info(...data);
|
|
40
|
+
},
|
|
41
|
+
warn: (...data) => {
|
|
42
|
+
if (_logLevel <= LogLevel.WARN)
|
|
43
|
+
actualLogWriter?.warn(...data);
|
|
44
|
+
},
|
|
45
|
+
error: (...data) => {
|
|
46
|
+
if (_logLevel <= LogLevel.ERROR)
|
|
47
|
+
actualLogWriter?.error(...data);
|
|
48
|
+
},
|
|
49
|
+
fatal: (...data) => {
|
|
50
|
+
if (_logLevel <= LogLevel.FATAL)
|
|
51
|
+
actualLogWriter?.error(...data);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
// /** @deprecated */
|
|
55
|
+
// export const debug = (...data: Loggable[]) => _logger.debug(...data);
|
|
56
|
+
// /** @deprecated */
|
|
57
|
+
// export const info = (...data: Loggable[]) => _logger.info(...data);
|
|
58
|
+
// /** @deprecated */
|
|
59
|
+
// export const warn = (...data: Loggable[]) => _logger.warn(...data);
|
|
60
|
+
// /** @deprecated */
|
|
61
|
+
// export const error = (...data: Loggable[]) => _logger.error(...data);
|
|
62
|
+
// /** @deprecated */
|
|
63
|
+
// export const fatal = (...data: Loggable[]) => _logger.fatal(...data);
|
|
64
|
+
// /** @deprecated */
|
|
65
|
+
// export const trace = (...data: Loggable[]) => _logger.trace(...data);
|
|
66
|
+
// /** @deprecated */
|
|
67
|
+
// export const getLogger = () => ({ ..._logger });
|
|
68
|
+
// /** @deprecated */
|
|
69
|
+
// export const setLogger = (logger: LogWriter) => {
|
|
70
|
+
// if (!logger) console.warn('[LOGGER]', 'setting undefined logger');
|
|
71
|
+
// actualLogWriter = logger;
|
|
72
|
+
// };
|
|
73
|
+
// /** @deprecated */
|
|
74
|
+
// export const setLogLevel = (logLevel: LogLevel) => {
|
|
75
|
+
// if (_logLevel == null) console.warn('[LOGGER]', 'setting undefined log level');
|
|
76
|
+
// _logLevel = logLevel;
|
|
77
|
+
// };
|
|
78
|
+
function printStack(errors) {
|
|
79
|
+
errors?.filter(e => e?.stack)?.forEach(e => console.error(e?.stack));
|
|
80
|
+
}
|
|
81
|
+
class Logger {
|
|
82
|
+
constructor(conf) {
|
|
83
|
+
this.logLevel = LogLevel.WARN;
|
|
84
|
+
this.logWriter = defaultLogWriter;
|
|
85
|
+
this.prefix = '';
|
|
86
|
+
if (typeof conf === 'string') {
|
|
87
|
+
this.prefix = conf;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.logLevel = conf?.logLevel ?? this.logLevel;
|
|
91
|
+
this.logWriter = conf?.logWriter ?? this.logWriter;
|
|
92
|
+
this.prefix = conf?.prefix ?? this.prefix;
|
|
93
|
+
}
|
|
94
|
+
trace(...data) {
|
|
95
|
+
if (this.logLevel <= LogLevel.TRACE)
|
|
96
|
+
this.logWriter?.trace(this.prefix, ...data);
|
|
97
|
+
}
|
|
98
|
+
debug(...data) {
|
|
99
|
+
if (this.logLevel <= LogLevel.DEBUG)
|
|
100
|
+
this.logWriter?.debug(this.prefix, ...data);
|
|
101
|
+
}
|
|
102
|
+
info(...data) {
|
|
103
|
+
if (this.logLevel <= LogLevel.INFO)
|
|
104
|
+
this.logWriter?.info(this.prefix, ...data);
|
|
105
|
+
}
|
|
106
|
+
warn(...data) {
|
|
107
|
+
if (this.logLevel <= LogLevel.WARN)
|
|
108
|
+
this.logWriter?.warn(this.prefix, ...data);
|
|
109
|
+
}
|
|
110
|
+
error(...data) {
|
|
111
|
+
if (this.logLevel <= LogLevel.ERROR)
|
|
112
|
+
this.logWriter?.error(this.prefix, ...data);
|
|
113
|
+
}
|
|
114
|
+
fatal(...data) {
|
|
115
|
+
if (this.logLevel <= LogLevel.FATAL)
|
|
116
|
+
this.logWriter?.error(this.prefix, ...data);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* @unstable
|
|
120
|
+
* @todo needs testing
|
|
121
|
+
*
|
|
122
|
+
* Creates a new StepLogger with the given name.
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* const logger = new Logger('[main]');
|
|
126
|
+
*
|
|
127
|
+
* logger.info('creating a step logger');
|
|
128
|
+
*
|
|
129
|
+
* const step = logger.step('[step]');
|
|
130
|
+
* step.info('doing something...');
|
|
131
|
+
* step.finish();
|
|
132
|
+
*
|
|
133
|
+
*
|
|
134
|
+
* logger.info('after step logger has finished');
|
|
135
|
+
*
|
|
136
|
+
* // Output:
|
|
137
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main] creating a step logger
|
|
138
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main]:[step] started
|
|
139
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main]:[step] doing something...
|
|
140
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main]:[step] finished in 0ms
|
|
141
|
+
* // [2021-08-31T14:00:00.000Z] INFO: [main] after step logger has finished
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @param name
|
|
145
|
+
* @returns a new StepLogger wrapping this logger.
|
|
146
|
+
*
|
|
147
|
+
*/
|
|
148
|
+
step(name) {
|
|
149
|
+
return new StepLogger(this, name);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.Logger = Logger;
|
|
153
|
+
/**
|
|
154
|
+
* Wrapper Logger that logs the start and end of a step.
|
|
155
|
+
* When it is created, it logs the start of the step.
|
|
156
|
+
* When the finish method is called, it logs the end of the step, and the logWriter is set to null to prevent further logging.
|
|
157
|
+
*/
|
|
158
|
+
class StepLogger extends Logger {
|
|
159
|
+
constructor(logger, stepName) {
|
|
160
|
+
super(logger);
|
|
161
|
+
this.startTime = Date.now();
|
|
162
|
+
this.prefix = (logger.prefix ? logger.prefix + ':' : '') + stepName;
|
|
163
|
+
this.info(`started`);
|
|
164
|
+
}
|
|
165
|
+
finish() {
|
|
166
|
+
const duration = Date.now() - this.startTime;
|
|
167
|
+
this.info(`finished in ${duration}ms`);
|
|
168
|
+
this.logWriter = null;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
exports.StepLogger = StepLogger;
|
|
172
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|