danholibraryjs 1.11.0 → 2.0.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/dist/Classes/DanhoLogger.d.ts +23 -0
- package/dist/Classes/DanhoLogger.js +65 -0
- package/dist/Classes/Events/Event.d.ts +66 -66
- package/dist/Classes/Events/Event.js +114 -114
- package/dist/Classes/Events/EventCollection.d.ts +57 -57
- package/dist/Classes/Events/EventCollection.js +109 -109
- package/dist/Classes/Events/EventEmitter.d.ts +74 -74
- package/dist/Classes/Events/EventEmitter.js +97 -97
- package/dist/Classes/Events/index.d.ts +3 -3
- package/dist/Classes/Events/index.js +19 -19
- package/dist/Classes/Time/Date.d.ts +148 -147
- package/dist/Classes/Time/Date.js +241 -238
- package/dist/Classes/Time/Time.d.ts +66 -65
- package/dist/Classes/Time/Time.js +120 -117
- package/dist/Classes/Time/TimeProperties.d.ts +3 -3
- package/dist/Classes/Time/TimeProperties.js +2 -2
- package/dist/Classes/Time/TimeSpan.d.ts +123 -123
- package/dist/Classes/Time/TimeSpan.js +179 -179
- package/dist/Classes/Time/index.d.ts +4 -4
- package/dist/Classes/Time/index.js +20 -20
- package/dist/Classes/index.d.ts +4 -3
- package/dist/Classes/index.js +20 -19
- package/dist/Classes/store.d.ts +75 -75
- package/dist/Classes/store.js +84 -84
- package/dist/Extensions/Array/array.extension.d.ts +42 -0
- package/dist/Extensions/Array/array.extension.js +57 -0
- package/dist/Extensions/Array/crud.extension.d.ts +24 -0
- package/dist/Extensions/Array/crud.extension.js +28 -0
- package/dist/Extensions/Array/index.d.ts +20 -0
- package/dist/Extensions/Array/index.js +40 -0
- package/dist/Extensions/Array/loop.extension.d.ts +18 -0
- package/dist/Extensions/Array/loop.extension.js +23 -0
- package/dist/Extensions/Array/random.extension.d.ts +23 -0
- package/dist/Extensions/Array/random.extension.js +35 -0
- package/dist/Extensions/Array/sort.extension.d.ts +27 -0
- package/dist/Extensions/Array/sort.extension.js +31 -0
- package/dist/Extensions/Array/string.extension.d.ts +13 -0
- package/dist/Extensions/Array/string.extension.js +14 -0
- package/dist/Extensions/Array.d.ts +52 -52
- package/dist/Extensions/Array.js +51 -51
- package/dist/Extensions/Document.d.ts +27 -27
- package/dist/Extensions/Document.js +32 -32
- package/dist/Extensions/Function.d.ts +29 -14
- package/dist/Extensions/Function.js +23 -10
- package/dist/Extensions/Map.d.ts +54 -54
- package/dist/Extensions/Map.js +42 -42
- package/dist/Extensions/Number.d.ts +13 -0
- package/dist/Extensions/Number.js +40 -0
- package/dist/Extensions/Object/arrays.extension.d.ts +17 -0
- package/dist/Extensions/Object/arrays.extension.js +13 -0
- package/dist/Extensions/Object/booleans.extension.d.ts +18 -0
- package/dist/Extensions/Object/booleans.extension.js +37 -0
- package/dist/Extensions/Object/extracts.extension.d.ts +38 -0
- package/dist/Extensions/Object/extracts.extension.js +72 -0
- package/dist/Extensions/Object/index.d.ts +10 -49
- package/dist/Extensions/Object/index.js +36 -38
- package/dist/Extensions/Object/properties.d.ts +28 -28
- package/dist/Extensions/Object/properties.extension.d.ts +6 -0
- package/dist/Extensions/Object/properties.extension.js +4 -0
- package/dist/Extensions/Object/properties.js +19 -20
- package/dist/Extensions/String/case.extension.d.ts +12 -0
- package/dist/Extensions/String/case.extension.js +55 -0
- package/dist/Extensions/String/index.d.ts +4 -0
- package/dist/Extensions/String/index.js +30 -0
- package/dist/Extensions/String.d.ts +36 -36
- package/dist/Extensions/String.js +25 -25
- package/dist/Extensions/index.d.ts +6 -17
- package/dist/Extensions/index.js +22 -30
- package/dist/Functions/CopyToClipboard.d.ts +7 -7
- package/dist/Functions/CopyToClipboard.js +15 -15
- package/dist/Functions/GetCSSProperty.d.ts +15 -15
- package/dist/Functions/GetCSSProperty.js +26 -26
- package/dist/Functions/GetNestedProperty.d.ts +9 -9
- package/dist/Functions/GetNestedProperty.js +23 -23
- package/dist/Functions/HTMLEvent.d.ts +11 -11
- package/dist/Functions/HTMLEvent.js +14 -14
- package/dist/Functions/SetNavigationSelected.d.ts +9 -9
- package/dist/Functions/SetNavigationSelected.js +25 -25
- package/dist/Functions/index.d.ts +5 -5
- package/dist/Functions/index.js +21 -21
- package/dist/Interfaces/ElementOptions.d.ts +15 -15
- package/dist/Interfaces/ElementOptions.js +2 -2
- package/dist/Interfaces/IReplacement.d.ts +12 -12
- package/dist/Interfaces/IReplacement.js +2 -2
- package/dist/Interfaces/index.d.ts +2 -2
- package/dist/Interfaces/index.js +18 -18
- package/dist/Types/Able.d.ts +16 -0
- package/dist/Types/Able.js +2 -0
- package/dist/Types/Array.d.ts +6 -0
- package/dist/Types/Array.js +2 -0
- package/dist/Types/BetterTypes.d.ts +9 -9
- package/dist/Types/BetterTypes.js +2 -2
- package/dist/Types/C#.d.ts +8 -0
- package/dist/Types/C#.js +2 -0
- package/dist/Types/Date.d.ts +6 -6
- package/dist/Types/Date.js +2 -2
- package/dist/Types/Events.d.ts +10 -10
- package/dist/Types/Events.js +2 -2
- package/dist/Types/Function.d.ts +5 -0
- package/dist/Types/Function.js +2 -0
- package/dist/Types/Object.d.ts +4 -0
- package/dist/Types/Object.js +2 -0
- package/dist/Types/PropertiesWith.d.ts +34 -13
- package/dist/Types/PropertiesWith.js +2 -2
- package/dist/Types/String.d.ts +1 -0
- package/dist/Types/String.js +2 -0
- package/dist/Types/TransformTypes.d.ts +22 -16
- package/dist/Types/TransformTypes.js +2 -2
- package/dist/Types/index.d.ts +24 -65
- package/dist/Types/index.js +27 -21
- package/dist/Utils/ApiUtil/ApiTypes.d.ts +15 -15
- package/dist/Utils/ApiUtil/ApiTypes.js +15 -15
- package/dist/Utils/ApiUtil/RequestUtil.d.ts +19 -19
- package/dist/Utils/ApiUtil/RequestUtil.js +73 -73
- package/dist/Utils/ApiUtil/index.d.ts +20 -20
- package/dist/Utils/ApiUtil/index.js +33 -33
- package/dist/Utils/ApiUtils/ApiTypes.d.ts +15 -0
- package/dist/Utils/ApiUtils/ApiTypes.js +15 -0
- package/dist/Utils/ApiUtils/RequestUtil.d.ts +19 -0
- package/dist/Utils/ApiUtils/RequestUtil.js +73 -0
- package/dist/Utils/ApiUtils/index.d.ts +20 -0
- package/dist/Utils/ApiUtils/index.js +33 -0
- package/dist/Utils/ColorUtils.d.ts +11 -0
- package/dist/Utils/ColorUtils.js +93 -0
- package/dist/Utils/FormUtil.d.ts +6 -6
- package/dist/Utils/FormUtil.js +35 -35
- package/dist/Utils/FormUtils.d.ts +6 -0
- package/dist/Utils/FormUtils.js +35 -0
- package/dist/Utils/NumberUtils.d.ts +1 -0
- package/dist/Utils/NumberUtils.js +7 -0
- package/dist/Utils/PatcherUtils.d.ts +6 -0
- package/dist/Utils/PatcherUtils.js +80 -0
- package/dist/Utils/StringUtils.d.ts +3 -0
- package/dist/Utils/StringUtils.js +47 -0
- package/dist/Utils/TimeUtils/debounce.util.d.ts +22 -0
- package/dist/Utils/TimeUtils/debounce.util.js +78 -0
- package/dist/Utils/TimeUtils/functions.util.d.ts +4 -0
- package/dist/Utils/TimeUtils/functions.util.js +21 -0
- package/dist/Utils/TimeUtils/index.d.ts +15 -0
- package/dist/Utils/TimeUtils/index.js +34 -0
- package/dist/Utils/TimeUtils/throttle.util.d.ts +15 -0
- package/dist/Utils/TimeUtils/throttle.util.js +43 -0
- package/dist/Utils/index.d.ts +7 -2
- package/dist/Utils/index.js +23 -18
- package/dist/index.d.ts +5 -5
- package/dist/index.js +21 -21
- package/package.json +4 -2
- package/src/Classes/DanhoLogger.ts +78 -0
- package/src/Classes/Events/Event.ts +96 -96
- package/src/Classes/Events/EventCollection.ts +90 -90
- package/src/Classes/Events/EventEmitter.ts +68 -68
- package/src/Classes/Time/Date.ts +219 -216
- package/src/Classes/Time/Time.ts +109 -104
- package/src/Classes/Time/TimeSpan.ts +171 -171
- package/src/Classes/index.ts +1 -0
- package/src/Classes/store.ts +22 -22
- package/src/Extensions/Array/array.extension.ts +103 -0
- package/src/Extensions/Array/crud.extension.ts +46 -0
- package/src/Extensions/Array/index.ts +15 -0
- package/src/Extensions/Array/loop.extension.ts +38 -0
- package/src/Extensions/Array/random.extension.ts +56 -0
- package/src/Extensions/Array/sort.extension.ts +52 -0
- package/src/Extensions/Array/string.extension.ts +22 -0
- package/src/Extensions/Document.ts +39 -39
- package/src/Extensions/Function.ts +37 -10
- package/src/Extensions/Map.ts +56 -56
- package/src/Extensions/Number.ts +50 -0
- package/src/Extensions/Object/arrays.extension.ts +27 -0
- package/src/Extensions/Object/booleans.extension.ts +46 -0
- package/src/Extensions/Object/extracts.extension.ts +102 -0
- package/src/Extensions/Object/index.ts +9 -80
- package/src/Extensions/Object/properties.extension.ts +11 -0
- package/src/Extensions/Object/properties.ts +35 -36
- package/src/Extensions/String/case.extension.ts +95 -0
- package/src/Extensions/String/index.ts +5 -0
- package/src/Extensions/index.ts +2 -20
- package/src/Interfaces/ElementOptions.ts +7 -7
- package/src/Interfaces/IReplacement.ts +2 -2
- package/src/Types/Able.ts +22 -0
- package/src/Types/Array.ts +7 -0
- package/src/Types/C#.ts +9 -0
- package/src/Types/Date.ts +1 -1
- package/src/Types/Events.ts +12 -12
- package/src/Types/Function.ts +10 -0
- package/src/Types/Object.ts +4 -0
- package/src/Types/PropertiesWith.ts +35 -4
- package/src/Types/String.ts +1 -0
- package/src/Types/TransformTypes.ts +21 -13
- package/src/Types/index.ts +7 -69
- package/src/Utils/{ApiUtil → ApiUtils}/ApiTypes.ts +2 -1
- package/src/Utils/{ApiUtil → ApiUtils}/index.ts +1 -1
- package/src/Utils/ColorUtils.ts +102 -0
- package/src/Utils/{FormUtil.ts → FormUtils.ts} +2 -2
- package/src/Utils/NumberUtils.ts +3 -0
- package/src/Utils/PatcherUtils.ts +111 -0
- package/src/Utils/StringUtils.ts +44 -0
- package/src/Utils/TimeUtils/debounce.util.ts +85 -0
- package/src/Utils/TimeUtils/functions.util.ts +18 -0
- package/src/Utils/TimeUtils/index.ts +9 -0
- package/src/Utils/TimeUtils/throttle.util.ts +44 -0
- package/src/Utils/index.ts +8 -2
- package/src/Extensions/Array.ts +0 -95
- package/src/Extensions/String.ts +0 -54
- /package/src/Utils/{ApiUtil → ApiUtils}/RequestUtil.ts +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type LogOptions = {
|
|
2
|
+
name?: string;
|
|
3
|
+
color?: string;
|
|
4
|
+
preferCollapsed?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export default class DanhoLogger {
|
|
7
|
+
name: string;
|
|
8
|
+
color?: string;
|
|
9
|
+
private _preferCollapsed;
|
|
10
|
+
constructor(options?: LogOptions);
|
|
11
|
+
private _getPrefix;
|
|
12
|
+
private _log;
|
|
13
|
+
log(...args: any[]): this;
|
|
14
|
+
warn(...args: any[]): this;
|
|
15
|
+
error(...args: any[]): this;
|
|
16
|
+
group(...args: any[]): this;
|
|
17
|
+
groupCollapsed(...args: any[]): this;
|
|
18
|
+
groupEnd(...args: any[]): this;
|
|
19
|
+
time(label: string): this;
|
|
20
|
+
timeEnd(label: string): this;
|
|
21
|
+
table(data: any, columns?: string[]): this;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class DanhoLogger {
|
|
4
|
+
name;
|
|
5
|
+
color;
|
|
6
|
+
_preferCollapsed;
|
|
7
|
+
constructor(options = {}) {
|
|
8
|
+
this.name = options.name || 'DanhoLogger';
|
|
9
|
+
this.color = options.color;
|
|
10
|
+
this._preferCollapsed = options.preferCollapsed ?? false;
|
|
11
|
+
}
|
|
12
|
+
_getPrefix() {
|
|
13
|
+
return {
|
|
14
|
+
prefix: `%c[${this.name}]`,
|
|
15
|
+
style: `color: ${this.color || 'inherit'}; font-weight: bold;`
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
_log(type, ...args) {
|
|
19
|
+
const { prefix, style } = this._getPrefix();
|
|
20
|
+
console[type](prefix, style, ...args);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
log(...args) {
|
|
24
|
+
return this._log('log', ...args);
|
|
25
|
+
}
|
|
26
|
+
warn(...args) {
|
|
27
|
+
return this._log('warn', ...args);
|
|
28
|
+
}
|
|
29
|
+
error(...args) {
|
|
30
|
+
return this._log('error', ...args);
|
|
31
|
+
}
|
|
32
|
+
group(...args) {
|
|
33
|
+
const { prefix, style } = this._getPrefix();
|
|
34
|
+
const groupMethod = this._preferCollapsed ? console.groupCollapsed : console.group;
|
|
35
|
+
groupMethod(prefix, style, ...args);
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
groupCollapsed(...args) {
|
|
39
|
+
const { prefix, style } = this._getPrefix();
|
|
40
|
+
console.groupCollapsed(prefix, style, ...args);
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
groupEnd(...args) {
|
|
44
|
+
if (args.length)
|
|
45
|
+
console.log(...args);
|
|
46
|
+
console.groupEnd();
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
time(label) {
|
|
50
|
+
const { prefix } = this._getPrefix();
|
|
51
|
+
console.time(`${prefix} ${label}`);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
timeEnd(label) {
|
|
55
|
+
const { prefix } = this._getPrefix();
|
|
56
|
+
console.timeEnd(`${prefix} ${label}`);
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
table(data, columns) {
|
|
60
|
+
this.log();
|
|
61
|
+
console.table(data, columns);
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.default = DanhoLogger;
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import { BaseEvent, EventHandler } from "../../Types/Events";
|
|
2
|
-
/**
|
|
3
|
-
* Base event for @see EventEmitter, @borrows EventHandler @borrows BaseEvent
|
|
4
|
-
*/
|
|
5
|
-
export declare class Event<Events extends BaseEvent<string, Array<any>>, Name extends keyof Events = keyof Events> {
|
|
6
|
-
/**
|
|
7
|
-
* Base event for @see EventEmitter, @borrows EventHandler
|
|
8
|
-
* @param name Name of event
|
|
9
|
-
* @param listeners Listeners/Handlers to execute when emitted
|
|
10
|
-
*/
|
|
11
|
-
constructor(name: Name, ...listeners: Array<EventHandler<Events, Name>>);
|
|
12
|
-
/**Name of event*/
|
|
13
|
-
name: Name;
|
|
14
|
-
/**Listener limit - default: 0 */
|
|
15
|
-
limit: number;
|
|
16
|
-
/**Number of times event was emitted - default: 0*/
|
|
17
|
-
get runs(): number;
|
|
18
|
-
/**Timestamp of last emit - default: null*/
|
|
19
|
-
get lastEmitted(): Date;
|
|
20
|
-
/**@private Internal listeners array*/
|
|
21
|
-
private _listeners;
|
|
22
|
-
/**@private Internal runs*/
|
|
23
|
-
private _runs;
|
|
24
|
-
/**@private Internal lastEmitted*/
|
|
25
|
-
private _lastEmitted;
|
|
26
|
-
/**
|
|
27
|
-
* Emits event and returns array of responses
|
|
28
|
-
* @param args Arguments required for event listeners
|
|
29
|
-
* @returns Return values of listeners' returns
|
|
30
|
-
*/
|
|
31
|
-
emit(...args: Events[Name]): any[];
|
|
32
|
-
/**
|
|
33
|
-
* Adds listener to listeners array and returns self with new listener added
|
|
34
|
-
* @param listener Listener to add
|
|
35
|
-
* @param prepend Add first (true) or last (false) - default: false
|
|
36
|
-
* @returns this with listener added
|
|
37
|
-
*
|
|
38
|
-
* @throws Limit error, if limit was reached
|
|
39
|
-
*/
|
|
40
|
-
on(listener: EventHandler<Events, Name>, prepend?: boolean): this;
|
|
41
|
-
/**
|
|
42
|
-
* Like Event#on, adds listener to listeners array and returns self with new listener added, however removes listener once emitted
|
|
43
|
-
* @param listener Listener to add
|
|
44
|
-
* @param prepend Add first (true) or last (false) - default: false
|
|
45
|
-
* @returns this with listener added
|
|
46
|
-
*
|
|
47
|
-
* @throws Limit error, if limit was reached
|
|
48
|
-
*/
|
|
49
|
-
once(listener: EventHandler<Events, Name>, prepend?: boolean): this;
|
|
50
|
-
/**
|
|
51
|
-
* Returns true or false, depending if event includes listener
|
|
52
|
-
* @param listener Listener to test
|
|
53
|
-
* @returns True of false, depending if event includes listener
|
|
54
|
-
*/
|
|
55
|
-
includes(listener: EventHandler<Events, Name>): boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Removes listener from internal listeners array
|
|
58
|
-
* @param listener Listener to remove. If none specified, all will be removed
|
|
59
|
-
* @param throwNotFoundError Throw error if listener isn't in listeners array - default: false
|
|
60
|
-
* @returns this, without listener
|
|
61
|
-
*
|
|
62
|
-
* @throws NotFound, if throwNotFoundError is true, and internal listeners array doesn't include listener provided
|
|
63
|
-
*/
|
|
64
|
-
off(listener?: EventHandler<Events, Name>, throwNotFoundError?: boolean): this;
|
|
65
|
-
}
|
|
66
|
-
export default Event;
|
|
1
|
+
import { BaseEvent, EventHandler } from "../../Types/Events";
|
|
2
|
+
/**
|
|
3
|
+
* Base event for @see EventEmitter, @borrows EventHandler @borrows BaseEvent
|
|
4
|
+
*/
|
|
5
|
+
export declare class Event<Events extends BaseEvent<string, Array<any>>, Name extends keyof Events = keyof Events> {
|
|
6
|
+
/**
|
|
7
|
+
* Base event for @see EventEmitter, @borrows EventHandler
|
|
8
|
+
* @param name Name of event
|
|
9
|
+
* @param listeners Listeners/Handlers to execute when emitted
|
|
10
|
+
*/
|
|
11
|
+
constructor(name: Name, ...listeners: Array<EventHandler<Events, Name>>);
|
|
12
|
+
/**Name of event*/
|
|
13
|
+
name: Name;
|
|
14
|
+
/**Listener limit - default: 0 */
|
|
15
|
+
limit: number;
|
|
16
|
+
/**Number of times event was emitted - default: 0*/
|
|
17
|
+
get runs(): number;
|
|
18
|
+
/**Timestamp of last emit - default: null*/
|
|
19
|
+
get lastEmitted(): Date;
|
|
20
|
+
/**@private Internal listeners array*/
|
|
21
|
+
private _listeners;
|
|
22
|
+
/**@private Internal runs*/
|
|
23
|
+
private _runs;
|
|
24
|
+
/**@private Internal lastEmitted*/
|
|
25
|
+
private _lastEmitted;
|
|
26
|
+
/**
|
|
27
|
+
* Emits event and returns array of responses
|
|
28
|
+
* @param args Arguments required for event listeners
|
|
29
|
+
* @returns Return values of listeners' returns
|
|
30
|
+
*/
|
|
31
|
+
emit(...args: Events[Name]): any[];
|
|
32
|
+
/**
|
|
33
|
+
* Adds listener to listeners array and returns self with new listener added
|
|
34
|
+
* @param listener Listener to add
|
|
35
|
+
* @param prepend Add first (true) or last (false) - default: false
|
|
36
|
+
* @returns this with listener added
|
|
37
|
+
*
|
|
38
|
+
* @throws Limit error, if limit was reached
|
|
39
|
+
*/
|
|
40
|
+
on(listener: EventHandler<Events, Name>, prepend?: boolean): this;
|
|
41
|
+
/**
|
|
42
|
+
* Like Event#on, adds listener to listeners array and returns self with new listener added, however removes listener once emitted
|
|
43
|
+
* @param listener Listener to add
|
|
44
|
+
* @param prepend Add first (true) or last (false) - default: false
|
|
45
|
+
* @returns this with listener added
|
|
46
|
+
*
|
|
47
|
+
* @throws Limit error, if limit was reached
|
|
48
|
+
*/
|
|
49
|
+
once(listener: EventHandler<Events, Name>, prepend?: boolean): this;
|
|
50
|
+
/**
|
|
51
|
+
* Returns true or false, depending if event includes listener
|
|
52
|
+
* @param listener Listener to test
|
|
53
|
+
* @returns True of false, depending if event includes listener
|
|
54
|
+
*/
|
|
55
|
+
includes(listener: EventHandler<Events, Name>): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Removes listener from internal listeners array
|
|
58
|
+
* @param listener Listener to remove. If none specified, all will be removed
|
|
59
|
+
* @param throwNotFoundError Throw error if listener isn't in listeners array - default: false
|
|
60
|
+
* @returns this, without listener
|
|
61
|
+
*
|
|
62
|
+
* @throws NotFound, if throwNotFoundError is true, and internal listeners array doesn't include listener provided
|
|
63
|
+
*/
|
|
64
|
+
off(listener?: EventHandler<Events, Name>, throwNotFoundError?: boolean): this;
|
|
65
|
+
}
|
|
66
|
+
export default Event;
|
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Event = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Base event for @see EventEmitter, @borrows EventHandler @borrows BaseEvent
|
|
6
|
-
*/
|
|
7
|
-
class Event {
|
|
8
|
-
/**
|
|
9
|
-
* Base event for @see EventEmitter, @borrows EventHandler
|
|
10
|
-
* @param name Name of event
|
|
11
|
-
* @param listeners Listeners/Handlers to execute when emitted
|
|
12
|
-
*/
|
|
13
|
-
constructor(name, ...listeners) {
|
|
14
|
-
this.name = name;
|
|
15
|
-
this._listeners = listeners;
|
|
16
|
-
this._lastEmitted = new Date();
|
|
17
|
-
}
|
|
18
|
-
/**Name of event*/
|
|
19
|
-
name;
|
|
20
|
-
/**Listener limit - default: 0 */
|
|
21
|
-
limit = 0;
|
|
22
|
-
/**Number of times event was emitted - default: 0*/
|
|
23
|
-
get runs() {
|
|
24
|
-
return this._runs;
|
|
25
|
-
}
|
|
26
|
-
/**Timestamp of last emit - default: null*/
|
|
27
|
-
get lastEmitted() {
|
|
28
|
-
return this._lastEmitted;
|
|
29
|
-
}
|
|
30
|
-
/**@private Internal listeners array*/
|
|
31
|
-
_listeners;
|
|
32
|
-
/**@private Internal runs*/
|
|
33
|
-
_runs = 0;
|
|
34
|
-
/**@private Internal lastEmitted*/
|
|
35
|
-
_lastEmitted;
|
|
36
|
-
/**
|
|
37
|
-
* Emits event and returns array of responses
|
|
38
|
-
* @param args Arguments required for event listeners
|
|
39
|
-
* @returns Return values of listeners' returns
|
|
40
|
-
*/
|
|
41
|
-
emit(...args) {
|
|
42
|
-
this._runs++;
|
|
43
|
-
this._lastEmitted = new Date();
|
|
44
|
-
return this._listeners.map(listener => listener(...args));
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Adds listener to listeners array and returns self with new listener added
|
|
48
|
-
* @param listener Listener to add
|
|
49
|
-
* @param prepend Add first (true) or last (false) - default: false
|
|
50
|
-
* @returns this with listener added
|
|
51
|
-
*
|
|
52
|
-
* @throws Limit error, if limit was reached
|
|
53
|
-
*/
|
|
54
|
-
on(listener, prepend = false) {
|
|
55
|
-
if (this.limit > 0 && this._listeners.length + 1 > this.limit) {
|
|
56
|
-
throw new Error(`Event limit, ${this.limit}, reached for event ${this.name.toString()}!`);
|
|
57
|
-
}
|
|
58
|
-
if (prepend)
|
|
59
|
-
this._listeners = [listener, ...this._listeners];
|
|
60
|
-
else
|
|
61
|
-
this._listeners.add(listener);
|
|
62
|
-
return this;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Like Event#on, adds listener to listeners array and returns self with new listener added, however removes listener once emitted
|
|
66
|
-
* @param listener Listener to add
|
|
67
|
-
* @param prepend Add first (true) or last (false) - default: false
|
|
68
|
-
* @returns this with listener added
|
|
69
|
-
*
|
|
70
|
-
* @throws Limit error, if limit was reached
|
|
71
|
-
*/
|
|
72
|
-
once(listener, prepend = false) {
|
|
73
|
-
const handler = (...params) => {
|
|
74
|
-
const result = listener(...params);
|
|
75
|
-
this.off(handler);
|
|
76
|
-
return result;
|
|
77
|
-
};
|
|
78
|
-
this.on(handler, prepend);
|
|
79
|
-
return this;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Returns true or false, depending if event includes listener
|
|
83
|
-
* @param listener Listener to test
|
|
84
|
-
* @returns True of false, depending if event includes listener
|
|
85
|
-
*/
|
|
86
|
-
includes(listener) {
|
|
87
|
-
return this._listeners.includes(listener);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Removes listener from internal listeners array
|
|
91
|
-
* @param listener Listener to remove. If none specified, all will be removed
|
|
92
|
-
* @param throwNotFoundError Throw error if listener isn't in listeners array - default: false
|
|
93
|
-
* @returns this, without listener
|
|
94
|
-
*
|
|
95
|
-
* @throws NotFound, if throwNotFoundError is true, and internal listeners array doesn't include listener provided
|
|
96
|
-
*/
|
|
97
|
-
off(listener, throwNotFoundError = false) {
|
|
98
|
-
try {
|
|
99
|
-
if (!listener)
|
|
100
|
-
this._listeners = new Array();
|
|
101
|
-
else if (!this._listeners.includes(listener))
|
|
102
|
-
return this;
|
|
103
|
-
else
|
|
104
|
-
this._listeners.remove(listener);
|
|
105
|
-
}
|
|
106
|
-
catch (err) {
|
|
107
|
-
if (throwNotFoundError)
|
|
108
|
-
throw err;
|
|
109
|
-
}
|
|
110
|
-
return this;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
exports.Event = Event;
|
|
114
|
-
exports.default = Event;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Event = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base event for @see EventEmitter, @borrows EventHandler @borrows BaseEvent
|
|
6
|
+
*/
|
|
7
|
+
class Event {
|
|
8
|
+
/**
|
|
9
|
+
* Base event for @see EventEmitter, @borrows EventHandler
|
|
10
|
+
* @param name Name of event
|
|
11
|
+
* @param listeners Listeners/Handlers to execute when emitted
|
|
12
|
+
*/
|
|
13
|
+
constructor(name, ...listeners) {
|
|
14
|
+
this.name = name;
|
|
15
|
+
this._listeners = listeners;
|
|
16
|
+
this._lastEmitted = new Date();
|
|
17
|
+
}
|
|
18
|
+
/**Name of event*/
|
|
19
|
+
name;
|
|
20
|
+
/**Listener limit - default: 0 */
|
|
21
|
+
limit = 0;
|
|
22
|
+
/**Number of times event was emitted - default: 0*/
|
|
23
|
+
get runs() {
|
|
24
|
+
return this._runs;
|
|
25
|
+
}
|
|
26
|
+
/**Timestamp of last emit - default: null*/
|
|
27
|
+
get lastEmitted() {
|
|
28
|
+
return this._lastEmitted;
|
|
29
|
+
}
|
|
30
|
+
/**@private Internal listeners array*/
|
|
31
|
+
_listeners;
|
|
32
|
+
/**@private Internal runs*/
|
|
33
|
+
_runs = 0;
|
|
34
|
+
/**@private Internal lastEmitted*/
|
|
35
|
+
_lastEmitted;
|
|
36
|
+
/**
|
|
37
|
+
* Emits event and returns array of responses
|
|
38
|
+
* @param args Arguments required for event listeners
|
|
39
|
+
* @returns Return values of listeners' returns
|
|
40
|
+
*/
|
|
41
|
+
emit(...args) {
|
|
42
|
+
this._runs++;
|
|
43
|
+
this._lastEmitted = new Date();
|
|
44
|
+
return this._listeners.map(listener => listener(...args));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Adds listener to listeners array and returns self with new listener added
|
|
48
|
+
* @param listener Listener to add
|
|
49
|
+
* @param prepend Add first (true) or last (false) - default: false
|
|
50
|
+
* @returns this with listener added
|
|
51
|
+
*
|
|
52
|
+
* @throws Limit error, if limit was reached
|
|
53
|
+
*/
|
|
54
|
+
on(listener, prepend = false) {
|
|
55
|
+
if (this.limit > 0 && this._listeners.length + 1 > this.limit) {
|
|
56
|
+
throw new Error(`Event limit, ${this.limit}, reached for event ${this.name.toString()}!`);
|
|
57
|
+
}
|
|
58
|
+
if (prepend)
|
|
59
|
+
this._listeners = [listener, ...this._listeners];
|
|
60
|
+
else
|
|
61
|
+
this._listeners.add(listener);
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Like Event#on, adds listener to listeners array and returns self with new listener added, however removes listener once emitted
|
|
66
|
+
* @param listener Listener to add
|
|
67
|
+
* @param prepend Add first (true) or last (false) - default: false
|
|
68
|
+
* @returns this with listener added
|
|
69
|
+
*
|
|
70
|
+
* @throws Limit error, if limit was reached
|
|
71
|
+
*/
|
|
72
|
+
once(listener, prepend = false) {
|
|
73
|
+
const handler = (...params) => {
|
|
74
|
+
const result = listener(...params);
|
|
75
|
+
this.off(handler);
|
|
76
|
+
return result;
|
|
77
|
+
};
|
|
78
|
+
this.on(handler, prepend);
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Returns true or false, depending if event includes listener
|
|
83
|
+
* @param listener Listener to test
|
|
84
|
+
* @returns True of false, depending if event includes listener
|
|
85
|
+
*/
|
|
86
|
+
includes(listener) {
|
|
87
|
+
return this._listeners.includes(listener);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Removes listener from internal listeners array
|
|
91
|
+
* @param listener Listener to remove. If none specified, all will be removed
|
|
92
|
+
* @param throwNotFoundError Throw error if listener isn't in listeners array - default: false
|
|
93
|
+
* @returns this, without listener
|
|
94
|
+
*
|
|
95
|
+
* @throws NotFound, if throwNotFoundError is true, and internal listeners array doesn't include listener provided
|
|
96
|
+
*/
|
|
97
|
+
off(listener, throwNotFoundError = false) {
|
|
98
|
+
try {
|
|
99
|
+
if (!listener)
|
|
100
|
+
this._listeners = new Array();
|
|
101
|
+
else if (!this._listeners.includes(listener))
|
|
102
|
+
return this;
|
|
103
|
+
else
|
|
104
|
+
this._listeners.remove(listener);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
if (throwNotFoundError)
|
|
108
|
+
throw err;
|
|
109
|
+
}
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.Event = Event;
|
|
114
|
+
exports.default = Event;
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import { BaseEvent, EventHandler } from "../../Types/Events";
|
|
2
|
-
import Event from './Event';
|
|
3
|
-
/**
|
|
4
|
-
* Collection of Events from @see EventEmitter
|
|
5
|
-
* @borrows EventHandler
|
|
6
|
-
* @borrows Event
|
|
7
|
-
* @borrows BaseEvent
|
|
8
|
-
*/
|
|
9
|
-
export declare class EventCollection<Events extends BaseEvent<string, Array<any>>> {
|
|
10
|
-
constructor(events?: Map<keyof Events, EventHandler<Events>>);
|
|
11
|
-
/**Amount of events stored*/
|
|
12
|
-
get size(): number;
|
|
13
|
-
/**@private Internal event collection*/
|
|
14
|
-
private _events;
|
|
15
|
-
/**@private limit of events*/
|
|
16
|
-
private _limit;
|
|
17
|
-
/**
|
|
18
|
-
* Returns true if event is in collection
|
|
19
|
-
* @param event Event name
|
|
20
|
-
* @returns true if event is in collection
|
|
21
|
-
*/
|
|
22
|
-
has<EventName extends keyof Events>(event: EventName): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Returns event matching event parameter
|
|
25
|
-
* @param event Event name
|
|
26
|
-
* @returns Event
|
|
27
|
-
*/
|
|
28
|
-
get<EventName extends keyof Events>(event: EventName): Event<Events, EventName>;
|
|
29
|
-
/**
|
|
30
|
-
* Adds handler to event collection with name as key
|
|
31
|
-
* @param name Event name
|
|
32
|
-
* @param handler Handler for event
|
|
33
|
-
* @returns this
|
|
34
|
-
*/
|
|
35
|
-
add<EventName extends keyof Events>(name: EventName, handler: EventHandler<Events, keyof Events>, once?: boolean): this;
|
|
36
|
-
/**
|
|
37
|
-
* @summary clear(): Clears all events
|
|
38
|
-
* @summary clear("all", myEventHandler): Removes myEventHandler from all events that have it
|
|
39
|
-
* @summary clear("myEvent"): Clears all handlers tied to "myEvent"
|
|
40
|
-
* @summary clear("myEvent", myEventHandler): Removes myEventHandler from "myEvent"
|
|
41
|
-
*
|
|
42
|
-
* @param name Event name | "all"
|
|
43
|
-
* @param handler Specific handler to remove. If left blank, all handlers in name will be removed
|
|
44
|
-
* @returns this
|
|
45
|
-
*/
|
|
46
|
-
clear<EventName extends keyof Events>(name?: EventName | 'all', handler?: EventHandler): this;
|
|
47
|
-
emit<Event extends keyof Events>(name: Event, ...args: Events[Event]): any[];
|
|
48
|
-
/**
|
|
49
|
-
* Limits how many events to accept using EventEmitter#on or EventEmitter#once
|
|
50
|
-
* @param limit Limit of events to keep
|
|
51
|
-
* @returns this with the new limit
|
|
52
|
-
*
|
|
53
|
-
* @throws Unknown event, if event name isn't recognized
|
|
54
|
-
*/
|
|
55
|
-
limit<Event extends keyof Events>(eventName: 'all' | Event, limit: number): this | undefined;
|
|
56
|
-
}
|
|
57
|
-
export default EventCollection;
|
|
1
|
+
import { BaseEvent, EventHandler } from "../../Types/Events";
|
|
2
|
+
import Event from './Event';
|
|
3
|
+
/**
|
|
4
|
+
* Collection of Events from @see EventEmitter
|
|
5
|
+
* @borrows EventHandler
|
|
6
|
+
* @borrows Event
|
|
7
|
+
* @borrows BaseEvent
|
|
8
|
+
*/
|
|
9
|
+
export declare class EventCollection<Events extends BaseEvent<string, Array<any>>> {
|
|
10
|
+
constructor(events?: Map<keyof Events, EventHandler<Events>>);
|
|
11
|
+
/**Amount of events stored*/
|
|
12
|
+
get size(): number;
|
|
13
|
+
/**@private Internal event collection*/
|
|
14
|
+
private _events;
|
|
15
|
+
/**@private limit of events*/
|
|
16
|
+
private _limit;
|
|
17
|
+
/**
|
|
18
|
+
* Returns true if event is in collection
|
|
19
|
+
* @param event Event name
|
|
20
|
+
* @returns true if event is in collection
|
|
21
|
+
*/
|
|
22
|
+
has<EventName extends keyof Events>(event: EventName): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Returns event matching event parameter
|
|
25
|
+
* @param event Event name
|
|
26
|
+
* @returns Event
|
|
27
|
+
*/
|
|
28
|
+
get<EventName extends keyof Events>(event: EventName): Event<Events, EventName>;
|
|
29
|
+
/**
|
|
30
|
+
* Adds handler to event collection with name as key
|
|
31
|
+
* @param name Event name
|
|
32
|
+
* @param handler Handler for event
|
|
33
|
+
* @returns this
|
|
34
|
+
*/
|
|
35
|
+
add<EventName extends keyof Events>(name: EventName, handler: EventHandler<Events, keyof Events>, once?: boolean): this;
|
|
36
|
+
/**
|
|
37
|
+
* @summary clear(): Clears all events
|
|
38
|
+
* @summary clear("all", myEventHandler): Removes myEventHandler from all events that have it
|
|
39
|
+
* @summary clear("myEvent"): Clears all handlers tied to "myEvent"
|
|
40
|
+
* @summary clear("myEvent", myEventHandler): Removes myEventHandler from "myEvent"
|
|
41
|
+
*
|
|
42
|
+
* @param name Event name | "all"
|
|
43
|
+
* @param handler Specific handler to remove. If left blank, all handlers in name will be removed
|
|
44
|
+
* @returns this
|
|
45
|
+
*/
|
|
46
|
+
clear<EventName extends keyof Events>(name?: EventName | 'all', handler?: EventHandler): this;
|
|
47
|
+
emit<Event extends keyof Events>(name: Event, ...args: Events[Event]): any[];
|
|
48
|
+
/**
|
|
49
|
+
* Limits how many events to accept using EventEmitter#on or EventEmitter#once
|
|
50
|
+
* @param limit Limit of events to keep
|
|
51
|
+
* @returns this with the new limit
|
|
52
|
+
*
|
|
53
|
+
* @throws Unknown event, if event name isn't recognized
|
|
54
|
+
*/
|
|
55
|
+
limit<Event extends keyof Events>(eventName: 'all' | Event, limit: number): this | undefined;
|
|
56
|
+
}
|
|
57
|
+
export default EventCollection;
|