@wexample/js-helpers 0.0.23 → 0.0.24
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 +1 -1
- package/dist/Common/AsyncConstructor.js +39 -44
- package/dist/Common/AsyncConstructor.js.map +1 -1
- package/dist/Helper/Array.js +18 -19
- package/dist/Helper/Array.js.map +1 -1
- package/dist/Helper/Bytes.js +9 -13
- package/dist/Helper/Bytes.js.map +1 -1
- package/dist/Helper/Dom.js +61 -58
- package/dist/Helper/Dom.js.map +1 -1
- package/dist/Helper/Event.js +27 -31
- package/dist/Helper/Event.js.map +1 -1
- package/dist/Helper/Function.js +2 -6
- package/dist/Helper/Function.js.map +1 -1
- package/dist/Helper/KeyCode.js +2 -6
- package/dist/Helper/KeyCode.js.map +1 -1
- package/dist/Helper/Location.js +41 -43
- package/dist/Helper/Location.js.map +1 -1
- package/dist/Helper/Log.js +21 -25
- package/dist/Helper/Log.js.map +1 -1
- package/dist/Helper/Mixin.js +26 -24
- package/dist/Helper/Mixin.js.map +1 -1
- package/dist/Helper/Object.js +81 -86
- package/dist/Helper/Object.js.map +1 -1
- package/dist/Helper/Pointer.js +2 -6
- package/dist/Helper/Pointer.js.map +1 -1
- package/dist/Helper/Queue.js +72 -74
- package/dist/Helper/Queue.js.map +1 -1
- package/dist/Helper/String.js +250 -200
- package/dist/Helper/String.js.map +1 -1
- package/dist/Helper/Time.js +4 -8
- package/dist/Helper/Time.js.map +1 -1
- package/dist/Helper/Url.js +14 -18
- package/dist/Helper/Url.js.map +1 -1
- package/dist/Helper/Variables.js +9 -13
- package/dist/Helper/Variables.js.map +1 -1
- package/package.json +4 -11
- package/dist/Common/AsyncConstructor.cjs +0 -49
- package/dist/Common/AsyncConstructor.cjs.map +0 -1
- package/dist/Common/AsyncConstructor.d.cts +0 -13
- package/dist/Common/AsyncConstructor.d.ts +0 -13
- package/dist/Helper/Array.cjs +0 -33
- package/dist/Helper/Array.cjs.map +0 -1
- package/dist/Helper/Array.d.cts +0 -11
- package/dist/Helper/Array.d.ts +0 -11
- package/dist/Helper/Bytes.cjs +0 -17
- package/dist/Helper/Bytes.cjs.map +0 -1
- package/dist/Helper/Bytes.d.cts +0 -3
- package/dist/Helper/Bytes.d.ts +0 -3
- package/dist/Helper/Dom.cjs +0 -83
- package/dist/Helper/Dom.cjs.map +0 -1
- package/dist/Helper/Dom.d.cts +0 -32
- package/dist/Helper/Dom.d.ts +0 -32
- package/dist/Helper/Event.cjs +0 -35
- package/dist/Helper/Event.cjs.map +0 -1
- package/dist/Helper/Event.d.cts +0 -31
- package/dist/Helper/Event.d.ts +0 -31
- package/dist/Helper/Function.cjs +0 -10
- package/dist/Helper/Function.cjs.map +0 -1
- package/dist/Helper/Function.d.cts +0 -3
- package/dist/Helper/Function.d.ts +0 -3
- package/dist/Helper/KeyCode.cjs +0 -10
- package/dist/Helper/KeyCode.cjs.map +0 -1
- package/dist/Helper/KeyCode.d.cts +0 -6
- package/dist/Helper/KeyCode.d.ts +0 -6
- package/dist/Helper/Location.cjs +0 -57
- package/dist/Helper/Location.cjs.map +0 -1
- package/dist/Helper/Location.d.cts +0 -9
- package/dist/Helper/Location.d.ts +0 -9
- package/dist/Helper/Log.cjs +0 -37
- package/dist/Helper/Log.cjs.map +0 -1
- package/dist/Helper/Log.d.cts +0 -19
- package/dist/Helper/Log.d.ts +0 -19
- package/dist/Helper/Mixin.cjs +0 -29
- package/dist/Helper/Mixin.cjs.map +0 -1
- package/dist/Helper/Mixin.d.cts +0 -8
- package/dist/Helper/Mixin.d.ts +0 -8
- package/dist/Helper/Object.cjs +0 -103
- package/dist/Helper/Object.cjs.map +0 -1
- package/dist/Helper/Object.d.cts +0 -14
- package/dist/Helper/Object.d.ts +0 -14
- package/dist/Helper/Pointer.cjs +0 -10
- package/dist/Helper/Pointer.cjs.map +0 -1
- package/dist/Helper/Pointer.d.cts +0 -5
- package/dist/Helper/Pointer.d.ts +0 -5
- package/dist/Helper/Queue.cjs +0 -84
- package/dist/Helper/Queue.cjs.map +0 -1
- package/dist/Helper/Queue.d.cts +0 -35
- package/dist/Helper/Queue.d.ts +0 -35
- package/dist/Helper/String.cjs +0 -253
- package/dist/Helper/String.cjs.map +0 -1
- package/dist/Helper/String.d.cts +0 -50
- package/dist/Helper/String.d.ts +0 -50
- package/dist/Helper/Time.cjs +0 -12
- package/dist/Helper/Time.cjs.map +0 -1
- package/dist/Helper/Time.d.cts +0 -3
- package/dist/Helper/Time.d.ts +0 -3
- package/dist/Helper/Url.cjs +0 -24
- package/dist/Helper/Url.cjs.map +0 -1
- package/dist/Helper/Url.d.cts +0 -4
- package/dist/Helper/Url.d.ts +0 -4
- package/dist/Helper/Variables.cjs +0 -20
- package/dist/Helper/Variables.cjs.map +0 -1
- package/dist/Helper/Variables.d.cts +0 -12
- package/dist/Helper/Variables.d.ts +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Location.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Location.js","sourceRoot":"","sources":["../../src/Helper/Location.ts"],"names":[],"mappings":"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"}
|
package/dist/Helper/Log.js
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
red: "31"
|
|
1
|
+
export const COLORS = {
|
|
2
|
+
blue: '34',
|
|
3
|
+
cyan: '36',
|
|
4
|
+
gray: '90',
|
|
5
|
+
green: '32',
|
|
6
|
+
magenta: '35',
|
|
7
|
+
yellow: '33',
|
|
8
|
+
red: '31',
|
|
10
9
|
};
|
|
11
|
-
function logColor(text, colorCode = COLORS.gray) {
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
export function logColor(text, colorCode = COLORS.gray) {
|
|
11
|
+
const resolved = typeof colorCode === 'string' && colorCode in COLORS
|
|
12
|
+
? COLORS[colorCode]
|
|
13
|
+
: colorCode || COLORS.gray;
|
|
14
|
+
return `\x1b[${resolved}m${text}\x1b[0m`;
|
|
14
15
|
}
|
|
15
|
-
function logTitle(title, colorCode = COLORS.cyan) {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
export function logTitle(title, colorCode = COLORS.cyan) {
|
|
17
|
+
console.log('');
|
|
18
|
+
console.log(logColor(`# ${String(title).toUpperCase()}`, colorCode));
|
|
18
19
|
}
|
|
19
|
-
function logPath(label, value, labelColor = COLORS.gray, valueColor = COLORS.yellow) {
|
|
20
|
-
|
|
20
|
+
export function logPath(label, value, labelColor = COLORS.gray, valueColor = COLORS.yellow) {
|
|
21
|
+
console.log(`${logColor(label, labelColor)} ${logColor(value, valueColor)}`);
|
|
21
22
|
}
|
|
22
|
-
function logEntry(action, entry) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
);
|
|
26
|
-
console.log(` ${logColor("from", COLORS.gray)} ${logColor(entry.source, COLORS.gray)}`);
|
|
23
|
+
export function logEntry(action, entry) {
|
|
24
|
+
console.log(`${logColor('•', COLORS.green)} ${logColor(action, COLORS.blue)} ${logColor(entry.output, COLORS.yellow)}`);
|
|
25
|
+
console.log(` ${logColor('from', COLORS.gray)} ${logColor(entry.source, COLORS.gray)}`);
|
|
27
26
|
}
|
|
28
|
-
|
|
29
|
-
export { COLORS, logColor, logEntry, logPath, logTitle };
|
|
30
|
-
//# sourceMappingURL=Log.js.map
|
|
31
27
|
//# sourceMappingURL=Log.js.map
|
package/dist/Helper/Log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Log.js","sourceRoot":"","sources":["../../src/Helper/Log.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;CACD,CAAC;AAIX,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,YAAwB,MAAM,CAAC,IAAI;IACxE,MAAM,QAAQ,GACZ,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM;QAClD,CAAC,CAAC,MAAM,CAAC,SAAgC,CAAC;QAC1C,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;IAE/B,OAAO,QAAQ,QAAQ,IAAI,IAAI,SAAS,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,YAAwB,MAAM,CAAC,IAAI;IACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,KAAa,EACb,aAAyB,MAAM,CAAC,IAAI,EACpC,aAAyB,MAAM,CAAC,MAAM;IAEtC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,KAAyC;IAChF,OAAO,CAAC,GAAG,CACT,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAC3G,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC"}
|
package/dist/Helper/Mixin.js
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Apply mixin classes to a target class (TypeScript-compatible).
|
|
3
|
+
* Copy prototype properties (except constructor) and static props.
|
|
4
|
+
*/
|
|
5
|
+
export function mixinApply(targetCtor, mixins) {
|
|
6
|
+
mixins.forEach((mixinCtor) => {
|
|
7
|
+
// Copy instance members (prototype).
|
|
8
|
+
Object.getOwnPropertyNames(mixinCtor.prototype).forEach((name) => {
|
|
9
|
+
if (name === 'constructor') {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const descriptor = Object.getOwnPropertyDescriptor(mixinCtor.prototype, name);
|
|
13
|
+
if (descriptor) {
|
|
14
|
+
Object.defineProperty(targetCtor.prototype, name, descriptor);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
// Copy static members if any (excluding length/name/prototype).
|
|
18
|
+
Object.getOwnPropertyNames(mixinCtor).forEach((name) => {
|
|
19
|
+
if (['length', 'name', 'prototype'].includes(name)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const descriptor = Object.getOwnPropertyDescriptor(mixinCtor, name);
|
|
23
|
+
if (descriptor) {
|
|
24
|
+
Object.defineProperty(targetCtor, name, descriptor);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
12
27
|
});
|
|
13
|
-
Object.getOwnPropertyNames(mixinCtor).forEach((name) => {
|
|
14
|
-
if (["length", "name", "prototype"].includes(name)) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const descriptor = Object.getOwnPropertyDescriptor(mixinCtor, name);
|
|
18
|
-
if (descriptor) {
|
|
19
|
-
Object.defineProperty(targetCtor, name, descriptor);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
28
|
}
|
|
24
|
-
|
|
25
|
-
export { mixinApply };
|
|
26
|
-
//# sourceMappingURL=Mixin.js.map
|
|
27
29
|
//# sourceMappingURL=Mixin.js.map
|
package/dist/Helper/Mixin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Mixin.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Mixin.js","sourceRoot":"","sources":["../../src/Helper/Mixin.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,UAAuB,EAAE,MAAqB;IACvE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC3B,qCAAqC;QACrC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/D,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9E,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/Helper/Object.js
CHANGED
|
@@ -1,95 +1,90 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
output[key] = objectMergeDeep(
|
|
7
|
-
typeof output[key] === "object" && output[key] !== null ? output[key] : {},
|
|
8
|
-
value
|
|
9
|
-
);
|
|
10
|
-
} else {
|
|
11
|
-
output[key] = value;
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
return output;
|
|
15
|
-
}
|
|
16
|
-
function objectToType(value) {
|
|
17
|
-
return {}.toString.call(value).match(/([a-z]+)(:?\])/i)?.[1] ?? typeof value;
|
|
18
|
-
}
|
|
19
|
-
function objectIsPlainObject(value) {
|
|
20
|
-
return objectToType(value) === "Object";
|
|
21
|
-
}
|
|
22
|
-
function objectDeepAssignWithOptions(options) {
|
|
23
|
-
const mergedOptions = {
|
|
24
|
-
nonEnum: true,
|
|
25
|
-
symbols: true,
|
|
26
|
-
descriptors: true,
|
|
27
|
-
proto: true,
|
|
28
|
-
...options
|
|
29
|
-
};
|
|
30
|
-
return (target, ...sources) => {
|
|
31
|
-
sources.forEach((source) => {
|
|
32
|
-
if (!objectIsPlainObject(source) || !objectIsPlainObject(target)) return;
|
|
33
|
-
const copyProperty = (property) => {
|
|
34
|
-
const descriptor = Object.getOwnPropertyDescriptor(source, property);
|
|
35
|
-
if (!descriptor) return;
|
|
36
|
-
if (descriptor.enumerable || mergedOptions.nonEnum) {
|
|
37
|
-
if (objectIsPlainObject(source[property]) && objectIsPlainObject(target[property])) {
|
|
38
|
-
descriptor.value = objectDeepAssignWithOptions(mergedOptions)(
|
|
39
|
-
target[property],
|
|
40
|
-
source[property]
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
if (mergedOptions.descriptors) {
|
|
44
|
-
Object.defineProperty(target, property, descriptor);
|
|
45
|
-
} else {
|
|
46
|
-
target[property] = descriptor.value;
|
|
47
|
-
}
|
|
1
|
+
export function objectMergeDeep(target = {}, source = {}) {
|
|
2
|
+
const output = { ...target };
|
|
3
|
+
Object.entries(source || {}).forEach(([key, value]) => {
|
|
4
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
5
|
+
output[key] = objectMergeDeep(typeof output[key] === 'object' && output[key] !== null ? output[key] : {}, value);
|
|
48
6
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (mergedOptions.symbols) {
|
|
52
|
-
Object.getOwnPropertySymbols(source).forEach(copyProperty);
|
|
53
|
-
}
|
|
54
|
-
if (mergedOptions.proto) {
|
|
55
|
-
const targetProto = Object.getPrototypeOf(target);
|
|
56
|
-
const sourceProto = Object.getPrototypeOf(source);
|
|
57
|
-
if (targetProto && sourceProto) {
|
|
58
|
-
objectDeepAssignWithOptions({ ...mergedOptions, proto: false })(targetProto, sourceProto);
|
|
7
|
+
else {
|
|
8
|
+
output[key] = value;
|
|
59
9
|
}
|
|
60
|
-
}
|
|
61
10
|
});
|
|
62
|
-
return
|
|
63
|
-
|
|
11
|
+
return output;
|
|
12
|
+
}
|
|
13
|
+
export function objectToType(value) {
|
|
14
|
+
return {}.toString.call(value).match(/([a-z]+)(:?\])/i)?.[1] ?? typeof value;
|
|
64
15
|
}
|
|
65
|
-
function
|
|
66
|
-
|
|
67
|
-
nonEnum: true,
|
|
68
|
-
symbols: true,
|
|
69
|
-
descriptors: true,
|
|
70
|
-
proto: true
|
|
71
|
-
}).apply(void 0, args);
|
|
16
|
+
export function objectIsPlainObject(value) {
|
|
17
|
+
return objectToType(value) === 'Object';
|
|
72
18
|
}
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
19
|
+
export function objectDeepAssignWithOptions(options) {
|
|
20
|
+
const mergedOptions = {
|
|
21
|
+
nonEnum: true,
|
|
22
|
+
symbols: true,
|
|
23
|
+
descriptors: true,
|
|
24
|
+
proto: true,
|
|
25
|
+
...options,
|
|
26
|
+
};
|
|
27
|
+
return (target, ...sources) => {
|
|
28
|
+
sources.forEach((source) => {
|
|
29
|
+
if (!objectIsPlainObject(source) || !objectIsPlainObject(target))
|
|
30
|
+
return;
|
|
31
|
+
const copyProperty = (property) => {
|
|
32
|
+
const descriptor = Object.getOwnPropertyDescriptor(source, property);
|
|
33
|
+
if (!descriptor)
|
|
34
|
+
return;
|
|
35
|
+
if (descriptor.enumerable || mergedOptions.nonEnum) {
|
|
36
|
+
if (objectIsPlainObject(source[property]) && objectIsPlainObject(target[property])) {
|
|
37
|
+
descriptor.value = objectDeepAssignWithOptions(mergedOptions)(target[property], source[property]);
|
|
38
|
+
}
|
|
39
|
+
if (mergedOptions.descriptors) {
|
|
40
|
+
Object.defineProperty(target, property, descriptor);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
target[property] = descriptor.value;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
Object.getOwnPropertyNames(source).forEach(copyProperty);
|
|
48
|
+
if (mergedOptions.symbols) {
|
|
49
|
+
Object.getOwnPropertySymbols(source).forEach(copyProperty);
|
|
50
|
+
}
|
|
51
|
+
if (mergedOptions.proto) {
|
|
52
|
+
const targetProto = Object.getPrototypeOf(target);
|
|
53
|
+
const sourceProto = Object.getPrototypeOf(source);
|
|
54
|
+
if (targetProto && sourceProto) {
|
|
55
|
+
objectDeepAssignWithOptions({ ...mergedOptions, proto: false })(targetProto, sourceProto);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return target;
|
|
60
|
+
};
|
|
79
61
|
}
|
|
80
|
-
function
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
62
|
+
export function objectDeepAssign(...args) {
|
|
63
|
+
return objectDeepAssignWithOptions({
|
|
64
|
+
nonEnum: true,
|
|
65
|
+
symbols: true,
|
|
66
|
+
descriptors: true,
|
|
67
|
+
proto: true,
|
|
68
|
+
}).apply(undefined, args);
|
|
69
|
+
}
|
|
70
|
+
export function objectCallPrototypeMethodIfExists(self, methodName, args = []) {
|
|
71
|
+
const method = Object.getPrototypeOf(self)?.[methodName];
|
|
72
|
+
if (typeof method === 'function') {
|
|
73
|
+
return method.apply(self, args);
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
export function objectGetItemByPath(data, key, defaultValue = null, separator = '.') {
|
|
78
|
+
const keys = Array.isArray(key) ? key : key.split(separator);
|
|
79
|
+
let cursor = data;
|
|
80
|
+
for (const k of keys) {
|
|
81
|
+
if (cursor !== null && typeof cursor === 'object' && k in cursor) {
|
|
82
|
+
cursor = cursor[k];
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return defaultValue;
|
|
86
|
+
}
|
|
88
87
|
}
|
|
89
|
-
|
|
90
|
-
return cursor;
|
|
88
|
+
return cursor;
|
|
91
89
|
}
|
|
92
|
-
|
|
93
|
-
export { objectCallPrototypeMethodIfExists, objectDeepAssign, objectDeepAssignWithOptions, objectGetItemByPath, objectIsPlainObject, objectMergeDeep, objectToType };
|
|
94
|
-
//# sourceMappingURL=Object.js.map
|
|
95
90
|
//# sourceMappingURL=Object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Object.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Object.js","sourceRoot":"","sources":["../../src/Helper/Object.ts"],"names":[],"mappings":"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"}
|
package/dist/Helper/Pointer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Pointer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Pointer.js","sourceRoot":"","sources":["../../src/Helper/Pointer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,cAAc,EAAE,GAAG;CACX,CAAC"}
|
package/dist/Helper/Queue.js
CHANGED
|
@@ -1,82 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
enqueue(item) {
|
|
19
|
-
this.queue.push(item);
|
|
20
|
-
if (this.autoStart) {
|
|
21
|
-
this.pump();
|
|
1
|
+
export default class Queue {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.queue = [];
|
|
4
|
+
this.activeCount = 0;
|
|
5
|
+
this.paused = false;
|
|
6
|
+
this.worker = options.worker;
|
|
7
|
+
this.concurrency = Math.max(1, options.concurrency ?? 1);
|
|
8
|
+
this.autoStart = options.autoStart ?? true;
|
|
9
|
+
this.callbacks = {
|
|
10
|
+
onItemStart: options.onItemStart,
|
|
11
|
+
onItemSuccess: options.onItemSuccess,
|
|
12
|
+
onItemError: options.onItemError,
|
|
13
|
+
onItemDone: options.onItemDone,
|
|
14
|
+
onDrain: options.onDrain,
|
|
15
|
+
};
|
|
22
16
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
enqueue(item) {
|
|
18
|
+
this.queue.push(item);
|
|
19
|
+
if (this.autoStart) {
|
|
20
|
+
this.pump();
|
|
21
|
+
}
|
|
28
22
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (!this.paused) {
|
|
35
|
-
return;
|
|
23
|
+
enqueueMany(items) {
|
|
24
|
+
this.queue.push(...items);
|
|
25
|
+
if (this.autoStart) {
|
|
26
|
+
this.pump();
|
|
27
|
+
}
|
|
36
28
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
clear() {
|
|
41
|
-
this.queue = [];
|
|
42
|
-
}
|
|
43
|
-
size() {
|
|
44
|
-
return this.queue.length;
|
|
45
|
-
}
|
|
46
|
-
active() {
|
|
47
|
-
return this.activeCount;
|
|
48
|
-
}
|
|
49
|
-
isIdle() {
|
|
50
|
-
return this.queue.length === 0 && this.activeCount === 0;
|
|
51
|
-
}
|
|
52
|
-
pump() {
|
|
53
|
-
if (this.paused) {
|
|
54
|
-
return;
|
|
29
|
+
pause() {
|
|
30
|
+
this.paused = true;
|
|
55
31
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
32
|
+
resume() {
|
|
33
|
+
if (!this.paused) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.paused = false;
|
|
37
|
+
this.pump();
|
|
59
38
|
}
|
|
60
|
-
|
|
61
|
-
|
|
39
|
+
clear() {
|
|
40
|
+
this.queue = [];
|
|
62
41
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this.activeCount += 1;
|
|
66
|
-
this.callbacks.onItemStart?.(item);
|
|
67
|
-
try {
|
|
68
|
-
const result = await this.worker(item);
|
|
69
|
-
this.callbacks.onItemSuccess?.(item, result);
|
|
70
|
-
} catch (error) {
|
|
71
|
-
this.callbacks.onItemError?.(item, error);
|
|
72
|
-
} finally {
|
|
73
|
-
this.callbacks.onItemDone?.(item);
|
|
74
|
-
this.activeCount -= 1;
|
|
75
|
-
this.pump();
|
|
42
|
+
size() {
|
|
43
|
+
return this.queue.length;
|
|
76
44
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
45
|
+
active() {
|
|
46
|
+
return this.activeCount;
|
|
47
|
+
}
|
|
48
|
+
isIdle() {
|
|
49
|
+
return this.queue.length === 0 && this.activeCount === 0;
|
|
50
|
+
}
|
|
51
|
+
pump() {
|
|
52
|
+
if (this.paused) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
while (this.activeCount < this.concurrency && this.queue.length > 0) {
|
|
56
|
+
const item = this.queue.shift();
|
|
57
|
+
this.runItem(item);
|
|
58
|
+
}
|
|
59
|
+
if (this.isIdle()) {
|
|
60
|
+
this.callbacks.onDrain?.();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async runItem(item) {
|
|
64
|
+
this.activeCount += 1;
|
|
65
|
+
this.callbacks.onItemStart?.(item);
|
|
66
|
+
try {
|
|
67
|
+
const result = await this.worker(item);
|
|
68
|
+
this.callbacks.onItemSuccess?.(item, result);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
this.callbacks.onItemError?.(item, error);
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
this.callbacks.onItemDone?.(item);
|
|
75
|
+
this.activeCount -= 1;
|
|
76
|
+
this.pump();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
82
80
|
//# sourceMappingURL=Queue.js.map
|
package/dist/Helper/Queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/Helper/Queue.ts"],"names":[],"mappings":"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"}
|