inray 0.0.2 → 0.0.3
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/LICENSE.md +1 -0
- package/README.md +132 -32
- package/dist/caching/mod.d.ts +2 -0
- package/dist/caching/mod.d.ts.map +1 -0
- package/dist/caching/mod.js +2 -0
- package/dist/caching/mod.js.map +1 -0
- package/dist/caching/src/cache.d.ts +89 -0
- package/dist/caching/src/cache.d.ts.map +1 -0
- package/dist/caching/src/cache.js +309 -0
- package/dist/caching/src/cache.js.map +1 -0
- package/dist/caching/src/hashing/cache.d.ts +92 -0
- package/dist/caching/src/hashing/cache.d.ts.map +1 -0
- package/dist/caching/src/hashing/cache.js +119 -0
- package/dist/caching/src/hashing/cache.js.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts +157 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.js +333 -0
- package/dist/caching/src/hashing/hooks/eventified.js.map +1 -0
- package/dist/caching/src/hashing/hooks/index.d.ts +199 -0
- package/dist/caching/src/hashing/hooks/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/index.js +383 -0
- package/dist/caching/src/hashing/hooks/index.js.map +1 -0
- package/dist/caching/src/hashing/hooks/types.d.ts +217 -0
- package/dist/caching/src/hashing/hooks/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/types.js +10 -0
- package/dist/caching/src/hashing/hooks/types.js.map +1 -0
- package/dist/caching/src/hashing/index.d.ts +236 -0
- package/dist/caching/src/hashing/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/index.js +447 -0
- package/dist/caching/src/hashing/index.js.map +1 -0
- package/dist/caching/src/hashing/providers/crc.d.ts +15 -0
- package/dist/caching/src/hashing/providers/crc.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crc.js +49 -0
- package/dist/caching/src/hashing/providers/crc.js.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts +19 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.js +28 -0
- package/dist/caching/src/hashing/providers/crypto.js.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts +60 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.js +92 -0
- package/dist/caching/src/hashing/providers/djb2.js.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts +33 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.js +68 -0
- package/dist/caching/src/hashing/providers/fnv1.js.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts +81 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.js +173 -0
- package/dist/caching/src/hashing/providers/murmur.js.map +1 -0
- package/dist/caching/src/hashing/providers.d.ts +126 -0
- package/dist/caching/src/hashing/providers.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers.js +163 -0
- package/dist/caching/src/hashing/providers.js.map +1 -0
- package/dist/caching/src/hashing/types.d.ts +340 -0
- package/dist/caching/src/hashing/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/types.js +10 -0
- package/dist/caching/src/hashing/types.js.map +1 -0
- package/dist/caching/src/keyValue/capabilities.d.ts +161 -0
- package/dist/caching/src/keyValue/capabilities.d.ts.map +1 -0
- package/dist/caching/src/keyValue/capabilities.js +334 -0
- package/dist/caching/src/keyValue/capabilities.js.map +1 -0
- package/dist/caching/src/keyValue/event-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/event-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/event-manager.js +88 -0
- package/dist/caching/src/keyValue/event-manager.js.map +1 -0
- package/dist/caching/src/keyValue/generic-store.d.ts +243 -0
- package/dist/caching/src/keyValue/generic-store.d.ts.map +1 -0
- package/dist/caching/src/keyValue/generic-store.js +295 -0
- package/dist/caching/src/keyValue/generic-store.js.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts +21 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.js +59 -0
- package/dist/caching/src/keyValue/hooks-manager.js.map +1 -0
- package/dist/caching/src/keyValue/index.d.ts +334 -0
- package/dist/caching/src/keyValue/index.d.ts.map +1 -0
- package/dist/caching/src/keyValue/index.js +796 -0
- package/dist/caching/src/keyValue/index.js.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts +12 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.js +64 -0
- package/dist/caching/src/keyValue/serialize/serialize.js.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.js +64 -0
- package/dist/caching/src/keyValue/stats-manager.js.map +1 -0
- package/dist/caching/src/keyValue/types.d.ts +22 -0
- package/dist/caching/src/keyValue/types.d.ts.map +1 -0
- package/dist/caching/src/keyValue/types.js +11 -0
- package/dist/caching/src/keyValue/types.js.map +1 -0
- package/dist/caching/src/keyv-adapter.d.ts +40 -0
- package/dist/caching/src/keyv-adapter.d.ts.map +1 -0
- package/dist/caching/src/keyv-adapter.js +56 -0
- package/dist/caching/src/keyv-adapter.js.map +1 -0
- package/dist/caching/src/utils/cache-tags.d.ts +275 -0
- package/dist/caching/src/utils/cache-tags.d.ts.map +1 -0
- package/dist/caching/src/utils/cache-tags.js +407 -0
- package/dist/caching/src/utils/cache-tags.js.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts +35 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.js +10 -0
- package/dist/caching/src/utils/cacheable-item-types.js.map +1 -0
- package/dist/caching/src/utils/coalesce-async.d.ts +29 -0
- package/dist/caching/src/utils/coalesce-async.d.ts.map +1 -0
- package/dist/caching/src/utils/coalesce-async.js +88 -0
- package/dist/caching/src/utils/coalesce-async.js.map +1 -0
- package/dist/caching/src/utils/hash.d.ts +55 -0
- package/dist/caching/src/utils/hash.d.ts.map +1 -0
- package/dist/caching/src/utils/hash.js +116 -0
- package/dist/caching/src/utils/hash.js.map +1 -0
- package/dist/caching/src/utils/index.d.ts +24 -0
- package/dist/caching/src/utils/index.d.ts.map +1 -0
- package/dist/caching/src/utils/index.js +21 -0
- package/dist/caching/src/utils/index.js.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts +10 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.js +37 -0
- package/dist/caching/src/utils/is-keyv-instance.js.map +1 -0
- package/dist/caching/src/utils/is-object.d.ts +10 -0
- package/dist/caching/src/utils/is-object.d.ts.map +1 -0
- package/dist/caching/src/utils/is-object.js +13 -0
- package/dist/caching/src/utils/is-object.js.map +1 -0
- package/dist/caching/src/utils/less-than.d.ts +10 -0
- package/dist/caching/src/utils/less-than.d.ts.map +1 -0
- package/dist/caching/src/utils/less-than.js +13 -0
- package/dist/caching/src/utils/less-than.js.map +1 -0
- package/dist/caching/src/utils/memoize.d.ts +107 -0
- package/dist/caching/src/utils/memoize.d.ts.map +1 -0
- package/dist/caching/src/utils/memoize.js +201 -0
- package/dist/caching/src/utils/memoize.js.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts +28 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.js +87 -0
- package/dist/caching/src/utils/mock-cacheable.js.map +1 -0
- package/dist/caching/src/utils/run-if-fn.d.ts +12 -0
- package/dist/caching/src/utils/run-if-fn.d.ts.map +1 -0
- package/dist/caching/src/utils/run-if-fn.js +12 -0
- package/dist/caching/src/utils/run-if-fn.js.map +1 -0
- package/dist/caching/src/utils/shorthand-time.d.ts +27 -0
- package/dist/caching/src/utils/shorthand-time.d.ts.map +1 -0
- package/dist/caching/src/utils/shorthand-time.js +96 -0
- package/dist/caching/src/utils/shorthand-time.js.map +1 -0
- package/dist/caching/src/utils/sleep.d.ts +10 -0
- package/dist/caching/src/utils/sleep.d.ts.map +1 -0
- package/dist/caching/src/utils/sleep.js +11 -0
- package/dist/caching/src/utils/sleep.js.map +1 -0
- package/dist/caching/src/utils/stats.d.ts +354 -0
- package/dist/caching/src/utils/stats.d.ts.map +1 -0
- package/dist/caching/src/utils/stats.js +593 -0
- package/dist/caching/src/utils/stats.js.map +1 -0
- package/dist/caching/src/utils/ttl.d.ts +58 -0
- package/dist/caching/src/utils/ttl.d.ts.map +1 -0
- package/dist/caching/src/utils/ttl.js +77 -0
- package/dist/caching/src/utils/ttl.js.map +1 -0
- package/package.json +11 -3
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: hookified (v1.15.1)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
import type { EventEmitterOptions, EventListener, IEventEmitter, Logger } from './types.ts';
|
|
10
|
+
export type { EventEmitterOptions, EventListener, IEventEmitter };
|
|
11
|
+
export declare class Eventified implements IEventEmitter {
|
|
12
|
+
private readonly _eventListeners;
|
|
13
|
+
private _maxListeners;
|
|
14
|
+
private _logger?;
|
|
15
|
+
private _throwOnEmitError;
|
|
16
|
+
private _throwOnEmptyListeners;
|
|
17
|
+
private _errorEvent;
|
|
18
|
+
constructor(options?: EventEmitterOptions);
|
|
19
|
+
/**
|
|
20
|
+
* Gets the logger
|
|
21
|
+
* @returns {Logger}
|
|
22
|
+
*/
|
|
23
|
+
get logger(): Logger | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Sets the logger
|
|
26
|
+
* @param {Logger} logger
|
|
27
|
+
*/
|
|
28
|
+
set logger(logger: Logger | undefined);
|
|
29
|
+
/**
|
|
30
|
+
* Gets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
|
|
31
|
+
* @returns {boolean}
|
|
32
|
+
*/
|
|
33
|
+
get throwOnEmitError(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Sets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
|
|
36
|
+
* @param {boolean} value
|
|
37
|
+
*/
|
|
38
|
+
set throwOnEmitError(value: boolean);
|
|
39
|
+
/**
|
|
40
|
+
* Gets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
|
|
41
|
+
* @returns {boolean}
|
|
42
|
+
*/
|
|
43
|
+
get throwOnEmptyListeners(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Sets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
|
|
46
|
+
* @param {boolean} value
|
|
47
|
+
*/
|
|
48
|
+
set throwOnEmptyListeners(value: boolean);
|
|
49
|
+
/**
|
|
50
|
+
* Adds a handler function for a specific event that will run only once
|
|
51
|
+
* @param {string | symbol} eventName
|
|
52
|
+
* @param {EventListener} listener
|
|
53
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
54
|
+
*/
|
|
55
|
+
once(eventName: string | symbol, listener: EventListener): IEventEmitter;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the number of listeners for a specific event. If no event is provided, it returns the total number of listeners
|
|
58
|
+
* @param {string} eventName The event name. Not required
|
|
59
|
+
* @returns {number} The number of listeners
|
|
60
|
+
*/
|
|
61
|
+
listenerCount(eventName?: string | symbol): number;
|
|
62
|
+
/**
|
|
63
|
+
* Gets an array of event names
|
|
64
|
+
* @returns {Array<string | symbol>} An array of event names
|
|
65
|
+
*/
|
|
66
|
+
eventNames(): Array<string | symbol>;
|
|
67
|
+
/**
|
|
68
|
+
* Gets an array of listeners for a specific event. If no event is provided, it returns all listeners
|
|
69
|
+
* @param {string} [event] (Optional) The event name
|
|
70
|
+
* @returns {EventListener[]} An array of listeners
|
|
71
|
+
*/
|
|
72
|
+
rawListeners(event?: string | symbol): EventListener[];
|
|
73
|
+
/**
|
|
74
|
+
* Prepends a listener to the beginning of the listeners array for the specified event
|
|
75
|
+
* @param {string | symbol} eventName
|
|
76
|
+
* @param {EventListener} listener
|
|
77
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
78
|
+
*/
|
|
79
|
+
prependListener(eventName: string | symbol, listener: EventListener): IEventEmitter;
|
|
80
|
+
/**
|
|
81
|
+
* Prepends a one-time listener to the beginning of the listeners array for the specified event
|
|
82
|
+
* @param {string | symbol} eventName
|
|
83
|
+
* @param {EventListener} listener
|
|
84
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
85
|
+
*/
|
|
86
|
+
prependOnceListener(eventName: string | symbol, listener: EventListener): IEventEmitter;
|
|
87
|
+
/**
|
|
88
|
+
* Gets the maximum number of listeners that can be added for a single event
|
|
89
|
+
* @returns {number} The maximum number of listeners
|
|
90
|
+
*/
|
|
91
|
+
maxListeners(): number;
|
|
92
|
+
/**
|
|
93
|
+
* Adds a listener for a specific event. It is an alias for the on() method
|
|
94
|
+
* @param {string | symbol} event
|
|
95
|
+
* @param {EventListener} listener
|
|
96
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
97
|
+
*/
|
|
98
|
+
addListener(event: string | symbol, listener: EventListener): IEventEmitter;
|
|
99
|
+
/**
|
|
100
|
+
* Adds a listener for a specific event
|
|
101
|
+
* @param {string | symbol} event
|
|
102
|
+
* @param {EventListener} listener
|
|
103
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
104
|
+
*/
|
|
105
|
+
on(event: string | symbol, listener: EventListener): IEventEmitter;
|
|
106
|
+
/**
|
|
107
|
+
* Removes a listener for a specific event. It is an alias for the off() method
|
|
108
|
+
* @param {string | symbol} event
|
|
109
|
+
* @param {EventListener} listener
|
|
110
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
111
|
+
*/
|
|
112
|
+
removeListener(event: string, listener: EventListener): IEventEmitter;
|
|
113
|
+
/**
|
|
114
|
+
* Removes a listener for a specific event
|
|
115
|
+
* @param {string | symbol} event
|
|
116
|
+
* @param {EventListener} listener
|
|
117
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
118
|
+
*/
|
|
119
|
+
off(event: string | symbol, listener: EventListener): IEventEmitter;
|
|
120
|
+
/**
|
|
121
|
+
* Calls all listeners for a specific event
|
|
122
|
+
* @param {string | symbol} event
|
|
123
|
+
* @param arguments_ The arguments to pass to the listeners
|
|
124
|
+
* @returns {boolean} Returns true if the event had listeners, false otherwise
|
|
125
|
+
*/
|
|
126
|
+
emit(event: string | symbol, ...arguments_: any[]): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Gets all listeners for a specific event. If no event is provided, it returns all listeners
|
|
129
|
+
* @param {string} [event] (Optional) The event name
|
|
130
|
+
* @returns {EventListener[]} An array of listeners
|
|
131
|
+
*/
|
|
132
|
+
listeners(event: string | symbol): EventListener[];
|
|
133
|
+
/**
|
|
134
|
+
* Removes all listeners for a specific event. If no event is provided, it removes all listeners
|
|
135
|
+
* @param {string} [event] (Optional) The event name
|
|
136
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
137
|
+
*/
|
|
138
|
+
removeAllListeners(event?: string | symbol): IEventEmitter;
|
|
139
|
+
/**
|
|
140
|
+
* Sets the maximum number of listeners that can be added for a single event
|
|
141
|
+
* @param {number} n The maximum number of listeners
|
|
142
|
+
* @returns {void}
|
|
143
|
+
*/
|
|
144
|
+
setMaxListeners(n: number): void;
|
|
145
|
+
/**
|
|
146
|
+
* Gets all listeners
|
|
147
|
+
* @returns {EventListener[]} An array of listeners
|
|
148
|
+
*/
|
|
149
|
+
getAllListeners(): EventListener[];
|
|
150
|
+
/**
|
|
151
|
+
* Sends a log message using the configured logger based on the event name
|
|
152
|
+
* @param {string | symbol} eventName - The event name that determines the log level
|
|
153
|
+
* @param {unknown} data - The data to log
|
|
154
|
+
*/
|
|
155
|
+
private sendLog;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=eventified.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventified.d.ts","sourceRoot":"","sources":["../../../../../src/caching/src/hashing/hooks/eventified.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE5F,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAElE,qBAAa,UAAW,YAAW,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IACxE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,WAAW,CAAW;gBAElB,OAAO,CAAC,EAAE,mBAAmB;IAezC;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED;;;OAGG;IACH,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAE3C;IAED;;;OAGG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;;OAGG;IACH,IAAW,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAEzC;IAED;;;OAGG;IACH,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED;;;OAGG;IACH,IAAW,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAE9C;IAED;;;;;OAKG;IACI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAU/E;;;;OAIG;IACI,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IASzD;;;OAGG;IACI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAI3C;;;;OAIG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,EAAE;IAQ7D;;;;;OAKG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAO1F;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAU9F;;;OAGG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAKlF;;;;;OAKG;IACI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAoBzE;;;;;OAKG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAK5E;;;;;OAKG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAc1E;;;;;OAKG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO;IA6BlE;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,EAAE;IAIzD;;;;OAIG;IACI,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa;IAUjE;;;;OAIG;IACI,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IASvC;;;OAGG;IACI,eAAe,IAAI,aAAa,EAAE;IASzC;;;;OAIG;IACH,OAAO,CAAC,OAAO;CAoDhB"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: hookified (v1.15.1)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
export class Eventified {
|
|
10
|
+
_eventListeners;
|
|
11
|
+
_maxListeners;
|
|
12
|
+
_logger;
|
|
13
|
+
_throwOnEmitError = false;
|
|
14
|
+
_throwOnEmptyListeners = false;
|
|
15
|
+
_errorEvent = 'error';
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this._eventListeners = new Map();
|
|
18
|
+
this._maxListeners = 100; // Default maximum number of listeners
|
|
19
|
+
this._logger = options?.logger;
|
|
20
|
+
if (options?.throwOnEmitError !== undefined) {
|
|
21
|
+
this._throwOnEmitError = options.throwOnEmitError;
|
|
22
|
+
}
|
|
23
|
+
if (options?.throwOnEmptyListeners !== undefined) {
|
|
24
|
+
this._throwOnEmptyListeners = options.throwOnEmptyListeners;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Gets the logger
|
|
29
|
+
* @returns {Logger}
|
|
30
|
+
*/
|
|
31
|
+
get logger() {
|
|
32
|
+
return this._logger;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Sets the logger
|
|
36
|
+
* @param {Logger} logger
|
|
37
|
+
*/
|
|
38
|
+
set logger(logger) {
|
|
39
|
+
this._logger = logger;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Gets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
|
|
43
|
+
* @returns {boolean}
|
|
44
|
+
*/
|
|
45
|
+
get throwOnEmitError() {
|
|
46
|
+
return this._throwOnEmitError;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Sets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
|
|
50
|
+
* @param {boolean} value
|
|
51
|
+
*/
|
|
52
|
+
set throwOnEmitError(value) {
|
|
53
|
+
this._throwOnEmitError = value;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Gets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
|
|
57
|
+
* @returns {boolean}
|
|
58
|
+
*/
|
|
59
|
+
get throwOnEmptyListeners() {
|
|
60
|
+
return this._throwOnEmptyListeners;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Sets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
|
|
64
|
+
* @param {boolean} value
|
|
65
|
+
*/
|
|
66
|
+
set throwOnEmptyListeners(value) {
|
|
67
|
+
this._throwOnEmptyListeners = value;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Adds a handler function for a specific event that will run only once
|
|
71
|
+
* @param {string | symbol} eventName
|
|
72
|
+
* @param {EventListener} listener
|
|
73
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
74
|
+
*/
|
|
75
|
+
once(eventName, listener) {
|
|
76
|
+
const onceListener = (...arguments_) => {
|
|
77
|
+
this.off(eventName, onceListener);
|
|
78
|
+
listener(...arguments_);
|
|
79
|
+
};
|
|
80
|
+
this.on(eventName, onceListener);
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Gets the number of listeners for a specific event. If no event is provided, it returns the total number of listeners
|
|
85
|
+
* @param {string} eventName The event name. Not required
|
|
86
|
+
* @returns {number} The number of listeners
|
|
87
|
+
*/
|
|
88
|
+
listenerCount(eventName) {
|
|
89
|
+
if (eventName === undefined) {
|
|
90
|
+
return this.getAllListeners().length;
|
|
91
|
+
}
|
|
92
|
+
const listeners = this._eventListeners.get(eventName);
|
|
93
|
+
return listeners ? listeners.length : 0;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Gets an array of event names
|
|
97
|
+
* @returns {Array<string | symbol>} An array of event names
|
|
98
|
+
*/
|
|
99
|
+
eventNames() {
|
|
100
|
+
return [...this._eventListeners.keys()];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Gets an array of listeners for a specific event. If no event is provided, it returns all listeners
|
|
104
|
+
* @param {string} [event] (Optional) The event name
|
|
105
|
+
* @returns {EventListener[]} An array of listeners
|
|
106
|
+
*/
|
|
107
|
+
rawListeners(event) {
|
|
108
|
+
if (event === undefined) {
|
|
109
|
+
return this.getAllListeners();
|
|
110
|
+
}
|
|
111
|
+
return this._eventListeners.get(event) ?? [];
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Prepends a listener to the beginning of the listeners array for the specified event
|
|
115
|
+
* @param {string | symbol} eventName
|
|
116
|
+
* @param {EventListener} listener
|
|
117
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
118
|
+
*/
|
|
119
|
+
prependListener(eventName, listener) {
|
|
120
|
+
const listeners = this._eventListeners.get(eventName) ?? [];
|
|
121
|
+
listeners.unshift(listener);
|
|
122
|
+
this._eventListeners.set(eventName, listeners);
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Prepends a one-time listener to the beginning of the listeners array for the specified event
|
|
127
|
+
* @param {string | symbol} eventName
|
|
128
|
+
* @param {EventListener} listener
|
|
129
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
130
|
+
*/
|
|
131
|
+
prependOnceListener(eventName, listener) {
|
|
132
|
+
const onceListener = (...arguments_) => {
|
|
133
|
+
this.off(eventName, onceListener);
|
|
134
|
+
listener(...arguments_);
|
|
135
|
+
};
|
|
136
|
+
this.prependListener(eventName, onceListener);
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Gets the maximum number of listeners that can be added for a single event
|
|
141
|
+
* @returns {number} The maximum number of listeners
|
|
142
|
+
*/
|
|
143
|
+
maxListeners() {
|
|
144
|
+
return this._maxListeners;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Adds a listener for a specific event. It is an alias for the on() method
|
|
148
|
+
* @param {string | symbol} event
|
|
149
|
+
* @param {EventListener} listener
|
|
150
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
151
|
+
*/
|
|
152
|
+
addListener(event, listener) {
|
|
153
|
+
this.on(event, listener);
|
|
154
|
+
return this;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Adds a listener for a specific event
|
|
158
|
+
* @param {string | symbol} event
|
|
159
|
+
* @param {EventListener} listener
|
|
160
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
161
|
+
*/
|
|
162
|
+
on(event, listener) {
|
|
163
|
+
if (!this._eventListeners.has(event)) {
|
|
164
|
+
this._eventListeners.set(event, []);
|
|
165
|
+
}
|
|
166
|
+
const listeners = this._eventListeners.get(event);
|
|
167
|
+
if (listeners) {
|
|
168
|
+
if (listeners.length >= this._maxListeners) {
|
|
169
|
+
console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length + 1} ${event} listeners added. Use setMaxListeners() to increase limit.`);
|
|
170
|
+
}
|
|
171
|
+
listeners.push(listener);
|
|
172
|
+
}
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Removes a listener for a specific event. It is an alias for the off() method
|
|
177
|
+
* @param {string | symbol} event
|
|
178
|
+
* @param {EventListener} listener
|
|
179
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
180
|
+
*/
|
|
181
|
+
removeListener(event, listener) {
|
|
182
|
+
this.off(event, listener);
|
|
183
|
+
return this;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Removes a listener for a specific event
|
|
187
|
+
* @param {string | symbol} event
|
|
188
|
+
* @param {EventListener} listener
|
|
189
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
190
|
+
*/
|
|
191
|
+
off(event, listener) {
|
|
192
|
+
const listeners = this._eventListeners.get(event) ?? [];
|
|
193
|
+
const index = listeners.indexOf(listener);
|
|
194
|
+
if (index !== -1) {
|
|
195
|
+
listeners.splice(index, 1);
|
|
196
|
+
}
|
|
197
|
+
if (listeners.length === 0) {
|
|
198
|
+
this._eventListeners.delete(event);
|
|
199
|
+
}
|
|
200
|
+
return this;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Calls all listeners for a specific event
|
|
204
|
+
* @param {string | symbol} event
|
|
205
|
+
* @param arguments_ The arguments to pass to the listeners
|
|
206
|
+
* @returns {boolean} Returns true if the event had listeners, false otherwise
|
|
207
|
+
*/
|
|
208
|
+
emit(event, ...arguments_) {
|
|
209
|
+
let result = false;
|
|
210
|
+
const listeners = this._eventListeners.get(event);
|
|
211
|
+
if (listeners && listeners.length > 0) {
|
|
212
|
+
for (const listener of listeners) {
|
|
213
|
+
listener(...arguments_);
|
|
214
|
+
result = true;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (event === this._errorEvent) {
|
|
218
|
+
const error = arguments_[0] instanceof Error ? arguments_[0] : new Error(`${arguments_[0]}`);
|
|
219
|
+
if (this._throwOnEmitError && !result) {
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
if (this.listeners(this._errorEvent).length === 0 && this._throwOnEmptyListeners === true) {
|
|
224
|
+
throw error;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// send it to the logger
|
|
229
|
+
this.sendLog(event, arguments_);
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Gets all listeners for a specific event. If no event is provided, it returns all listeners
|
|
234
|
+
* @param {string} [event] (Optional) The event name
|
|
235
|
+
* @returns {EventListener[]} An array of listeners
|
|
236
|
+
*/
|
|
237
|
+
listeners(event) {
|
|
238
|
+
return this._eventListeners.get(event) ?? [];
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Removes all listeners for a specific event. If no event is provided, it removes all listeners
|
|
242
|
+
* @param {string} [event] (Optional) The event name
|
|
243
|
+
* @returns {IEventEmitter} returns the instance of the class for chaining
|
|
244
|
+
*/
|
|
245
|
+
removeAllListeners(event) {
|
|
246
|
+
if (event !== undefined) {
|
|
247
|
+
this._eventListeners.delete(event);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
this._eventListeners.clear();
|
|
251
|
+
}
|
|
252
|
+
return this;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Sets the maximum number of listeners that can be added for a single event
|
|
256
|
+
* @param {number} n The maximum number of listeners
|
|
257
|
+
* @returns {void}
|
|
258
|
+
*/
|
|
259
|
+
setMaxListeners(n) {
|
|
260
|
+
this._maxListeners = n;
|
|
261
|
+
for (const listeners of this._eventListeners.values()) {
|
|
262
|
+
if (listeners.length > n) {
|
|
263
|
+
listeners.splice(n);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Gets all listeners
|
|
269
|
+
* @returns {EventListener[]} An array of listeners
|
|
270
|
+
*/
|
|
271
|
+
getAllListeners() {
|
|
272
|
+
let result = [];
|
|
273
|
+
for (const listeners of this._eventListeners.values()) {
|
|
274
|
+
result = [...result, ...listeners];
|
|
275
|
+
}
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Sends a log message using the configured logger based on the event name
|
|
280
|
+
* @param {string | symbol} eventName - The event name that determines the log level
|
|
281
|
+
* @param {unknown} data - The data to log
|
|
282
|
+
*/
|
|
283
|
+
sendLog(eventName, data) {
|
|
284
|
+
if (!this._logger) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
let message;
|
|
288
|
+
/* v8 ignore next -- @preserve */
|
|
289
|
+
if (typeof data === 'string') {
|
|
290
|
+
message = data;
|
|
291
|
+
}
|
|
292
|
+
else if (Array.isArray(data) && data.length > 0 && data[0] instanceof Error) {
|
|
293
|
+
message = data[0].message;
|
|
294
|
+
/* v8 ignore next -- @preserve */
|
|
295
|
+
}
|
|
296
|
+
else if (data instanceof Error) {
|
|
297
|
+
message = data.message;
|
|
298
|
+
}
|
|
299
|
+
else if (Array.isArray(data) && data.length > 0 && typeof data[0]?.message === 'string') {
|
|
300
|
+
message = data[0].message;
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
message = JSON.stringify(data);
|
|
304
|
+
}
|
|
305
|
+
switch (eventName) {
|
|
306
|
+
case 'error': {
|
|
307
|
+
this._logger.error?.(message, { event: eventName, data });
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
310
|
+
case 'warn': {
|
|
311
|
+
this._logger.warn?.(message, { event: eventName, data });
|
|
312
|
+
break;
|
|
313
|
+
}
|
|
314
|
+
case 'trace': {
|
|
315
|
+
this._logger.trace?.(message, { event: eventName, data });
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
case 'debug': {
|
|
319
|
+
this._logger.debug?.(message, { event: eventName, data });
|
|
320
|
+
break;
|
|
321
|
+
}
|
|
322
|
+
case 'fatal': {
|
|
323
|
+
this._logger.fatal?.(message, { event: eventName, data });
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
default: {
|
|
327
|
+
this._logger.info?.(message, { event: eventName, data });
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=eventified.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventified.js","sourceRoot":"","sources":["../../../../../src/caching/src/hashing/hooks/eventified.ts"],"names":[],"mappings":"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"}
|