@xylabs/events 4.13.4 → 4.13.6

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 (2) hide show
  1. package/dist/neutral/index.d.ts +108 -120
  2. package/package.json +12 -12
@@ -1,120 +1,108 @@
1
- import { Base } from '@xylabs/base';
2
- import type { BaseParams } from '@xylabs/base';
3
- import type { EmptyObject } from '@xylabs/object';
4
- import type { Promisable } from '@xylabs/promise';
5
-
6
- export declare class BaseEmitter<TParams extends BaseParams = BaseParams, TEventData extends EventData = EventData> extends Base<TParams> implements EventEmitter<TEventData> {
7
- eventData: TEventData;
8
- private events;
9
- constructor(params: BaseParams<TParams>);
10
- clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): this;
11
- emit<TEventName extends keyof TEventData = keyof TEventData, TEventArgs extends TEventData[TEventName] = TEventData[TEventName]>(eventName: TEventName, eventArgs: TEventArgs): Promise<void>;
12
- emitSerial<TEventName extends keyof TEventData = keyof TEventData, TEventArgs extends TEventData[TEventName] = TEventData[TEventName]>(eventName: TEventName, eventArgs: TEventArgs): Promise<void>;
13
- listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]): number;
14
- off<TEventName extends keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>): void;
15
- offAny(listener: EventAnyListener): void;
16
- on<TEventName extends keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>): () => void;
17
- onAny(listener: EventAnyListener): () => void;
18
- once<TEventName extends keyof TEventData>(eventName: TEventName, listener: EventListener<TEventData[TEventName]>): () => void;
19
- }
20
-
21
- export declare type BaseEmitterParams<T extends EmptyObject = EmptyObject> = BaseParams<T & BaseEmitterParamsFields & T>;
22
-
23
- export declare interface BaseEmitterParamsFields {
24
- }
25
-
26
- /**
27
- Emittery can collect and log debug information.
28
-
29
- To enable this feature set the `DEBUG` environment variable to `emittery` or `*`. Additionally, you can set the static `isDebugEnabled` variable to true
30
- on the Emittery class, or `myEmitter.debug.enabled` on an instance of it for debugging a single instance.
31
-
32
- See API for more information on how debugging works.
33
- */
34
- export declare type DebugLogger = (type: string, debugName: string, eventName?: EventName, eventData?: EventArgs) => void;
35
-
36
- /**
37
- Configure debug options of an instance.
38
- */
39
- export declare type DebugOptions = {
40
- enabled?: boolean;
41
- logger?: DebugLogger;
42
- readonly name: string;
43
- };
44
-
45
- export declare type EventAnyListener<TEventArgs extends EventArgs = EventArgs> = (eventName: EventName, eventData: TEventArgs) => Promisable<void>;
46
-
47
- export declare type EventArgs = string | number | object;
48
-
49
- export declare type EventData = {
50
- [key: EventName]: EventArgs;
51
- };
52
-
53
- export declare interface EventEmitter<T extends EventData> {
54
- eventData: T;
55
- clearListeners(eventNames: keyof T | (keyof T)[]): void;
56
- emit<TEventName extends keyof T>(eventName: TEventName, eventArgs: T[TEventName]): Promise<void>;
57
- emitSerial<TEventName extends keyof T>(eventName: TEventName, eventArgs: T[TEventName]): Promise<void>;
58
- listenerCount(eventNames: keyof T | (keyof T)[]): number;
59
- off<TEventName extends keyof T>(eventNames: TEventName | TEventName[], listener: EventListener<T[TEventName]>): void;
60
- offAny(listener: EventAnyListener | Promise<void>): void;
61
- on<TEventName extends keyof T>(eventNames: TEventName | TEventName[], listener: EventListener<T[TEventName]>): EventUnsubscribeFunction;
62
- onAny(listener: EventAnyListener): EventUnsubscribeFunction;
63
- once<TEventName extends keyof T>(eventName: TEventName, listener: EventListener<T[TEventName]>): EventUnsubscribeFunction;
64
- }
65
-
66
- export declare type EventListener<TEventArgs extends EventArgs = EventArgs> = (eventData: TEventArgs) => Promisable<void>;
67
-
68
- export declare type EventListenerInfo<TEventArgs extends EventArgs = EventArgs> = {
69
- filter?: TEventArgs;
70
- listener: EventListener<TEventArgs>;
71
- };
72
-
73
- export declare type EventName = PropertyKey;
74
-
75
- export declare class Events<TEventData extends EventData = EventData> extends Base<EventsParams> implements EventEmitter<TEventData> {
76
- protected static anyMap: WeakMap<object, Set<EventAnyListener>>;
77
- protected static eventsMap: WeakMap<object, Map<PropertyKey, Set<EventListenerInfo<EventArgs>>>>;
78
- private static canEmitMetaEvents;
79
- private static isGlobalDebugEnabled;
80
- eventData: TEventData;
81
- constructor(params?: EventsParams);
82
- static get isDebugEnabled(): boolean;
83
- static set isDebugEnabled(newValue: boolean);
84
- get debug(): DebugOptions | undefined;
85
- clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): void;
86
- emit<TEventName extends keyof TEventData>(eventName: TEventName, eventArgs: TEventData[TEventName]): Promise<void>;
87
- emitMetaEvent<TEventName extends keyof MetaEventData<TEventData>>(eventName: TEventName, eventArgs: MetaEventData<TEventData>[TEventName]): Promise<boolean | undefined>;
88
- emitSerial<TEventName extends keyof TEventData>(eventName: TEventName, eventArgs: TEventData[TEventName]): Promise<void>;
89
- listenerCount(eventNames?: keyof TEventData | (keyof TEventData)[]): number;
90
- logIfDebugEnabled<TEventName extends EventName>(type: string, eventName?: TEventName, eventArgs?: EventArgs): void;
91
- off<TEventName extends keyof TEventData, TEventListener = EventListener<TEventData[TEventName]>>(eventNames: TEventName | TEventName[], listener: TEventListener): void;
92
- offAny(listener: EventAnyListener): void;
93
- on<TEventName extends keyof TEventData = keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>, filter?: TEventData[TEventName]): () => void;
94
- onAny(listener: EventAnyListener): () => void;
95
- once<TEventName extends keyof TEventData>(eventName: TEventName, listener: EventListener<TEventData[TEventName]>): () => void;
96
- private emitInternal;
97
- private emitMetaEventInternal;
98
- private getListeners;
99
- private safeCallAnyListener;
100
- private safeCallListener;
101
- }
102
-
103
- export declare type EventsParams = BaseParams<{
104
- readonly debug?: DebugOptions;
105
- }>;
106
-
107
- export declare type EventUnsubscribeFunction = () => void;
108
-
109
- export declare type MetaEventData<TEventData extends EventData> = {
110
- listenerAdded: {
111
- eventName?: keyof TEventData;
112
- listener: EventListener<TEventData[keyof TEventData]> | EventAnyListener<TEventData[keyof TEventData]>;
113
- };
114
- listenerRemoved: {
115
- eventName?: keyof TEventData;
116
- listener: EventListener<TEventData[keyof TEventData]> | EventAnyListener<TEventData[keyof TEventData]>;
117
- };
118
- };
119
-
120
- export { }
1
+ import { BaseParams, Base } from '@xylabs/base';
2
+ import { EmptyObject } from '@xylabs/object';
3
+ import { Promisable } from '@xylabs/promise';
4
+
5
+ type EventName = PropertyKey;
6
+ type EventArgs = string | number | object;
7
+ type EventData = {
8
+ [key: EventName]: EventArgs;
9
+ };
10
+ type EventUnsubscribeFunction = () => void;
11
+ type EventAnyListener<TEventArgs extends EventArgs = EventArgs> = (eventName: EventName, eventData: TEventArgs) => Promisable<void>;
12
+ type EventListener<TEventArgs extends EventArgs = EventArgs> = (eventData: TEventArgs) => Promisable<void>;
13
+
14
+ interface EventEmitter<T extends EventData> {
15
+ eventData: T;
16
+ clearListeners(eventNames: keyof T | (keyof T)[]): void;
17
+ emit<TEventName extends keyof T>(eventName: TEventName, eventArgs: T[TEventName]): Promise<void>;
18
+ emitSerial<TEventName extends keyof T>(eventName: TEventName, eventArgs: T[TEventName]): Promise<void>;
19
+ listenerCount(eventNames: keyof T | (keyof T)[]): number;
20
+ off<TEventName extends keyof T>(eventNames: TEventName | TEventName[], listener: EventListener<T[TEventName]>): void;
21
+ offAny(listener: EventAnyListener | Promise<void>): void;
22
+ on<TEventName extends keyof T>(eventNames: TEventName | TEventName[], listener: EventListener<T[TEventName]>): EventUnsubscribeFunction;
23
+ onAny(listener: EventAnyListener): EventUnsubscribeFunction;
24
+ once<TEventName extends keyof T>(eventName: TEventName, listener: EventListener<T[TEventName]>): EventUnsubscribeFunction;
25
+ }
26
+
27
+ interface BaseEmitterParamsFields {
28
+ }
29
+ type BaseEmitterParams<T extends EmptyObject = EmptyObject> = BaseParams<T & BaseEmitterParamsFields & T>;
30
+ declare class BaseEmitter<TParams extends BaseParams = BaseParams, TEventData extends EventData = EventData> extends Base<TParams> implements EventEmitter<TEventData> {
31
+ eventData: TEventData;
32
+ private events;
33
+ constructor(params: BaseParams<TParams>);
34
+ clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): this;
35
+ emit<TEventName extends keyof TEventData = keyof TEventData, TEventArgs extends TEventData[TEventName] = TEventData[TEventName]>(eventName: TEventName, eventArgs: TEventArgs): Promise<void>;
36
+ emitSerial<TEventName extends keyof TEventData = keyof TEventData, TEventArgs extends TEventData[TEventName] = TEventData[TEventName]>(eventName: TEventName, eventArgs: TEventArgs): Promise<void>;
37
+ listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]): number;
38
+ off<TEventName extends keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>): void;
39
+ offAny(listener: EventAnyListener): void;
40
+ on<TEventName extends keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>): () => void;
41
+ onAny(listener: EventAnyListener): () => void;
42
+ once<TEventName extends keyof TEventData>(eventName: TEventName, listener: EventListener<TEventData[TEventName]>): () => void;
43
+ }
44
+
45
+ /**
46
+ Emittery can collect and log debug information.
47
+
48
+ To enable this feature set the `DEBUG` environment variable to `emittery` or `*`. Additionally, you can set the static `isDebugEnabled` variable to true
49
+ on the Emittery class, or `myEmitter.debug.enabled` on an instance of it for debugging a single instance.
50
+
51
+ See API for more information on how debugging works.
52
+ */
53
+ type DebugLogger = (type: string, debugName: string, eventName?: EventName, eventData?: EventArgs) => void;
54
+ type EventListenerInfo<TEventArgs extends EventArgs = EventArgs> = {
55
+ filter?: TEventArgs;
56
+ listener: EventListener<TEventArgs>;
57
+ };
58
+ /**
59
+ Configure debug options of an instance.
60
+ */
61
+ type DebugOptions = {
62
+ enabled?: boolean;
63
+ logger?: DebugLogger;
64
+ readonly name: string;
65
+ };
66
+ type MetaEventData<TEventData extends EventData> = {
67
+ listenerAdded: {
68
+ eventName?: keyof TEventData;
69
+ listener: EventListener<TEventData[keyof TEventData]> | EventAnyListener<TEventData[keyof TEventData]>;
70
+ };
71
+ listenerRemoved: {
72
+ eventName?: keyof TEventData;
73
+ listener: EventListener<TEventData[keyof TEventData]> | EventAnyListener<TEventData[keyof TEventData]>;
74
+ };
75
+ };
76
+ type EventsParams = BaseParams<{
77
+ readonly debug?: DebugOptions;
78
+ }>;
79
+ declare class Events<TEventData extends EventData = EventData> extends Base<EventsParams> implements EventEmitter<TEventData> {
80
+ protected static anyMap: WeakMap<object, Set<EventAnyListener>>;
81
+ protected static eventsMap: WeakMap<object, Map<PropertyKey, Set<EventListenerInfo<EventArgs>>>>;
82
+ private static canEmitMetaEvents;
83
+ private static isGlobalDebugEnabled;
84
+ eventData: TEventData;
85
+ constructor(params?: EventsParams);
86
+ static get isDebugEnabled(): boolean;
87
+ static set isDebugEnabled(newValue: boolean);
88
+ get debug(): DebugOptions | undefined;
89
+ clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): void;
90
+ emit<TEventName extends keyof TEventData>(eventName: TEventName, eventArgs: TEventData[TEventName]): Promise<void>;
91
+ emitMetaEvent<TEventName extends keyof MetaEventData<TEventData>>(eventName: TEventName, eventArgs: MetaEventData<TEventData>[TEventName]): Promise<boolean | undefined>;
92
+ emitSerial<TEventName extends keyof TEventData>(eventName: TEventName, eventArgs: TEventData[TEventName]): Promise<void>;
93
+ listenerCount(eventNames?: keyof TEventData | (keyof TEventData)[]): number;
94
+ logIfDebugEnabled<TEventName extends EventName>(type: string, eventName?: TEventName, eventArgs?: EventArgs): void;
95
+ off<TEventName extends keyof TEventData, TEventListener = EventListener<TEventData[TEventName]>>(eventNames: TEventName | TEventName[], listener: TEventListener): void;
96
+ offAny(listener: EventAnyListener): void;
97
+ on<TEventName extends keyof TEventData = keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>, filter?: TEventData[TEventName]): () => void;
98
+ onAny(listener: EventAnyListener): () => void;
99
+ once<TEventName extends keyof TEventData>(eventName: TEventName, listener: EventListener<TEventData[TEventName]>): () => void;
100
+ private emitInternal;
101
+ private emitMetaEventInternal;
102
+ private getListeners;
103
+ private safeCallAnyListener;
104
+ private safeCallListener;
105
+ }
106
+
107
+ export { BaseEmitter, Events };
108
+ export type { BaseEmitterParams, BaseEmitterParamsFields, DebugLogger, DebugOptions, EventAnyListener, EventArgs, EventData, EventEmitter, EventListener, EventListenerInfo, EventName, EventUnsubscribeFunction, EventsParams, MetaEventData };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/events",
3
- "version": "4.13.4",
3
+ "version": "4.13.6",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -30,19 +30,19 @@
30
30
  "source": "./src/index.ts",
31
31
  "types": "dist/neutral/index.d.ts",
32
32
  "dependencies": {
33
- "@xylabs/assert": "^4.13.4",
34
- "@xylabs/base": "^4.13.4",
35
- "@xylabs/error": "^4.13.4",
36
- "@xylabs/forget": "^4.13.4",
37
- "@xylabs/object": "^4.13.4",
38
- "@xylabs/promise": "^4.13.4",
39
- "@xylabs/typeof": "^4.13.4"
33
+ "@xylabs/assert": "^4.13.6",
34
+ "@xylabs/base": "^4.13.6",
35
+ "@xylabs/error": "^4.13.6",
36
+ "@xylabs/forget": "^4.13.6",
37
+ "@xylabs/object": "^4.13.6",
38
+ "@xylabs/promise": "^4.13.6",
39
+ "@xylabs/typeof": "^4.13.6"
40
40
  },
41
41
  "devDependencies": {
42
- "@xylabs/delay": "^4.13.4",
43
- "@xylabs/ts-scripts-yarn3": "^7.0.0-rc.7",
44
- "@xylabs/tsconfig": "^7.0.0-rc.7",
45
- "@xylabs/vitest-extended": "^4.13.4",
42
+ "@xylabs/delay": "^4.13.6",
43
+ "@xylabs/ts-scripts-yarn3": "^7.0.0-rc.8",
44
+ "@xylabs/tsconfig": "^7.0.0-rc.8",
45
+ "@xylabs/vitest-extended": "^4.13.6",
46
46
  "typescript": "^5.8.3",
47
47
  "vitest": "^3.2.4"
48
48
  },