danholibraryjs 1.11.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/_package.github-release.json +6 -0
- package/_package.npm-release.json +6 -0
- 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 +6 -0
- package/dist/Extensions/Array/index.js +22 -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/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 +4 -49
- package/dist/Extensions/Object/index.js +20 -38
- package/dist/Extensions/Object/properties.d.ts +28 -28
- package/dist/Extensions/Object/properties.extension.d.ts +33 -0
- package/dist/Extensions/Object/properties.extension.js +21 -0
- package/dist/Extensions/Object/properties.js +20 -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 +1 -0
- package/dist/{Functions → Extensions/String}/index.js +17 -21
- package/dist/Extensions/index.d.ts +6 -17
- package/dist/Extensions/index.js +22 -30
- 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 → ApiUtils}/ApiTypes.d.ts +15 -15
- package/dist/Utils/{ApiUtil → ApiUtils}/ApiTypes.js +15 -15
- package/dist/Utils/{ApiUtil → ApiUtils}/RequestUtil.d.ts +19 -19
- package/dist/Utils/{ApiUtil → ApiUtils}/RequestUtil.js +73 -73
- package/dist/Utils/{ApiUtil → ApiUtils}/index.d.ts +20 -20
- package/dist/Utils/{ApiUtil → ApiUtils}/index.js +33 -33
- package/dist/Utils/ColorUtils.d.ts +11 -0
- package/dist/Utils/ColorUtils.js +93 -0
- package/dist/Utils/{FormUtil.d.ts → FormUtils.d.ts} +6 -6
- package/dist/Utils/{FormUtil.js → FormUtils.js} +35 -35
- 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 +4 -5
- package/dist/index.js +20 -21
- package/docs/Classes.md +78 -3
- package/docs/Extensions.md +219 -78
- package/docs/Types.md +202 -58
- package/docs/index.md +0 -1
- 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 +6 -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/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 +4 -82
- package/src/Extensions/Object/properties.extension.ts +59 -0
- package/src/Extensions/Object/properties.ts +36 -36
- package/src/Extensions/String/case.extension.ts +95 -0
- package/src/Extensions/String/index.ts +1 -0
- package/src/Extensions/index.ts +3 -21
- 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/index.ts +0 -1
- package/dist/Extensions/Array.d.ts +0 -52
- package/dist/Extensions/Array.js +0 -51
- package/dist/Extensions/Document.d.ts +0 -27
- package/dist/Extensions/Document.js +0 -32
- package/dist/Extensions/String.d.ts +0 -36
- package/dist/Extensions/String.js +0 -25
- package/dist/Functions/CopyToClipboard.d.ts +0 -7
- package/dist/Functions/CopyToClipboard.js +0 -15
- package/dist/Functions/GetCSSProperty.d.ts +0 -15
- package/dist/Functions/GetCSSProperty.js +0 -26
- package/dist/Functions/GetNestedProperty.d.ts +0 -9
- package/dist/Functions/GetNestedProperty.js +0 -23
- package/dist/Functions/HTMLEvent.d.ts +0 -11
- package/dist/Functions/HTMLEvent.js +0 -14
- package/dist/Functions/SetNavigationSelected.d.ts +0 -9
- package/dist/Functions/SetNavigationSelected.js +0 -25
- package/dist/Functions/index.d.ts +0 -5
- package/docs/Functions.md +0 -61
- package/src/Extensions/Array.ts +0 -95
- package/src/Extensions/Document.ts +0 -58
- package/src/Extensions/String.ts +0 -54
- package/src/Functions/CopyToClipboard.ts +0 -10
- package/src/Functions/GetCSSProperty.ts +0 -27
- package/src/Functions/GetNestedProperty.ts +0 -29
- package/src/Functions/HTMLEvent.ts +0 -13
- package/src/Functions/SetNavigationSelected.ts +0 -19
- package/src/Functions/index.ts +0 -5
- /package/src/Utils/{ApiUtil → ApiUtils}/RequestUtil.ts +0 -0
|
@@ -7,103 +7,103 @@ import Event from './Event';
|
|
|
7
7
|
* @borrows Event
|
|
8
8
|
* @borrows BaseEvent
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
export class EventCollection<Events extends BaseEvent<string, Array<any>>> {
|
|
11
|
+
constructor(events?: Map<keyof Events, EventHandler<Events>>) {
|
|
12
|
+
this._events = !events ?
|
|
13
|
+
new Map<keyof Events, Event<Events>>() :
|
|
14
|
+
events.array().reduce((result, [event, handlers]) =>
|
|
15
|
+
result.set(event, new Event<Events>(event, handlers)),
|
|
16
|
+
new Map<keyof Events, Event<Events>>());
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Returns true if event is in collection
|
|
30
|
-
* @param event Event name
|
|
31
|
-
* @returns true if event is in collection
|
|
32
|
-
*/
|
|
33
|
-
public has<EventName extends keyof Events>(event: EventName): boolean {
|
|
34
|
-
return this._events.has(event);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Returns event matching event parameter
|
|
38
|
-
* @param event Event name
|
|
39
|
-
* @returns Event
|
|
40
|
-
*/
|
|
41
|
-
public get<EventName extends keyof Events>(event: EventName): Event<Events, EventName> {
|
|
42
|
-
return this._events.get(event) as any;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Adds handler to event collection with name as key
|
|
46
|
-
* @param name Event name
|
|
47
|
-
* @param handler Handler for event
|
|
48
|
-
* @returns this
|
|
49
|
-
*/
|
|
50
|
-
public add<EventName extends keyof Events>(name: EventName, handler: EventHandler<Events, keyof Events>, once = false): this {
|
|
51
|
-
if (this._limit > 0 && this._limit + 1 > this._events.size) {
|
|
52
|
-
throw new Error(`Listener limit, ${this._limit}, reached!`);
|
|
53
|
-
}
|
|
19
|
+
/**Amount of events stored*/
|
|
20
|
+
public get size() {
|
|
21
|
+
return this._events.size;
|
|
22
|
+
}
|
|
23
|
+
/**@private Internal event collection*/
|
|
24
|
+
private _events = new Map<keyof Events, Event<Events>>();
|
|
25
|
+
/**@private limit of events*/
|
|
26
|
+
private _limit = 0;
|
|
54
27
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Returns true if event is in collection
|
|
30
|
+
* @param event Event name
|
|
31
|
+
* @returns true if event is in collection
|
|
32
|
+
*/
|
|
33
|
+
public has<EventName extends keyof Events>(event: EventName): boolean {
|
|
34
|
+
return this._events.has(event);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Returns event matching event parameter
|
|
38
|
+
* @param event Event name
|
|
39
|
+
* @returns Event
|
|
40
|
+
*/
|
|
41
|
+
public get<EventName extends keyof Events>(event: EventName): Event<Events, EventName> {
|
|
42
|
+
return this._events.get(event) as any;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Adds handler to event collection with name as key
|
|
46
|
+
* @param name Event name
|
|
47
|
+
* @param handler Handler for event
|
|
48
|
+
* @returns this
|
|
49
|
+
*/
|
|
50
|
+
public add<EventName extends keyof Events>(name: EventName, handler: EventHandler<Events, keyof Events>, once = false): this {
|
|
51
|
+
if (this._limit > 0 && this._limit + 1 > this._events.size) {
|
|
52
|
+
throw new Error(`Listener limit, ${this._limit}, reached!`);
|
|
58
53
|
}
|
|
59
|
-
/**
|
|
60
|
-
* @summary clear(): Clears all events
|
|
61
|
-
* @summary clear("all", myEventHandler): Removes myEventHandler from all events that have it
|
|
62
|
-
* @summary clear("myEvent"): Clears all handlers tied to "myEvent"
|
|
63
|
-
* @summary clear("myEvent", myEventHandler): Removes myEventHandler from "myEvent"
|
|
64
|
-
*
|
|
65
|
-
* @param name Event name | "all"
|
|
66
|
-
* @param handler Specific handler to remove. If left blank, all handlers in name will be removed
|
|
67
|
-
* @returns this
|
|
68
|
-
*/
|
|
69
|
-
public clear<EventName extends keyof Events>(name: EventName | 'all' = 'all', handler?: EventHandler): this {
|
|
70
|
-
const _name = name as string;
|
|
71
54
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
55
|
+
const event = (this.has(name) && this.get(name)) || new Event(name);
|
|
56
|
+
this._events.set(name, event.on(handler, once) as any);
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @summary clear(): Clears all events
|
|
61
|
+
* @summary clear("all", myEventHandler): Removes myEventHandler from all events that have it
|
|
62
|
+
* @summary clear("myEvent"): Clears all handlers tied to "myEvent"
|
|
63
|
+
* @summary clear("myEvent", myEventHandler): Removes myEventHandler from "myEvent"
|
|
64
|
+
*
|
|
65
|
+
* @param name Event name | "all"
|
|
66
|
+
* @param handler Specific handler to remove. If left blank, all handlers in name will be removed
|
|
67
|
+
* @returns this
|
|
68
|
+
*/
|
|
69
|
+
public clear<EventName extends keyof Events>(name: EventName | 'all' = 'all', handler?: EventHandler): this {
|
|
70
|
+
const _name = name as string;
|
|
81
71
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
72
|
+
if (_name.toLowerCase() == 'all' && handler == null) this._events.clear(); //clear(): Clears all events
|
|
73
|
+
else if (_name.toLowerCase() == 'all' && handler) this._events = (() => { //clear("all", myEventHandler): Removes the "myEventHandler" handler from all events
|
|
74
|
+
this._events.forEach(e => e.off(handler));
|
|
75
|
+
return this._events;
|
|
76
|
+
})();
|
|
77
|
+
else if (_name.toLowerCase() != "all" && handler == null) this._events.delete(name); //clear("myEvent"): Clears All handlers tied to "myEvent"
|
|
78
|
+
else if (_name.toLowerCase() != 'all' && handler) this._events.set(name, this._events.get(name)!.off(handler)); //clear("myEvent", myEventHandler): Removes the "myEventsHandler" handler from "myEvent"
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public emit<Event extends keyof Events>(name: Event, ...args: Events[Event]) {
|
|
83
|
+
return this.get(name)?.emit(...args);
|
|
84
|
+
}
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (eventName == 'all') {
|
|
97
|
-
this._limit = limit;
|
|
98
|
-
return this;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const event = this.get(eventName);
|
|
102
|
-
if (!event) throw new Error(`Unknown event, ${eventName.toString()}!`);
|
|
86
|
+
/**
|
|
87
|
+
* Limits how many events to accept using EventEmitter#on or EventEmitter#once
|
|
88
|
+
* @param limit Limit of events to keep
|
|
89
|
+
* @returns this with the new limit
|
|
90
|
+
*
|
|
91
|
+
* @throws Unknown event, if event name isn't recognized
|
|
92
|
+
*/
|
|
93
|
+
public limit<Event extends keyof Events>(eventName: 'all' | Event, limit: number) {
|
|
94
|
+
if (limit <= 0) return;
|
|
103
95
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
96
|
+
if (eventName == 'all') {
|
|
97
|
+
this._limit = limit;
|
|
98
|
+
return this;
|
|
107
99
|
}
|
|
100
|
+
|
|
101
|
+
const event = this.get(eventName);
|
|
102
|
+
if (!event) throw new Error(`Unknown event, ${eventName.toString()}!`);
|
|
103
|
+
|
|
104
|
+
event.limit = limit;
|
|
105
|
+
this._events.set(eventName, event as any);
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
108
|
}
|
|
109
109
|
export default EventCollection;
|
|
@@ -32,77 +32,77 @@ import { BaseEvent, EventHandler } from '../../Types';
|
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
34
|
export class EventEmitter<Events extends BaseEvent<string, Array<any>>> {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
/**@param events Map<name: string, handlers: EventHandler[]>*/
|
|
36
|
+
constructor(events?: Map<keyof Events, EventHandler<Events>>) {
|
|
37
|
+
this._events = new EventCollection(events);
|
|
38
|
+
}
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Adds listener to event collection, and runs listener when event is emitted
|
|
45
|
-
* @param event Event to handle
|
|
46
|
-
* @param listener Callback function to run, when event occurs
|
|
47
|
-
* @returns this
|
|
48
|
-
*/
|
|
49
|
-
public on<Return extends any, Event extends keyof Events>(
|
|
50
|
-
event: Event,
|
|
51
|
-
listener: EventHandler<Events, Event, Return>
|
|
52
|
-
): EventEmitter<Events> {
|
|
53
|
-
this._events.add(event, listener as any);
|
|
54
|
-
return this;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Adds listener to event collection, and runs listener once when event is emitted
|
|
58
|
-
* @param event Event to handle
|
|
59
|
-
* @param listener Callback function to run, when event occurs
|
|
60
|
-
* @returns this
|
|
61
|
-
*/
|
|
62
|
-
public once<Return extends any, Event extends keyof Events>(
|
|
63
|
-
event: Event,
|
|
64
|
-
listener: EventHandler<Events, Event, Return>
|
|
65
|
-
): EventEmitter<Events> {
|
|
66
|
-
this._events.add(event, listener as any, true);
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
40
|
+
/**@private Internal event collection*/
|
|
41
|
+
private _events = new EventCollection<Events>();
|
|
69
42
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Adds listener to event collection, and runs listener when event is emitted
|
|
45
|
+
* @param event Event to handle
|
|
46
|
+
* @param listener Callback function to run, when event occurs
|
|
47
|
+
* @returns this
|
|
48
|
+
*/
|
|
49
|
+
public on<Return extends any, Event extends keyof Events>(
|
|
50
|
+
event: Event,
|
|
51
|
+
listener: EventHandler<Events, Event, Return>
|
|
52
|
+
): EventEmitter<Events> {
|
|
53
|
+
this._events.add(event, listener as any);
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Adds listener to event collection, and runs listener once when event is emitted
|
|
58
|
+
* @param event Event to handle
|
|
59
|
+
* @param listener Callback function to run, when event occurs
|
|
60
|
+
* @returns this
|
|
61
|
+
*/
|
|
62
|
+
public once<Return extends any, Event extends keyof Events>(
|
|
63
|
+
event: Event,
|
|
64
|
+
listener: EventHandler<Events, Event, Return>
|
|
65
|
+
): EventEmitter<Events> {
|
|
66
|
+
this._events.add(event, listener as any, true);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
83
69
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
70
|
+
/**
|
|
71
|
+
* Removes listener(s) from event
|
|
72
|
+
* @param event Event to get collection of listeners | "all"
|
|
73
|
+
* @param listener If left null, removes all listeners tied to event, else only removes listener from event
|
|
74
|
+
* @returns this
|
|
75
|
+
*/
|
|
76
|
+
public off<Return extends any, Event extends keyof Events>(
|
|
77
|
+
event: Event | 'all' = "all",
|
|
78
|
+
listener?: EventHandler<Events, Event, Return>
|
|
79
|
+
): EventEmitter<Events> {
|
|
80
|
+
this._events.clear(event, listener);
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
96
83
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Emits event and runs all listeners tied to event
|
|
86
|
+
* @param event Event to emit
|
|
87
|
+
* @param args Arguments for the event
|
|
88
|
+
* @fires event
|
|
89
|
+
* @returns Array of listeners' responses
|
|
90
|
+
*/
|
|
91
|
+
public emit<Return extends any, Event extends keyof Events>(
|
|
92
|
+
event: Event, ...args: Events[Event]
|
|
93
|
+
): Array<Return> {
|
|
94
|
+
return this._events.emit(event, ...args) as Array<Return>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Limits how many events to accept using EventEmitter#on or EventEmitter#once
|
|
99
|
+
* @param event: Specific event to limit, or by default, 'all'
|
|
100
|
+
* @param limit Limit of events to keep. If you want to limit amount of events saved, use 'all'.
|
|
101
|
+
* @returns this with the new limit
|
|
102
|
+
*/
|
|
103
|
+
public limit<Event extends keyof Events>(event: 'all' | Event, limit: number): EventEmitter<Events> {
|
|
104
|
+
this._events.limit<Event>(event, limit);
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
107
|
}
|
|
108
108
|
export default EventEmitter;
|