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.
Files changed (204) hide show
  1. package/dist/Classes/DanhoLogger.d.ts +23 -0
  2. package/dist/Classes/DanhoLogger.js +65 -0
  3. package/dist/Classes/Events/Event.d.ts +66 -66
  4. package/dist/Classes/Events/Event.js +114 -114
  5. package/dist/Classes/Events/EventCollection.d.ts +57 -57
  6. package/dist/Classes/Events/EventCollection.js +109 -109
  7. package/dist/Classes/Events/EventEmitter.d.ts +74 -74
  8. package/dist/Classes/Events/EventEmitter.js +97 -97
  9. package/dist/Classes/Events/index.d.ts +3 -3
  10. package/dist/Classes/Events/index.js +19 -19
  11. package/dist/Classes/Time/Date.d.ts +148 -147
  12. package/dist/Classes/Time/Date.js +241 -238
  13. package/dist/Classes/Time/Time.d.ts +66 -65
  14. package/dist/Classes/Time/Time.js +120 -117
  15. package/dist/Classes/Time/TimeProperties.d.ts +3 -3
  16. package/dist/Classes/Time/TimeProperties.js +2 -2
  17. package/dist/Classes/Time/TimeSpan.d.ts +123 -123
  18. package/dist/Classes/Time/TimeSpan.js +179 -179
  19. package/dist/Classes/Time/index.d.ts +4 -4
  20. package/dist/Classes/Time/index.js +20 -20
  21. package/dist/Classes/index.d.ts +4 -3
  22. package/dist/Classes/index.js +20 -19
  23. package/dist/Classes/store.d.ts +75 -75
  24. package/dist/Classes/store.js +84 -84
  25. package/dist/Extensions/Array/array.extension.d.ts +42 -0
  26. package/dist/Extensions/Array/array.extension.js +57 -0
  27. package/dist/Extensions/Array/crud.extension.d.ts +24 -0
  28. package/dist/Extensions/Array/crud.extension.js +28 -0
  29. package/dist/Extensions/Array/index.d.ts +20 -0
  30. package/dist/Extensions/Array/index.js +40 -0
  31. package/dist/Extensions/Array/loop.extension.d.ts +18 -0
  32. package/dist/Extensions/Array/loop.extension.js +23 -0
  33. package/dist/Extensions/Array/random.extension.d.ts +23 -0
  34. package/dist/Extensions/Array/random.extension.js +35 -0
  35. package/dist/Extensions/Array/sort.extension.d.ts +27 -0
  36. package/dist/Extensions/Array/sort.extension.js +31 -0
  37. package/dist/Extensions/Array/string.extension.d.ts +13 -0
  38. package/dist/Extensions/Array/string.extension.js +14 -0
  39. package/dist/Extensions/Array.d.ts +52 -52
  40. package/dist/Extensions/Array.js +51 -51
  41. package/dist/Extensions/Document.d.ts +27 -27
  42. package/dist/Extensions/Document.js +32 -32
  43. package/dist/Extensions/Function.d.ts +29 -14
  44. package/dist/Extensions/Function.js +23 -10
  45. package/dist/Extensions/Map.d.ts +54 -54
  46. package/dist/Extensions/Map.js +42 -42
  47. package/dist/Extensions/Number.d.ts +13 -0
  48. package/dist/Extensions/Number.js +40 -0
  49. package/dist/Extensions/Object/arrays.extension.d.ts +17 -0
  50. package/dist/Extensions/Object/arrays.extension.js +13 -0
  51. package/dist/Extensions/Object/booleans.extension.d.ts +18 -0
  52. package/dist/Extensions/Object/booleans.extension.js +37 -0
  53. package/dist/Extensions/Object/extracts.extension.d.ts +38 -0
  54. package/dist/Extensions/Object/extracts.extension.js +72 -0
  55. package/dist/Extensions/Object/index.d.ts +10 -49
  56. package/dist/Extensions/Object/index.js +36 -38
  57. package/dist/Extensions/Object/properties.d.ts +28 -28
  58. package/dist/Extensions/Object/properties.extension.d.ts +6 -0
  59. package/dist/Extensions/Object/properties.extension.js +4 -0
  60. package/dist/Extensions/Object/properties.js +19 -20
  61. package/dist/Extensions/String/case.extension.d.ts +12 -0
  62. package/dist/Extensions/String/case.extension.js +55 -0
  63. package/dist/Extensions/String/index.d.ts +4 -0
  64. package/dist/Extensions/String/index.js +30 -0
  65. package/dist/Extensions/String.d.ts +36 -36
  66. package/dist/Extensions/String.js +25 -25
  67. package/dist/Extensions/index.d.ts +6 -17
  68. package/dist/Extensions/index.js +22 -30
  69. package/dist/Functions/CopyToClipboard.d.ts +7 -7
  70. package/dist/Functions/CopyToClipboard.js +15 -15
  71. package/dist/Functions/GetCSSProperty.d.ts +15 -15
  72. package/dist/Functions/GetCSSProperty.js +26 -26
  73. package/dist/Functions/GetNestedProperty.d.ts +9 -9
  74. package/dist/Functions/GetNestedProperty.js +23 -23
  75. package/dist/Functions/HTMLEvent.d.ts +11 -11
  76. package/dist/Functions/HTMLEvent.js +14 -14
  77. package/dist/Functions/SetNavigationSelected.d.ts +9 -9
  78. package/dist/Functions/SetNavigationSelected.js +25 -25
  79. package/dist/Functions/index.d.ts +5 -5
  80. package/dist/Functions/index.js +21 -21
  81. package/dist/Interfaces/ElementOptions.d.ts +15 -15
  82. package/dist/Interfaces/ElementOptions.js +2 -2
  83. package/dist/Interfaces/IReplacement.d.ts +12 -12
  84. package/dist/Interfaces/IReplacement.js +2 -2
  85. package/dist/Interfaces/index.d.ts +2 -2
  86. package/dist/Interfaces/index.js +18 -18
  87. package/dist/Types/Able.d.ts +16 -0
  88. package/dist/Types/Able.js +2 -0
  89. package/dist/Types/Array.d.ts +6 -0
  90. package/dist/Types/Array.js +2 -0
  91. package/dist/Types/BetterTypes.d.ts +9 -9
  92. package/dist/Types/BetterTypes.js +2 -2
  93. package/dist/Types/C#.d.ts +8 -0
  94. package/dist/Types/C#.js +2 -0
  95. package/dist/Types/Date.d.ts +6 -6
  96. package/dist/Types/Date.js +2 -2
  97. package/dist/Types/Events.d.ts +10 -10
  98. package/dist/Types/Events.js +2 -2
  99. package/dist/Types/Function.d.ts +5 -0
  100. package/dist/Types/Function.js +2 -0
  101. package/dist/Types/Object.d.ts +4 -0
  102. package/dist/Types/Object.js +2 -0
  103. package/dist/Types/PropertiesWith.d.ts +34 -13
  104. package/dist/Types/PropertiesWith.js +2 -2
  105. package/dist/Types/String.d.ts +1 -0
  106. package/dist/Types/String.js +2 -0
  107. package/dist/Types/TransformTypes.d.ts +22 -16
  108. package/dist/Types/TransformTypes.js +2 -2
  109. package/dist/Types/index.d.ts +24 -65
  110. package/dist/Types/index.js +27 -21
  111. package/dist/Utils/ApiUtil/ApiTypes.d.ts +15 -15
  112. package/dist/Utils/ApiUtil/ApiTypes.js +15 -15
  113. package/dist/Utils/ApiUtil/RequestUtil.d.ts +19 -19
  114. package/dist/Utils/ApiUtil/RequestUtil.js +73 -73
  115. package/dist/Utils/ApiUtil/index.d.ts +20 -20
  116. package/dist/Utils/ApiUtil/index.js +33 -33
  117. package/dist/Utils/ApiUtils/ApiTypes.d.ts +15 -0
  118. package/dist/Utils/ApiUtils/ApiTypes.js +15 -0
  119. package/dist/Utils/ApiUtils/RequestUtil.d.ts +19 -0
  120. package/dist/Utils/ApiUtils/RequestUtil.js +73 -0
  121. package/dist/Utils/ApiUtils/index.d.ts +20 -0
  122. package/dist/Utils/ApiUtils/index.js +33 -0
  123. package/dist/Utils/ColorUtils.d.ts +11 -0
  124. package/dist/Utils/ColorUtils.js +93 -0
  125. package/dist/Utils/FormUtil.d.ts +6 -6
  126. package/dist/Utils/FormUtil.js +35 -35
  127. package/dist/Utils/FormUtils.d.ts +6 -0
  128. package/dist/Utils/FormUtils.js +35 -0
  129. package/dist/Utils/NumberUtils.d.ts +1 -0
  130. package/dist/Utils/NumberUtils.js +7 -0
  131. package/dist/Utils/PatcherUtils.d.ts +6 -0
  132. package/dist/Utils/PatcherUtils.js +80 -0
  133. package/dist/Utils/StringUtils.d.ts +3 -0
  134. package/dist/Utils/StringUtils.js +47 -0
  135. package/dist/Utils/TimeUtils/debounce.util.d.ts +22 -0
  136. package/dist/Utils/TimeUtils/debounce.util.js +78 -0
  137. package/dist/Utils/TimeUtils/functions.util.d.ts +4 -0
  138. package/dist/Utils/TimeUtils/functions.util.js +21 -0
  139. package/dist/Utils/TimeUtils/index.d.ts +15 -0
  140. package/dist/Utils/TimeUtils/index.js +34 -0
  141. package/dist/Utils/TimeUtils/throttle.util.d.ts +15 -0
  142. package/dist/Utils/TimeUtils/throttle.util.js +43 -0
  143. package/dist/Utils/index.d.ts +7 -2
  144. package/dist/Utils/index.js +23 -18
  145. package/dist/index.d.ts +5 -5
  146. package/dist/index.js +21 -21
  147. package/package.json +4 -2
  148. package/src/Classes/DanhoLogger.ts +78 -0
  149. package/src/Classes/Events/Event.ts +96 -96
  150. package/src/Classes/Events/EventCollection.ts +90 -90
  151. package/src/Classes/Events/EventEmitter.ts +68 -68
  152. package/src/Classes/Time/Date.ts +219 -216
  153. package/src/Classes/Time/Time.ts +109 -104
  154. package/src/Classes/Time/TimeSpan.ts +171 -171
  155. package/src/Classes/index.ts +1 -0
  156. package/src/Classes/store.ts +22 -22
  157. package/src/Extensions/Array/array.extension.ts +103 -0
  158. package/src/Extensions/Array/crud.extension.ts +46 -0
  159. package/src/Extensions/Array/index.ts +15 -0
  160. package/src/Extensions/Array/loop.extension.ts +38 -0
  161. package/src/Extensions/Array/random.extension.ts +56 -0
  162. package/src/Extensions/Array/sort.extension.ts +52 -0
  163. package/src/Extensions/Array/string.extension.ts +22 -0
  164. package/src/Extensions/Document.ts +39 -39
  165. package/src/Extensions/Function.ts +37 -10
  166. package/src/Extensions/Map.ts +56 -56
  167. package/src/Extensions/Number.ts +50 -0
  168. package/src/Extensions/Object/arrays.extension.ts +27 -0
  169. package/src/Extensions/Object/booleans.extension.ts +46 -0
  170. package/src/Extensions/Object/extracts.extension.ts +102 -0
  171. package/src/Extensions/Object/index.ts +9 -80
  172. package/src/Extensions/Object/properties.extension.ts +11 -0
  173. package/src/Extensions/Object/properties.ts +35 -36
  174. package/src/Extensions/String/case.extension.ts +95 -0
  175. package/src/Extensions/String/index.ts +5 -0
  176. package/src/Extensions/index.ts +2 -20
  177. package/src/Interfaces/ElementOptions.ts +7 -7
  178. package/src/Interfaces/IReplacement.ts +2 -2
  179. package/src/Types/Able.ts +22 -0
  180. package/src/Types/Array.ts +7 -0
  181. package/src/Types/C#.ts +9 -0
  182. package/src/Types/Date.ts +1 -1
  183. package/src/Types/Events.ts +12 -12
  184. package/src/Types/Function.ts +10 -0
  185. package/src/Types/Object.ts +4 -0
  186. package/src/Types/PropertiesWith.ts +35 -4
  187. package/src/Types/String.ts +1 -0
  188. package/src/Types/TransformTypes.ts +21 -13
  189. package/src/Types/index.ts +7 -69
  190. package/src/Utils/{ApiUtil → ApiUtils}/ApiTypes.ts +2 -1
  191. package/src/Utils/{ApiUtil → ApiUtils}/index.ts +1 -1
  192. package/src/Utils/ColorUtils.ts +102 -0
  193. package/src/Utils/{FormUtil.ts → FormUtils.ts} +2 -2
  194. package/src/Utils/NumberUtils.ts +3 -0
  195. package/src/Utils/PatcherUtils.ts +111 -0
  196. package/src/Utils/StringUtils.ts +44 -0
  197. package/src/Utils/TimeUtils/debounce.util.ts +85 -0
  198. package/src/Utils/TimeUtils/functions.util.ts +18 -0
  199. package/src/Utils/TimeUtils/index.ts +9 -0
  200. package/src/Utils/TimeUtils/throttle.util.ts +44 -0
  201. package/src/Utils/index.ts +8 -2
  202. package/src/Extensions/Array.ts +0 -95
  203. package/src/Extensions/String.ts +0 -54
  204. /package/src/Utils/{ApiUtil → ApiUtils}/RequestUtil.ts +0 -0
@@ -1,109 +1,109 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EventCollection = void 0;
7
- const Event_1 = __importDefault(require("./Event"));
8
- /**
9
- * Collection of Events from @see EventEmitter
10
- * @borrows EventHandler
11
- * @borrows Event
12
- * @borrows BaseEvent
13
- */
14
- class EventCollection {
15
- constructor(events) {
16
- this._events = !events ?
17
- new Map() :
18
- events.array().reduce((result, [event, handlers]) => result.set(event, new Event_1.default(event, handlers)), new Map());
19
- }
20
- /**Amount of events stored*/
21
- get size() {
22
- return this._events.size;
23
- }
24
- /**@private Internal event collection*/
25
- _events = new Map();
26
- /**@private limit of events*/
27
- _limit = 0;
28
- /**
29
- * Returns true if event is in collection
30
- * @param event Event name
31
- * @returns true if event is in collection
32
- */
33
- has(event) {
34
- return this._events.has(event);
35
- }
36
- /**
37
- * Returns event matching event parameter
38
- * @param event Event name
39
- * @returns Event
40
- */
41
- get(event) {
42
- return this._events.get(event);
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
- add(name, handler, once = false) {
51
- if (this._limit > 0 && this._limit + 1 > this._events.size) {
52
- throw new Error(`Listener limit, ${this._limit}, reached!`);
53
- }
54
- const event = (this.has(name) && this.get(name)) || new Event_1.default(name);
55
- this._events.set(name, event.on(handler, once));
56
- return this;
57
- }
58
- /**
59
- * @summary clear(): Clears all events
60
- * @summary clear("all", myEventHandler): Removes myEventHandler from all events that have it
61
- * @summary clear("myEvent"): Clears all handlers tied to "myEvent"
62
- * @summary clear("myEvent", myEventHandler): Removes myEventHandler from "myEvent"
63
- *
64
- * @param name Event name | "all"
65
- * @param handler Specific handler to remove. If left blank, all handlers in name will be removed
66
- * @returns this
67
- */
68
- clear(name = 'all', handler) {
69
- const _name = name;
70
- if (_name.toLowerCase() == 'all' && handler == null)
71
- this._events.clear(); //clear(): Clears all events
72
- else if (_name.toLowerCase() == 'all' && handler)
73
- this._events = (() => {
74
- this._events.forEach(e => e.off(handler));
75
- return this._events;
76
- })();
77
- else if (_name.toLowerCase() != "all" && handler == null)
78
- this._events.delete(name); //clear("myEvent"): Clears All handlers tied to "myEvent"
79
- else if (_name.toLowerCase() != 'all' && handler)
80
- this._events.set(name, this._events.get(name).off(handler)); //clear("myEvent", myEventHandler): Removes the "myEventsHandler" handler from "myEvent"
81
- return this;
82
- }
83
- emit(name, ...args) {
84
- return this.get(name)?.emit(...args);
85
- }
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
- limit(eventName, limit) {
94
- if (limit <= 0)
95
- return;
96
- if (eventName == 'all') {
97
- this._limit = limit;
98
- return this;
99
- }
100
- const event = this.get(eventName);
101
- if (!event)
102
- throw new Error(`Unknown event, ${eventName.toString()}!`);
103
- event.limit = limit;
104
- this._events.set(eventName, event);
105
- return this;
106
- }
107
- }
108
- exports.EventCollection = EventCollection;
109
- exports.default = EventCollection;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EventCollection = void 0;
7
+ const Event_1 = __importDefault(require("./Event"));
8
+ /**
9
+ * Collection of Events from @see EventEmitter
10
+ * @borrows EventHandler
11
+ * @borrows Event
12
+ * @borrows BaseEvent
13
+ */
14
+ class EventCollection {
15
+ constructor(events) {
16
+ this._events = !events ?
17
+ new Map() :
18
+ events.array().reduce((result, [event, handlers]) => result.set(event, new Event_1.default(event, handlers)), new Map());
19
+ }
20
+ /**Amount of events stored*/
21
+ get size() {
22
+ return this._events.size;
23
+ }
24
+ /**@private Internal event collection*/
25
+ _events = new Map();
26
+ /**@private limit of events*/
27
+ _limit = 0;
28
+ /**
29
+ * Returns true if event is in collection
30
+ * @param event Event name
31
+ * @returns true if event is in collection
32
+ */
33
+ has(event) {
34
+ return this._events.has(event);
35
+ }
36
+ /**
37
+ * Returns event matching event parameter
38
+ * @param event Event name
39
+ * @returns Event
40
+ */
41
+ get(event) {
42
+ return this._events.get(event);
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
+ add(name, handler, once = false) {
51
+ if (this._limit > 0 && this._limit + 1 > this._events.size) {
52
+ throw new Error(`Listener limit, ${this._limit}, reached!`);
53
+ }
54
+ const event = (this.has(name) && this.get(name)) || new Event_1.default(name);
55
+ this._events.set(name, event.on(handler, once));
56
+ return this;
57
+ }
58
+ /**
59
+ * @summary clear(): Clears all events
60
+ * @summary clear("all", myEventHandler): Removes myEventHandler from all events that have it
61
+ * @summary clear("myEvent"): Clears all handlers tied to "myEvent"
62
+ * @summary clear("myEvent", myEventHandler): Removes myEventHandler from "myEvent"
63
+ *
64
+ * @param name Event name | "all"
65
+ * @param handler Specific handler to remove. If left blank, all handlers in name will be removed
66
+ * @returns this
67
+ */
68
+ clear(name = 'all', handler) {
69
+ const _name = name;
70
+ if (_name.toLowerCase() == 'all' && handler == null)
71
+ this._events.clear(); //clear(): Clears all events
72
+ else if (_name.toLowerCase() == 'all' && handler)
73
+ this._events = (() => {
74
+ this._events.forEach(e => e.off(handler));
75
+ return this._events;
76
+ })();
77
+ else if (_name.toLowerCase() != "all" && handler == null)
78
+ this._events.delete(name); //clear("myEvent"): Clears All handlers tied to "myEvent"
79
+ else if (_name.toLowerCase() != 'all' && handler)
80
+ this._events.set(name, this._events.get(name).off(handler)); //clear("myEvent", myEventHandler): Removes the "myEventsHandler" handler from "myEvent"
81
+ return this;
82
+ }
83
+ emit(name, ...args) {
84
+ return this.get(name)?.emit(...args);
85
+ }
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
+ limit(eventName, limit) {
94
+ if (limit <= 0)
95
+ return;
96
+ if (eventName == 'all') {
97
+ this._limit = limit;
98
+ return this;
99
+ }
100
+ const event = this.get(eventName);
101
+ if (!event)
102
+ throw new Error(`Unknown event, ${eventName.toString()}!`);
103
+ event.limit = limit;
104
+ this._events.set(eventName, event);
105
+ return this;
106
+ }
107
+ }
108
+ exports.EventCollection = EventCollection;
109
+ exports.default = EventCollection;
@@ -1,74 +1,74 @@
1
- import { BaseEvent, EventHandler } from '../../Types';
2
- /**
3
- * Traditional Node.js EventEmitter for vanilla JavaScript
4
- * @borrows EventCollection
5
- * @borrows BaseEvent
6
- * @borrows EventHandler
7
- *
8
- * @example ```ts
9
- * import { EventEmitter } from 'danholibraryjs';
10
- *
11
- * type EventTypes = {
12
- * create: [username: string, password: string],
13
- * update: [id: string, user: User],
14
- * delete: [id: string, reason?: string],
15
- * }
16
- *
17
- * const emitter = new EventEmitter<EventTypes>(new Map([
18
- * ['create', (username, password) => {
19
- * return { username, password };
20
- * }],
21
- * ['update', (id, user) => {
22
- * return { id, ...user };
23
- * }]
24
- * ]));
25
- *
26
- * const onDelete = (id: string, reason?: string) => console.log(`User ${id} was deleted because ${reason}`);
27
- * emitter.on('delete', onDelete);
28
- * emitter.emit('delete', '1', 'No longer needed');
29
- * emitter.off('delete', onDelete);
30
- * ```
31
- */
32
- export declare class EventEmitter<Events extends BaseEvent<string, Array<any>>> {
33
- /**@param events Map<name: string, handlers: EventHandler[]>*/
34
- constructor(events?: Map<keyof Events, EventHandler<Events>>);
35
- /**@private Internal event collection*/
36
- private _events;
37
- /**
38
- * Adds listener to event collection, and runs listener when event is emitted
39
- * @param event Event to handle
40
- * @param listener Callback function to run, when event occurs
41
- * @returns this
42
- */
43
- on<Return extends any, Event extends keyof Events>(event: Event, listener: EventHandler<Events, Event, Return>): EventEmitter<Events>;
44
- /**
45
- * Adds listener to event collection, and runs listener once when event is emitted
46
- * @param event Event to handle
47
- * @param listener Callback function to run, when event occurs
48
- * @returns this
49
- */
50
- once<Return extends any, Event extends keyof Events>(event: Event, listener: EventHandler<Events, Event, Return>): EventEmitter<Events>;
51
- /**
52
- * Removes listener(s) from event
53
- * @param event Event to get collection of listeners | "all"
54
- * @param listener If left null, removes all listeners tied to event, else only removes listener from event
55
- * @returns this
56
- */
57
- off<Return extends any, Event extends keyof Events>(event?: Event | 'all', listener?: EventHandler<Events, Event, Return>): EventEmitter<Events>;
58
- /**
59
- * Emits event and runs all listeners tied to event
60
- * @param event Event to emit
61
- * @param args Arguments for the event
62
- * @fires event
63
- * @returns Array of listeners' reponses
64
- */
65
- emit<Return extends any, Event extends keyof Events>(event: Event, ...args: Events[Event]): Array<Return>;
66
- /**
67
- * Limits how many events to accept using EventEmitter#on or EventEmitter#once
68
- * @param event: Specific event to limit, or by default, 'all'
69
- * @param limit Limit of events to keep. If you want to limit amount of events saved, use 'all'.
70
- * @returns this with the new limit
71
- */
72
- limit<Event extends keyof Events>(event: 'all' | Event, limit: number): EventEmitter<Events>;
73
- }
74
- export default EventEmitter;
1
+ import { BaseEvent, EventHandler } from '../../Types';
2
+ /**
3
+ * Traditional Node.js EventEmitter for vanilla JavaScript
4
+ * @borrows EventCollection
5
+ * @borrows BaseEvent
6
+ * @borrows EventHandler
7
+ *
8
+ * @example ```ts
9
+ * import { EventEmitter } from 'danholibraryjs';
10
+ *
11
+ * type EventTypes = {
12
+ * create: [username: string, password: string],
13
+ * update: [id: string, user: User],
14
+ * delete: [id: string, reason?: string],
15
+ * }
16
+ *
17
+ * const emitter = new EventEmitter<EventTypes>(new Map([
18
+ * ['create', (username, password) => {
19
+ * return { username, password };
20
+ * }],
21
+ * ['update', (id, user) => {
22
+ * return { id, ...user };
23
+ * }]
24
+ * ]));
25
+ *
26
+ * const onDelete = (id: string, reason?: string) => console.log(`User ${id} was deleted because ${reason}`);
27
+ * emitter.on('delete', onDelete);
28
+ * emitter.emit('delete', '1', 'No longer needed');
29
+ * emitter.off('delete', onDelete);
30
+ * ```
31
+ */
32
+ export declare class EventEmitter<Events extends BaseEvent<string, Array<any>>> {
33
+ /**@param events Map<name: string, handlers: EventHandler[]>*/
34
+ constructor(events?: Map<keyof Events, EventHandler<Events>>);
35
+ /**@private Internal event collection*/
36
+ private _events;
37
+ /**
38
+ * Adds listener to event collection, and runs listener when event is emitted
39
+ * @param event Event to handle
40
+ * @param listener Callback function to run, when event occurs
41
+ * @returns this
42
+ */
43
+ on<Return extends any, Event extends keyof Events>(event: Event, listener: EventHandler<Events, Event, Return>): EventEmitter<Events>;
44
+ /**
45
+ * Adds listener to event collection, and runs listener once when event is emitted
46
+ * @param event Event to handle
47
+ * @param listener Callback function to run, when event occurs
48
+ * @returns this
49
+ */
50
+ once<Return extends any, Event extends keyof Events>(event: Event, listener: EventHandler<Events, Event, Return>): EventEmitter<Events>;
51
+ /**
52
+ * Removes listener(s) from event
53
+ * @param event Event to get collection of listeners | "all"
54
+ * @param listener If left null, removes all listeners tied to event, else only removes listener from event
55
+ * @returns this
56
+ */
57
+ off<Return extends any, Event extends keyof Events>(event?: Event | 'all', listener?: EventHandler<Events, Event, Return>): EventEmitter<Events>;
58
+ /**
59
+ * Emits event and runs all listeners tied to event
60
+ * @param event Event to emit
61
+ * @param args Arguments for the event
62
+ * @fires event
63
+ * @returns Array of listeners' responses
64
+ */
65
+ emit<Return extends any, Event extends keyof Events>(event: Event, ...args: Events[Event]): Array<Return>;
66
+ /**
67
+ * Limits how many events to accept using EventEmitter#on or EventEmitter#once
68
+ * @param event: Specific event to limit, or by default, 'all'
69
+ * @param limit Limit of events to keep. If you want to limit amount of events saved, use 'all'.
70
+ * @returns this with the new limit
71
+ */
72
+ limit<Event extends keyof Events>(event: 'all' | Event, limit: number): EventEmitter<Events>;
73
+ }
74
+ export default EventEmitter;
@@ -1,97 +1,97 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EventEmitter = void 0;
7
- const EventCollection_1 = __importDefault(require("./EventCollection"));
8
- /**
9
- * Traditional Node.js EventEmitter for vanilla JavaScript
10
- * @borrows EventCollection
11
- * @borrows BaseEvent
12
- * @borrows EventHandler
13
- *
14
- * @example ```ts
15
- * import { EventEmitter } from 'danholibraryjs';
16
- *
17
- * type EventTypes = {
18
- * create: [username: string, password: string],
19
- * update: [id: string, user: User],
20
- * delete: [id: string, reason?: string],
21
- * }
22
- *
23
- * const emitter = new EventEmitter<EventTypes>(new Map([
24
- * ['create', (username, password) => {
25
- * return { username, password };
26
- * }],
27
- * ['update', (id, user) => {
28
- * return { id, ...user };
29
- * }]
30
- * ]));
31
- *
32
- * const onDelete = (id: string, reason?: string) => console.log(`User ${id} was deleted because ${reason}`);
33
- * emitter.on('delete', onDelete);
34
- * emitter.emit('delete', '1', 'No longer needed');
35
- * emitter.off('delete', onDelete);
36
- * ```
37
- */
38
- class EventEmitter {
39
- /**@param events Map<name: string, handlers: EventHandler[]>*/
40
- constructor(events) {
41
- this._events = new EventCollection_1.default(events);
42
- }
43
- /**@private Internal event collection*/
44
- _events = new EventCollection_1.default();
45
- /**
46
- * Adds listener to event collection, and runs listener when event is emitted
47
- * @param event Event to handle
48
- * @param listener Callback function to run, when event occurs
49
- * @returns this
50
- */
51
- on(event, listener) {
52
- this._events.add(event, listener);
53
- return this;
54
- }
55
- /**
56
- * Adds listener to event collection, and runs listener once when event is emitted
57
- * @param event Event to handle
58
- * @param listener Callback function to run, when event occurs
59
- * @returns this
60
- */
61
- once(event, listener) {
62
- this._events.add(event, listener, true);
63
- return this;
64
- }
65
- /**
66
- * Removes listener(s) from event
67
- * @param event Event to get collection of listeners | "all"
68
- * @param listener If left null, removes all listeners tied to event, else only removes listener from event
69
- * @returns this
70
- */
71
- off(event = "all", listener) {
72
- this._events.clear(event, listener);
73
- return this;
74
- }
75
- /**
76
- * Emits event and runs all listeners tied to event
77
- * @param event Event to emit
78
- * @param args Arguments for the event
79
- * @fires event
80
- * @returns Array of listeners' reponses
81
- */
82
- emit(event, ...args) {
83
- return this._events.emit(event, ...args);
84
- }
85
- /**
86
- * Limits how many events to accept using EventEmitter#on or EventEmitter#once
87
- * @param event: Specific event to limit, or by default, 'all'
88
- * @param limit Limit of events to keep. If you want to limit amount of events saved, use 'all'.
89
- * @returns this with the new limit
90
- */
91
- limit(event, limit) {
92
- this._events.limit(event, limit);
93
- return this;
94
- }
95
- }
96
- exports.EventEmitter = EventEmitter;
97
- exports.default = EventEmitter;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EventEmitter = void 0;
7
+ const EventCollection_1 = __importDefault(require("./EventCollection"));
8
+ /**
9
+ * Traditional Node.js EventEmitter for vanilla JavaScript
10
+ * @borrows EventCollection
11
+ * @borrows BaseEvent
12
+ * @borrows EventHandler
13
+ *
14
+ * @example ```ts
15
+ * import { EventEmitter } from 'danholibraryjs';
16
+ *
17
+ * type EventTypes = {
18
+ * create: [username: string, password: string],
19
+ * update: [id: string, user: User],
20
+ * delete: [id: string, reason?: string],
21
+ * }
22
+ *
23
+ * const emitter = new EventEmitter<EventTypes>(new Map([
24
+ * ['create', (username, password) => {
25
+ * return { username, password };
26
+ * }],
27
+ * ['update', (id, user) => {
28
+ * return { id, ...user };
29
+ * }]
30
+ * ]));
31
+ *
32
+ * const onDelete = (id: string, reason?: string) => console.log(`User ${id} was deleted because ${reason}`);
33
+ * emitter.on('delete', onDelete);
34
+ * emitter.emit('delete', '1', 'No longer needed');
35
+ * emitter.off('delete', onDelete);
36
+ * ```
37
+ */
38
+ class EventEmitter {
39
+ /**@param events Map<name: string, handlers: EventHandler[]>*/
40
+ constructor(events) {
41
+ this._events = new EventCollection_1.default(events);
42
+ }
43
+ /**@private Internal event collection*/
44
+ _events = new EventCollection_1.default();
45
+ /**
46
+ * Adds listener to event collection, and runs listener when event is emitted
47
+ * @param event Event to handle
48
+ * @param listener Callback function to run, when event occurs
49
+ * @returns this
50
+ */
51
+ on(event, listener) {
52
+ this._events.add(event, listener);
53
+ return this;
54
+ }
55
+ /**
56
+ * Adds listener to event collection, and runs listener once when event is emitted
57
+ * @param event Event to handle
58
+ * @param listener Callback function to run, when event occurs
59
+ * @returns this
60
+ */
61
+ once(event, listener) {
62
+ this._events.add(event, listener, true);
63
+ return this;
64
+ }
65
+ /**
66
+ * Removes listener(s) from event
67
+ * @param event Event to get collection of listeners | "all"
68
+ * @param listener If left null, removes all listeners tied to event, else only removes listener from event
69
+ * @returns this
70
+ */
71
+ off(event = "all", listener) {
72
+ this._events.clear(event, listener);
73
+ return this;
74
+ }
75
+ /**
76
+ * Emits event and runs all listeners tied to event
77
+ * @param event Event to emit
78
+ * @param args Arguments for the event
79
+ * @fires event
80
+ * @returns Array of listeners' responses
81
+ */
82
+ emit(event, ...args) {
83
+ return this._events.emit(event, ...args);
84
+ }
85
+ /**
86
+ * Limits how many events to accept using EventEmitter#on or EventEmitter#once
87
+ * @param event: Specific event to limit, or by default, 'all'
88
+ * @param limit Limit of events to keep. If you want to limit amount of events saved, use 'all'.
89
+ * @returns this with the new limit
90
+ */
91
+ limit(event, limit) {
92
+ this._events.limit(event, limit);
93
+ return this;
94
+ }
95
+ }
96
+ exports.EventEmitter = EventEmitter;
97
+ exports.default = EventEmitter;
@@ -1,3 +1,3 @@
1
- export * from './Event';
2
- export * from './EventCollection';
3
- export * from './EventEmitter';
1
+ export * from './Event';
2
+ export * from './EventCollection';
3
+ export * from './EventEmitter';
@@ -1,19 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Event"), exports);
18
- __exportStar(require("./EventCollection"), exports);
19
- __exportStar(require("./EventEmitter"), exports);
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Event"), exports);
18
+ __exportStar(require("./EventCollection"), exports);
19
+ __exportStar(require("./EventEmitter"), exports);