@xyo-network/module-events 2.51.10
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 +165 -0
- package/README.md +13 -0
- package/dist/cjs/Events/Events.js +298 -0
- package/dist/cjs/Events/Events.js.map +1 -0
- package/dist/cjs/Events/index.js +5 -0
- package/dist/cjs/Events/index.js.map +1 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/model/Event.js +3 -0
- package/dist/cjs/model/Event.js.map +1 -0
- package/dist/cjs/model/index.js +5 -0
- package/dist/cjs/model/index.js.map +1 -0
- package/dist/docs.json +3646 -0
- package/dist/esm/Events/Events.js +282 -0
- package/dist/esm/Events/Events.js.map +1 -0
- package/dist/esm/Events/index.js +2 -0
- package/dist/esm/Events/index.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/model/Event.js +2 -0
- package/dist/esm/model/Event.js.map +1 -0
- package/dist/esm/model/index.js +2 -0
- package/dist/esm/model/index.js.map +1 -0
- package/dist/types/Events/Events.d.ts +58 -0
- package/dist/types/Events/Events.d.ts.map +1 -0
- package/dist/types/Events/index.d.ts +2 -0
- package/dist/types/Events/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/model/Event.d.ts +28 -0
- package/dist/types/model/Event.d.ts.map +1 -0
- package/dist/types/model/index.d.ts +2 -0
- package/dist/types/model/index.d.ts.map +1 -0
- package/package.json +56 -0
- package/src/Events/Events.ts +388 -0
- package/src/Events/index.ts +1 -0
- package/src/index.ts +2 -0
- package/src/model/Event.ts +33 -0
- package/src/model/index.ts +1 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { forget } from '@xylabs/forget';
|
|
2
|
+
const anyProducer = Symbol('anyProducer');
|
|
3
|
+
const resolvedPromise = Promise.resolve();
|
|
4
|
+
const listenerAdded = 'listenerAdded';
|
|
5
|
+
const listenerRemoved = 'listenerRemoved';
|
|
6
|
+
let canEmitMetaEvents = false;
|
|
7
|
+
let isGlobalDebugEnabled = false;
|
|
8
|
+
function assertEventName(eventName) {
|
|
9
|
+
if (typeof eventName !== 'string' && typeof eventName !== 'symbol' && typeof eventName !== 'number') {
|
|
10
|
+
throw new TypeError('`eventName` must be a string, symbol, or number');
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function assertListener(listener) {
|
|
14
|
+
if (typeof listener !== 'function') {
|
|
15
|
+
throw new TypeError('listener must be a function');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const isMetaEvent = (eventName) => eventName === listenerAdded || eventName === listenerRemoved;
|
|
19
|
+
export class Events {
|
|
20
|
+
static anyMap = new WeakMap();
|
|
21
|
+
static eventsMap = new WeakMap();
|
|
22
|
+
static producersMap = new WeakMap();
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
debug;
|
|
25
|
+
constructor(options = {}) {
|
|
26
|
+
Events.anyMap.set(this, new Set());
|
|
27
|
+
Events.eventsMap.set(this, new Map());
|
|
28
|
+
Events.producersMap.set(this, new Map());
|
|
29
|
+
Events.producersMap.get(this).set(anyProducer, new Set());
|
|
30
|
+
this.debug = options.debug;
|
|
31
|
+
if (this.debug) {
|
|
32
|
+
this.debug.enabled = !!this.debug.enabled;
|
|
33
|
+
this.debug.logger =
|
|
34
|
+
this.debug.logger ??
|
|
35
|
+
((type, debugName, eventName, eventData) => {
|
|
36
|
+
let eventDataString;
|
|
37
|
+
let eventNameString;
|
|
38
|
+
try {
|
|
39
|
+
// TODO: Use https://github.com/sindresorhus/safe-stringify when the package is more mature. Just copy-paste the code.
|
|
40
|
+
eventDataString = JSON.stringify(eventData);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
eventDataString = `Object with the following keys failed to stringify: ${Object.keys(eventData ?? {}).join(',')}`;
|
|
44
|
+
}
|
|
45
|
+
if (typeof eventName === 'symbol' || typeof eventName === 'number') {
|
|
46
|
+
eventNameString = eventName.toString();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
eventNameString = eventName;
|
|
50
|
+
}
|
|
51
|
+
const currentTime = new Date();
|
|
52
|
+
const logTime = `${currentTime.getHours()}:${currentTime.getMinutes()}:${currentTime.getSeconds()}.${currentTime.getMilliseconds()}`;
|
|
53
|
+
console.log(`[${logTime}][events:${type}][${debugName}] Event Name: ${eventNameString}\n\tdata: ${eventDataString}`);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
static get isDebugEnabled() {
|
|
58
|
+
// In a browser environment, `globalThis.process` can potentially reference a DOM Element with a `#process` ID,
|
|
59
|
+
// so instead of just type checking `globalThis.process`, we need to make sure that `globalThis.process.env` exists.
|
|
60
|
+
if (typeof globalThis.process?.env !== 'object') {
|
|
61
|
+
return isGlobalDebugEnabled;
|
|
62
|
+
}
|
|
63
|
+
const { env } = globalThis.process ?? { env: {} };
|
|
64
|
+
return env.DEBUG === 'emittery' || env.DEBUG === '*' || isGlobalDebugEnabled;
|
|
65
|
+
}
|
|
66
|
+
static set isDebugEnabled(newValue) {
|
|
67
|
+
isGlobalDebugEnabled = newValue;
|
|
68
|
+
}
|
|
69
|
+
clearListeners(eventNames) {
|
|
70
|
+
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames];
|
|
71
|
+
for (const eventName of eventNamesArray) {
|
|
72
|
+
this.logIfDebugEnabled('clear', eventName, undefined);
|
|
73
|
+
if (typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number') {
|
|
74
|
+
const set = this.getListeners(eventName);
|
|
75
|
+
if (set) {
|
|
76
|
+
set.clear();
|
|
77
|
+
}
|
|
78
|
+
const producers = this.getEventProducers(eventName);
|
|
79
|
+
if (producers) {
|
|
80
|
+
for (const producer of producers) {
|
|
81
|
+
producer.finish();
|
|
82
|
+
}
|
|
83
|
+
producers.clear();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
Events.anyMap.get(this).clear();
|
|
88
|
+
for (const [eventName, listeners] of Events.eventsMap.get(this).entries()) {
|
|
89
|
+
listeners.clear();
|
|
90
|
+
Events.eventsMap.get(this).delete(eventName);
|
|
91
|
+
}
|
|
92
|
+
for (const [eventName, producers] of Events.producersMap.get(this).entries()) {
|
|
93
|
+
for (const producer of producers) {
|
|
94
|
+
producer.finish();
|
|
95
|
+
}
|
|
96
|
+
producers.clear();
|
|
97
|
+
Events.producersMap.get(this).delete(eventName);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async emit(eventName, eventData) {
|
|
103
|
+
await this.emitInternal(eventName, eventData);
|
|
104
|
+
}
|
|
105
|
+
async emitInternal(eventName, eventArgs) {
|
|
106
|
+
assertEventName(eventName);
|
|
107
|
+
if (isMetaEvent(eventName) && !canEmitMetaEvents) {
|
|
108
|
+
throw new TypeError('`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`');
|
|
109
|
+
}
|
|
110
|
+
this.logIfDebugEnabled('emit', eventName, eventArgs);
|
|
111
|
+
this.enqueueProducers(eventName, eventArgs);
|
|
112
|
+
const listeners = this.getListeners(eventName) ?? new Set();
|
|
113
|
+
const anyListeners = Events.anyMap.get(this);
|
|
114
|
+
const staticListeners = [...listeners];
|
|
115
|
+
const staticAnyListeners = isMetaEvent(eventName) ? [] : [...anyListeners];
|
|
116
|
+
await resolvedPromise;
|
|
117
|
+
await Promise.all([
|
|
118
|
+
...staticListeners.map(async (listener) => {
|
|
119
|
+
if (listeners.has(listener)) {
|
|
120
|
+
return await listener(eventArgs);
|
|
121
|
+
}
|
|
122
|
+
}),
|
|
123
|
+
...staticAnyListeners.map(async (listener) => {
|
|
124
|
+
if (anyListeners.has(listener)) {
|
|
125
|
+
return await listener(eventName, eventArgs);
|
|
126
|
+
}
|
|
127
|
+
}),
|
|
128
|
+
]);
|
|
129
|
+
}
|
|
130
|
+
async emitMetaEvent(eventName, eventArgs) {
|
|
131
|
+
if (isMetaEvent(eventName)) {
|
|
132
|
+
try {
|
|
133
|
+
canEmitMetaEvents = true;
|
|
134
|
+
await this.emitInternal(eventName, eventArgs);
|
|
135
|
+
}
|
|
136
|
+
finally {
|
|
137
|
+
canEmitMetaEvents = false;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async emitSerial(eventName, eventData) {
|
|
142
|
+
assertEventName(eventName);
|
|
143
|
+
if (isMetaEvent(eventName) && !canEmitMetaEvents) {
|
|
144
|
+
throw new TypeError('`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`');
|
|
145
|
+
}
|
|
146
|
+
this.logIfDebugEnabled('emitSerial', eventName, eventData);
|
|
147
|
+
const listeners = this.getListeners(eventName) ?? new Set();
|
|
148
|
+
const anyListeners = Events.anyMap.get(this);
|
|
149
|
+
const staticListeners = [...listeners];
|
|
150
|
+
const staticAnyListeners = [...anyListeners];
|
|
151
|
+
await resolvedPromise;
|
|
152
|
+
for (const listener of staticListeners) {
|
|
153
|
+
if (listeners.has(listener)) {
|
|
154
|
+
await listener(eventData);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
for (const listener of staticAnyListeners) {
|
|
158
|
+
if (anyListeners.has(listener)) {
|
|
159
|
+
await listener(eventName, eventData);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
getEventProducers(eventName) {
|
|
164
|
+
const key = typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number' ? eventName : anyProducer;
|
|
165
|
+
const producers = Events.producersMap.get(this);
|
|
166
|
+
if (!producers.has(key)) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
return producers.get(key);
|
|
170
|
+
}
|
|
171
|
+
getListeners(eventName) {
|
|
172
|
+
const events = Events.eventsMap.get(this);
|
|
173
|
+
if (!events.has(eventName)) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
return events.get(eventName);
|
|
177
|
+
}
|
|
178
|
+
listenerCount(eventNames) {
|
|
179
|
+
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames];
|
|
180
|
+
let count = 0;
|
|
181
|
+
for (const eventName of eventNamesArray) {
|
|
182
|
+
if (typeof eventName === 'string') {
|
|
183
|
+
count +=
|
|
184
|
+
Events.anyMap.get(this).size +
|
|
185
|
+
(this.getListeners(eventName)?.size ?? 0) +
|
|
186
|
+
(this.getEventProducers(eventName)?.size ?? 0) +
|
|
187
|
+
(this.getEventProducers()?.size ?? 0);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (typeof eventName !== 'undefined') {
|
|
191
|
+
assertEventName(eventName);
|
|
192
|
+
}
|
|
193
|
+
count += Events.anyMap.get(this).size;
|
|
194
|
+
for (const value of Events.eventsMap.get(this).values()) {
|
|
195
|
+
count += value.size;
|
|
196
|
+
}
|
|
197
|
+
for (const value of Events.producersMap.get(this).values()) {
|
|
198
|
+
count += value.size;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return count;
|
|
202
|
+
}
|
|
203
|
+
logIfDebugEnabled(type, eventName, eventArgs) {
|
|
204
|
+
if (Events.isDebugEnabled || this.debug?.enabled) {
|
|
205
|
+
this.debug?.logger?.(type, this.debug.name, eventName, eventArgs);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
off(eventNames, listener) {
|
|
209
|
+
assertListener(listener);
|
|
210
|
+
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames];
|
|
211
|
+
for (const eventName of eventNamesArray) {
|
|
212
|
+
assertEventName(eventName);
|
|
213
|
+
const set = this.getListeners(eventName);
|
|
214
|
+
if (set) {
|
|
215
|
+
set.delete(listener);
|
|
216
|
+
if (set.size === 0) {
|
|
217
|
+
const events = Events.eventsMap.get(this);
|
|
218
|
+
events.delete(eventName);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
this.logIfDebugEnabled('unsubscribe', eventName, undefined);
|
|
222
|
+
if (!isMetaEvent(eventName)) {
|
|
223
|
+
forget(this.emitMetaEvent(listenerRemoved, { eventName, listener }));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
offAny(listener) {
|
|
228
|
+
assertListener(listener);
|
|
229
|
+
this.logIfDebugEnabled('unsubscribeAny', undefined, undefined);
|
|
230
|
+
Events.anyMap.get(this).delete(listener);
|
|
231
|
+
forget(this.emitMetaEvent(listenerRemoved, { listener }));
|
|
232
|
+
}
|
|
233
|
+
on(eventNames, listener) {
|
|
234
|
+
assertListener(listener);
|
|
235
|
+
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames];
|
|
236
|
+
for (const eventName of eventNamesArray) {
|
|
237
|
+
assertEventName(eventName);
|
|
238
|
+
let set = this.getListeners(eventName);
|
|
239
|
+
if (!set) {
|
|
240
|
+
set = new Set();
|
|
241
|
+
const events = Events.eventsMap.get(this);
|
|
242
|
+
events.set(eventName, set);
|
|
243
|
+
}
|
|
244
|
+
set.add(listener);
|
|
245
|
+
this.logIfDebugEnabled('subscribe', eventName, undefined);
|
|
246
|
+
if (!isMetaEvent(eventName)) {
|
|
247
|
+
forget(this.emitMetaEvent(listenerAdded, { eventName, listener }));
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return this.off.bind(this, eventNames, listener);
|
|
251
|
+
}
|
|
252
|
+
onAny(listener) {
|
|
253
|
+
assertListener(listener);
|
|
254
|
+
this.logIfDebugEnabled('subscribeAny', undefined, undefined);
|
|
255
|
+
Events.anyMap.get(this).add(listener);
|
|
256
|
+
forget(this.emitMetaEvent(listenerAdded, { listener }));
|
|
257
|
+
return this.offAny.bind(this, listener);
|
|
258
|
+
}
|
|
259
|
+
once(eventNames, listener) {
|
|
260
|
+
const subListener = async (args) => {
|
|
261
|
+
this.off(eventNames, subListener);
|
|
262
|
+
await listener(args);
|
|
263
|
+
};
|
|
264
|
+
this.on(eventNames, subListener);
|
|
265
|
+
return this.off.bind(this, eventNames, subListener);
|
|
266
|
+
}
|
|
267
|
+
enqueueProducers(eventName, eventData) {
|
|
268
|
+
const producers = Events.producersMap.get(this);
|
|
269
|
+
if (producers.has(eventName)) {
|
|
270
|
+
for (const producer of producers.get(eventName)) {
|
|
271
|
+
producer.enqueue(eventData);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (producers.has(anyProducer)) {
|
|
275
|
+
const item = Promise.all([eventName, eventData]);
|
|
276
|
+
for (const producer of producers.get(anyProducer)) {
|
|
277
|
+
producer.enqueue(item);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=Events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/Events/Events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../src/model/Event.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { EventAnyListener, EventArgs, EventData, EventFunctions, EventListener, EventName } from '../model';
|
|
2
|
+
/**
|
|
3
|
+
Emittery can collect and log debug information.
|
|
4
|
+
|
|
5
|
+
To enable this feature set the `DEBUG` environment variable to `emittery` or `*`. Additionally, you can set the static `isDebugEnabled` variable to true on the Emittery class, or `myEmitter.debug.enabled` on an instance of it for debugging a single instance.
|
|
6
|
+
|
|
7
|
+
See API for more information on how debugging works.
|
|
8
|
+
*/
|
|
9
|
+
export type DebugLogger<TEventData extends EventData, TName extends keyof TEventData> = (type: string, debugName: string, eventName?: TName, eventData?: TEventData[TName]) => void;
|
|
10
|
+
/**
|
|
11
|
+
Configure debug options of an instance.
|
|
12
|
+
*/
|
|
13
|
+
export type DebugOptions<TEventData extends EventData> = {
|
|
14
|
+
enabled?: boolean;
|
|
15
|
+
logger?: DebugLogger<TEventData, keyof TEventData>;
|
|
16
|
+
readonly name: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
Configuration options for Emittery.
|
|
20
|
+
*/
|
|
21
|
+
export type Options<TEventData extends EventData> = {
|
|
22
|
+
readonly debug?: DebugOptions<TEventData>;
|
|
23
|
+
};
|
|
24
|
+
export type MetaEventData<TEventData extends EventData> = {
|
|
25
|
+
listenerAdded: {
|
|
26
|
+
eventName?: keyof TEventData;
|
|
27
|
+
listener: EventListener<TEventData>;
|
|
28
|
+
};
|
|
29
|
+
listenerRemoved: {
|
|
30
|
+
eventName?: keyof TEventData;
|
|
31
|
+
listener: EventListener<TEventData>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export declare class Events<TEventData extends EventData> implements EventFunctions<TEventData> {
|
|
35
|
+
static anyMap: WeakMap<object, any>;
|
|
36
|
+
static eventsMap: WeakMap<object, any>;
|
|
37
|
+
static producersMap: WeakMap<object, any>;
|
|
38
|
+
debug?: DebugOptions<any>;
|
|
39
|
+
constructor(options?: Options<TEventData>);
|
|
40
|
+
static get isDebugEnabled(): boolean;
|
|
41
|
+
static set isDebugEnabled(newValue: boolean);
|
|
42
|
+
clearListeners(eventNames: keyof TEventData | keyof TEventData[]): void;
|
|
43
|
+
emit(eventName: keyof TEventData, eventData?: TEventData[keyof TEventData]): Promise<void>;
|
|
44
|
+
emitInternal<TEventName extends EventName, TEventArgs extends EventArgs>(eventName: TEventName, eventArgs?: TEventArgs): Promise<void>;
|
|
45
|
+
emitMetaEvent<TEventName extends EventName, TEventArgs extends EventArgs>(eventName: TEventName, eventArgs: TEventArgs): Promise<void>;
|
|
46
|
+
emitSerial(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>;
|
|
47
|
+
getEventProducers(eventName?: keyof TEventData): any;
|
|
48
|
+
getListeners(eventName: keyof TEventData): any;
|
|
49
|
+
listenerCount(eventNames: keyof TEventData | keyof TEventData[]): number;
|
|
50
|
+
logIfDebugEnabled<TEventName extends EventName, TEventArgs extends EventArgs>(type: string, eventName?: TEventName, eventArgs?: TEventArgs): void;
|
|
51
|
+
off(eventNames: keyof TEventData | keyof TEventData[], listener: object): void;
|
|
52
|
+
offAny(listener: object): void;
|
|
53
|
+
on(eventNames: keyof TEventData | keyof TEventData[], listener: object): () => void;
|
|
54
|
+
onAny(listener: EventAnyListener<TEventData>): () => void;
|
|
55
|
+
once(eventNames: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): () => void;
|
|
56
|
+
private enqueueProducers;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=Events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../src/Events/Events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Promisable } from '@xyo-network/promise';
|
|
2
|
+
import { BaseParams } from '@xyo-network/protocol';
|
|
3
|
+
export type EventName = PropertyKey;
|
|
4
|
+
export type EventArgs = string | number | object;
|
|
5
|
+
export type EventData = {
|
|
6
|
+
[key: EventName]: EventArgs;
|
|
7
|
+
};
|
|
8
|
+
export type EventUnsubscribeFunction = () => void;
|
|
9
|
+
export type EventAnyListener<TEventData extends EventData> = (eventName: keyof TEventData, eventData?: TEventData[keyof TEventData]) => Promisable<void>;
|
|
10
|
+
export type EventListener<TEventData extends EventData> = (eventData?: TEventData[keyof TEventData]) => Promisable<void>;
|
|
11
|
+
export type OncePromise<T> = {
|
|
12
|
+
off(): void;
|
|
13
|
+
} & Promise<T>;
|
|
14
|
+
export interface EventFunctions<TEventData extends EventData> {
|
|
15
|
+
clearListeners(eventNames: keyof TEventData | keyof TEventData[]): void;
|
|
16
|
+
emit(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>;
|
|
17
|
+
emitSerial(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>;
|
|
18
|
+
listenerCount(eventNames: keyof TEventData | keyof TEventData[]): number;
|
|
19
|
+
off(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): void;
|
|
20
|
+
offAny(listener: EventAnyListener<TEventData> | Promise<void>): void;
|
|
21
|
+
on(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): EventUnsubscribeFunction;
|
|
22
|
+
onAny(listener: EventAnyListener<TEventData>): EventUnsubscribeFunction;
|
|
23
|
+
once(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): EventUnsubscribeFunction;
|
|
24
|
+
}
|
|
25
|
+
export type EventDataParams<TEventData extends EventData | undefined = undefined, TParams extends BaseParams = BaseParams> = TParams & {
|
|
26
|
+
eventData?: TEventData extends EventData ? TEventData | any : any;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=Event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/model/Event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,MAAM,SAAS,GAAG,WAAW,CAAA;AACnC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAChD,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAA;AACvD,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAA;AACjD,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,SAAS,IAAI,CAC3D,SAAS,EAAE,MAAM,UAAU,EAC3B,SAAS,CAAC,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,KACrC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrB,MAAM,MAAM,aAAa,CAAC,UAAU,SAAS,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;AAExH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,GAAG,IAAI,IAAI,CAAA;CACZ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAEd,MAAM,WAAW,cAAc,CAAC,UAAU,SAAS,SAAS;IAC1D,cAAc,CAAC,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,GAAG,IAAI,CAAA;IACvE,IAAI,CAAC,SAAS,EAAE,MAAM,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,UAAU,CAAC,SAAS,EAAE,MAAM,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/F,aAAa,CAAC,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,GAAG,MAAM,CAAA;IACxE,GAAG,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAChG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpE,EAAE,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;IACnH,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;IACvE,IAAI,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;CACtH;AAED,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EAAE,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,OAAO,GAAG;IAErI,SAAS,CAAC,EAAE,UAAU,SAAS,SAAS,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,CAAA;CAClE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xyo-network/module-events",
|
|
3
|
+
"author": {
|
|
4
|
+
"email": "support@xyo.network",
|
|
5
|
+
"name": "XYO Development Team",
|
|
6
|
+
"url": "https://xyo.network"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"email": "support@xyo.network",
|
|
10
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@xylabs/forget": "^2.7.4",
|
|
14
|
+
"@xyo-network/promise": "^2.51.10",
|
|
15
|
+
"@xyo-network/protocol": "^2.51.10"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@xylabs/ts-scripts-yarn3": "^2.16.1",
|
|
19
|
+
"@xylabs/tsconfig": "^2.16.1",
|
|
20
|
+
"typescript": "^4.9.5"
|
|
21
|
+
},
|
|
22
|
+
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
23
|
+
"browser": "dist/esm/index.js",
|
|
24
|
+
"docs": "dist/docs.json",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"node": {
|
|
28
|
+
"import": "./dist/esm/index.js",
|
|
29
|
+
"require": "./dist/cjs/index.js"
|
|
30
|
+
},
|
|
31
|
+
"browser": {
|
|
32
|
+
"import": "./dist/esm/index.js",
|
|
33
|
+
"require": "./dist/cjs/index.js"
|
|
34
|
+
},
|
|
35
|
+
"default": "./dist/esm/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./dist/docs.json": {
|
|
38
|
+
"default": "./dist/docs.json"
|
|
39
|
+
},
|
|
40
|
+
"./package.json": "./package.json"
|
|
41
|
+
},
|
|
42
|
+
"main": "dist/cjs/index.js",
|
|
43
|
+
"module": "dist/esm/index.js",
|
|
44
|
+
"homepage": "https://xyo.network",
|
|
45
|
+
"license": "LGPL-3.0",
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
48
|
+
},
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
52
|
+
},
|
|
53
|
+
"sideEffects": false,
|
|
54
|
+
"types": "dist/types/index.d.ts",
|
|
55
|
+
"version": "2.51.10"
|
|
56
|
+
}
|