Launch Week Day 2: Introducing Reports: An Extensible Reporting Framework for Socket Data.Learn More
Socket
Book a DemoSign in
Socket

@xylabs/events

Package Overview
Dependencies
Maintainers
5
Versions
203
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xylabs/events

Base functionality used throughout XY Labs TypeScript/JavaScript libraries

latest
Source
npmnpm
Version
5.0.100
Version published
Weekly downloads
3.7K
9.05%
Maintainers
5
Weekly downloads
 
Created
Source

@xylabs/events

npm license

Base functionality used throughout XY Labs TypeScript/JavaScript libraries

Install

Using npm:

npm install {{name}}

Using yarn:

yarn add {{name}}

Using pnpm:

pnpm add {{name}}

Using bun:

bun add {{name}}

License

See the LICENSE file for license rights and limitations (LGPL-3.0-only).

Reference

packages

events

### .temp-typedoc

  ### classes

    ### <a id="BaseEmitter"></a>BaseEmitter

@xylabs/events

Base class that combines the Base utility class with typed event emission capabilities. Delegates all event operations to an internal Events instance.

Extends

  • Base<TParams>

Type Parameters

TParams

TParams extends BaseParams = BaseParams

TEventData

TEventData extends EventData = EventData

Implements

Constructors

Constructor

new BaseEmitter<TParams, TEventData>(params): BaseEmitter<TParams, TEventData>;

Parameters

params

BaseParams<TParams>

Returns

BaseEmitter<TParams, TEventData>

Overrides

Base<TParams>.constructor

Properties

defaultLogger?

static optional defaultLogger?: Logger;

Inherited from

Base.defaultLogger

globalInstances

readonly static globalInstances: Record<BaseClassName, WeakRef<Base>[]>;

Inherited from

Base.globalInstances

globalInstancesCountHistory

readonly static globalInstancesCountHistory: Record<BaseClassName, number[]>;

Inherited from

Base.globalInstancesCountHistory

eventData

eventData: TEventData;

Type-level reference to the event data shape for external type queries.

Implementation of

EventEmitter.eventData

Accessors

historyInterval

Get Signature

get static historyInterval(): number;

Returns

number

Set Signature

set static historyInterval(value): void;

Parameters

value

number

Returns

void

Inherited from

Base.historyInterval

historyTime

Get Signature

get static historyTime(): number;

Returns

number

Set Signature

set static historyTime(value): void;

Parameters

value

number

Returns

void

Inherited from

Base.historyTime

maxGcFrequency

Get Signature

get static maxGcFrequency(): number;

Returns

number

Set Signature

set static maxGcFrequency(value): void;

Parameters

value

number

Returns

void

Inherited from

Base.maxGcFrequency

maxHistoryDepth

Get Signature

get static maxHistoryDepth(): number;

Returns

number

Inherited from

Base.maxHistoryDepth

logger

Get Signature

get logger(): Logger | undefined;

Returns

Logger | undefined

Inherited from

Base.logger

meter

Get Signature

get meter(): Meter | undefined;

Returns

Meter | undefined

Inherited from

Base.meter

params

Get Signature

get params(): BaseParams<TParams>;

Returns

BaseParams<TParams>

Inherited from

Base.params

tracer

Get Signature

get tracer(): Tracer | undefined;

Returns

Tracer | undefined

Inherited from

Base.tracer

Methods

gc()

Call Signature

static gc(force?): void;

Parameters

force?

boolean

Returns

void

Inherited from

Base.gc

Call Signature

static gc(className): void;

Parameters

className

BaseClassName

Returns

void

Inherited from

Base.gc

instanceCount()

static instanceCount(className): number;

Parameters

className

BaseClassName

Returns

number

Inherited from

Base.instanceCount

instanceCounts()

static instanceCounts(): Record<BaseClassName, number>;

Returns

Record<BaseClassName, number>

Inherited from

Base.instanceCounts

startHistory()

static startHistory(): void;

Returns

void

Inherited from

Base.startHistory

stopHistory()

static stopHistory(): void;

Returns

void

Inherited from

Base.stopHistory

clearListeners()

clearListeners(eventNames): BaseEmitter<TParams, TEventData>;

Removes all listeners for the specified event name(s).

Parameters

eventNames

keyof TEventData | keyof TEventData[]

One or more event names to clear listeners for.

Returns

BaseEmitter<TParams, TEventData>

This instance for chaining.

Implementation of

EventEmitter.clearListeners

emit()

emit<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;

Emits an event, invoking all registered listeners concurrently.

Type Parameters

TEventName

TEventName extends string | number | symbol = keyof TEventData

TEventArgs

TEventArgs extends EventArgs = TEventData[TEventName]

Parameters

eventName

TEventName

The event to emit.

eventArgs

TEventArgs

The data to pass to listeners.

Returns

Promise<void>

Implementation of

EventEmitter.emit

emitSerial()

emitSerial<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;

Emits an event, invoking all registered listeners sequentially in order.

Type Parameters

TEventName

TEventName extends string | number | symbol = keyof TEventData

TEventArgs

TEventArgs extends EventArgs = TEventData[TEventName]

Parameters

eventName

TEventName

The event to emit.

eventArgs

TEventArgs

The data to pass to listeners.

Returns

Promise<void>

Implementation of

EventEmitter.emitSerial

listenerCount()

listenerCount(eventNames): number;

Returns the total number of listeners registered for the specified event name(s).

Parameters

eventNames

keyof TEventData | keyof TEventData[]

One or more event names to count listeners for.

Returns

number

The total listener count.

Implementation of

EventEmitter.listenerCount

off()

off<TEventName>(eventNames, listener): void;

Removes a specific listener from the specified event name(s).

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventNames

TEventName | TEventName[]

One or more event names to unsubscribe from.

listener

EventListener<TEventData[TEventName]>

The listener to remove.

Returns

void

Implementation of

EventEmitter.off

offAny()

offAny(listener): void;

Removes a wildcard listener that was receiving all events.

Parameters

listener

EventAnyListener

The wildcard listener to remove.

Returns

void

Implementation of

EventEmitter.offAny

on()

on<TEventName>(eventNames, listener): (...args) => void;

Subscribes a listener to the specified event name(s).

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventNames

TEventName | TEventName[]

One or more event names to listen for.

listener

EventListener<TEventData[TEventName]>

The callback to invoke when the event fires.

Returns

An unsubscribe function.

(...args) => void

Implementation of

EventEmitter.on

onAny()

onAny(listener): (...args) => void;

Subscribes a wildcard listener that receives all events.

Parameters

listener

EventAnyListener

The callback to invoke for any event.

Returns

An unsubscribe function.

(...args) => void

Implementation of

EventEmitter.onAny

once()

once<TEventName>(eventName, listener): (...args) => void;

Subscribes a listener that will be invoked only once for the specified event, then automatically removed.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventName

TEventName

The event to listen for.

listener

EventListener<TEventData[TEventName]>

The callback to invoke once.

Returns

An unsubscribe function.

(...args) => void

Implementation of

EventEmitter.once

    ### <a id="Events"></a>Events

@xylabs/events

Core typed event emitter implementation supporting named events, wildcard listeners, serial and concurrent emission, listener filtering, and debug logging.

Extends

Type Parameters

TEventData

TEventData extends EventData = EventData

Implements

Constructors

Constructor

new Events<TEventData>(params?): Events<TEventData>;

Parameters

params?

EventsParams = {}

Returns

Events<TEventData>

Overrides

Base<EventsParams>.constructor

Properties

defaultLogger?

static optional defaultLogger?: Logger;

Inherited from

Base.defaultLogger

globalInstances

readonly static globalInstances: Record<BaseClassName, WeakRef<Base>[]>;

Inherited from

Base.globalInstances

globalInstancesCountHistory

readonly static globalInstancesCountHistory: Record<BaseClassName, number[]>;

Inherited from

Base.globalInstancesCountHistory

anyMap

protected static anyMap: WeakMap<object, Set<EventAnyListener>>;

eventsMap

protected static eventsMap: WeakMap<object, Map<PropertyKey, Set<EventListenerInfo<EventArgs>>>>;

eventData

eventData: TEventData;

Type-level reference to the event data shape for external type queries.

Implementation of

EventEmitter.eventData

Accessors

historyInterval

Get Signature

get static historyInterval(): number;

Returns

number

Set Signature

set static historyInterval(value): void;

Parameters

value

number

Returns

void

Inherited from

Base.historyInterval

historyTime

Get Signature

get static historyTime(): number;

Returns

number

Set Signature

set static historyTime(value): void;

Parameters

value

number

Returns

void

Inherited from

Base.historyTime

maxGcFrequency

Get Signature

get static maxGcFrequency(): number;

Returns

number

Set Signature

set static maxGcFrequency(value): void;

Parameters

value

number

Returns

void

Inherited from

Base.maxGcFrequency

maxHistoryDepth

Get Signature

get static maxHistoryDepth(): number;

Returns

number

Inherited from

Base.maxHistoryDepth

logger

Get Signature

get logger(): Logger | undefined;

Returns

Logger | undefined

Inherited from

Base.logger

meter

Get Signature

get meter(): Meter | undefined;

Returns

Meter | undefined

Inherited from

Base.meter

params

Get Signature

get params(): BaseParams<TParams>;

Returns

BaseParams<TParams>

Inherited from

Base.params

tracer

Get Signature

get tracer(): Tracer | undefined;

Returns

Tracer | undefined

Inherited from

Base.tracer

isDebugEnabled

Get Signature

get static isDebugEnabled(): boolean;

Whether debug mode is enabled globally or via the DEBUG environment variable.

Returns

boolean

Set Signature

set static isDebugEnabled(newValue): void;

Parameters

newValue

boolean

Returns

void

debug

Get Signature

get debug(): DebugOptions | undefined;

The debug configuration for this instance, if provided.

Returns

DebugOptions | undefined

Methods

gc()

Call Signature

static gc(force?): void;

Parameters

force?

boolean

Returns

void

Inherited from

Base.gc

Call Signature

static gc(className): void;

Parameters

className

BaseClassName

Returns

void

Inherited from

Base.gc

instanceCount()

static instanceCount(className): number;

Parameters

className

BaseClassName

Returns

number

Inherited from

Base.instanceCount

instanceCounts()

static instanceCounts(): Record<BaseClassName, number>;

Returns

Record<BaseClassName, number>

Inherited from

Base.instanceCounts

startHistory()

static startHistory(): void;

Returns

void

Inherited from

Base.startHistory

stopHistory()

static stopHistory(): void;

Returns

void

Inherited from

Base.stopHistory

clearListeners()

clearListeners(eventNames): void;

Removes all listeners for the specified event name(s).

Parameters

eventNames

keyof TEventData | keyof TEventData[]

One or more event names to clear listeners for.

Returns

void

Implementation of

EventEmitter.clearListeners

emit()

emit<TEventName>(eventName, eventArgs): Promise<void>;

Emits an event, invoking all registered listeners concurrently.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventName

TEventName

The event to emit.

eventArgs

TEventData[TEventName]

The data to pass to listeners.

Returns

Promise<void>

Implementation of

EventEmitter.emit

emitMetaEvent()

emitMetaEvent<TEventName>(eventName, eventArgs): Promise<boolean | undefined>;

Emits an internal meta event (listenerAdded or listenerRemoved).

Type Parameters

TEventName

TEventName extends keyof MetaEventData<TEventData>

Parameters

eventName

TEventName

The meta event name.

eventArgs

MetaEventData<TEventData>[TEventName]

The meta event data containing listener and event information.

Returns

Promise<boolean | undefined>

True if the meta event was emitted successfully.

emitSerial()

emitSerial<TEventName>(eventName, eventArgs): Promise<void>;

Emits an event, invoking all registered listeners sequentially in order.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventName

TEventName

The event to emit.

eventArgs

TEventData[TEventName]

The data to pass to listeners.

Returns

Promise<void>

Implementation of

EventEmitter.emitSerial

listenerCount()

listenerCount(eventNames?): number;

Returns the total number of listeners registered for the specified event name(s).

Parameters

eventNames?

keyof TEventData | keyof TEventData[]

One or more event names to count listeners for.

Returns

number

The total listener count.

Implementation of

EventEmitter.listenerCount

logIfDebugEnabled()

logIfDebugEnabled<TEventName>(
   type, 
   eventName?, 
   eventArgs?): void;

Logs debug information if debug mode is enabled.

Type Parameters

TEventName

TEventName extends PropertyKey

Parameters

type

string

The type of operation being logged.

eventName?

TEventName

The event name, if applicable.

eventArgs?

EventArgs

The event data, if applicable.

Returns

void

off()

off<TEventName, TEventListener>(eventNames, listener): void;

Removes a specific listener from the specified event name(s).

Type Parameters

TEventName

TEventName extends string | number | symbol

TEventListener

TEventListener = EventListener<TEventData[TEventName]>

Parameters

eventNames

TEventName | TEventName[]

One or more event names to unsubscribe from.

listener

TEventListener

The listener to remove.

Returns

void

Implementation of

EventEmitter.off

offAny()

offAny(listener): void;

Removes a wildcard listener that was receiving all events.

Parameters

listener

EventAnyListener

The wildcard listener to remove.

Returns

void

Implementation of

EventEmitter.offAny

on()

on<TEventName>(
   eventNames, 
   listener, 
   filter?): (...args) => void;

Subscribes a listener to the specified event name(s).

Type Parameters

TEventName

TEventName extends string | number | symbol = keyof TEventData

Parameters

eventNames

TEventName | TEventName[]

One or more event names to listen for.

listener

EventListener<TEventData[TEventName]>

The callback to invoke when the event fires.

filter?

TEventData[TEventName]

Optional filter to selectively invoke the listener based on event data.

Returns

An unsubscribe function.

(...args) => void

Implementation of

EventEmitter.on

onAny()

onAny(listener): (...args) => void;

Subscribes a wildcard listener that receives all events.

Parameters

listener

EventAnyListener

The callback to invoke for any event.

Returns

An unsubscribe function.

(...args) => void

Implementation of

EventEmitter.onAny

once()

once<TEventName>(eventName, listener): (...args) => void;

Subscribes a listener that will be invoked only once for the specified event, then automatically removed.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventName

TEventName

The event to listen for.

listener

EventListener<TEventData[TEventName]>

The callback to invoke once.

Returns

An unsubscribe function.

(...args) => void

Implementation of

EventEmitter.once

  ### interfaces

    ### <a id="BaseEmitterParamsFields"></a>BaseEmitterParamsFields

@xylabs/events

Fields specific to BaseEmitter configuration parameters.

    ### <a id="DebugOptions"></a>DebugOptions

@xylabs/events

Configure debug options of an instance.

Properties

enabled?

optional enabled?: boolean;

logger?

optional logger?: DebugLogger;

name

readonly name: string;
    ### <a id="EventEmitter"></a>EventEmitter

@xylabs/events

Interface for a typed event emitter that supports subscribing, unsubscribing, and emitting events.

Type Parameters

T

T extends EventData

Properties

eventData

eventData: T;

Type-level reference to the event data shape for external type queries.

Methods

clearListeners()

clearListeners(eventNames): void;

Removes all listeners for the specified event name(s).

Parameters

eventNames

keyof T | keyof T[]

Returns

void

emit()

emit<TEventName>(eventName, eventArgs): Promise<void>;

Emits an event, invoking all registered listeners concurrently.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventName

TEventName

eventArgs

T[TEventName]

Returns

Promise<void>

emitSerial()

emitSerial<TEventName>(eventName, eventArgs): Promise<void>;

Emits an event, invoking all registered listeners sequentially in order.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventName

TEventName

eventArgs

T[TEventName]

Returns

Promise<void>

listenerCount()

listenerCount(eventNames): number;

Returns the total number of listeners registered for the specified event name(s).

Parameters

eventNames

keyof T | keyof T[]

Returns

number

off()

off<TEventName>(eventNames, listener): void;

Removes a specific listener from the specified event name(s).

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventNames

TEventName | TEventName[]

listener

EventListener<T[TEventName]>

Returns

void

offAny()

offAny(listener): void;

Removes a wildcard listener that was receiving all events.

Parameters

listener

| Promise<void> | EventAnyListener

Returns

void

on()

on<TEventName>(eventNames, listener): EventUnsubscribeFunction;

Subscribes a listener to the specified event name(s) and returns an unsubscribe function.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventNames

TEventName | TEventName[]

listener

EventListener<T[TEventName]>

Returns

EventUnsubscribeFunction

onAny()

onAny(listener): EventUnsubscribeFunction;

Subscribes a wildcard listener that receives all events and returns an unsubscribe function.

Parameters

listener

EventAnyListener

Returns

EventUnsubscribeFunction

once()

once<TEventName>(eventName, listener): EventUnsubscribeFunction;

Subscribes a listener that will be invoked only once for the specified event, then automatically removed.

Type Parameters

TEventName

TEventName extends string | number | symbol

Parameters

eventName

TEventName

listener

EventListener<T[TEventName]>

Returns

EventUnsubscribeFunction

    ### <a id="EventListenerInfo"></a>EventListenerInfo

@xylabs/events

Information about a registered event listener, including an optional filter for selective invocation.

Type Parameters

TEventArgs

TEventArgs extends EventArgs = EventArgs

Properties

filter?

optional filter?: TEventArgs;

listener

listener: EventListener<TEventArgs>;
    ### <a id="MetaEventData"></a>MetaEventData

@xylabs/events

Data shape for internal meta events that fire when listeners are added or removed.

Type Parameters

TEventData

TEventData extends EventData

Properties

listenerAdded

listenerAdded: object;

eventName?

optional eventName?: keyof TEventData;

listener

listener: 
  | EventListener<TEventData[keyof TEventData]>
| EventAnyListener<TEventData[keyof TEventData]>;

listenerRemoved

listenerRemoved: object;

eventName?

optional eventName?: keyof TEventData;

listener

listener: 
  | EventListener<TEventData[keyof TEventData]>
| EventAnyListener<TEventData[keyof TEventData]>;
  ### type-aliases

    ### <a id="BaseEmitterParams"></a>BaseEmitterParams

@xylabs/events

type BaseEmitterParams<T> = BaseParams<T & BaseEmitterParamsFields & T>;

Parameters type for configuring a BaseEmitter instance.

Type Parameters

T

T extends EmptyObject = EmptyObject

    ### <a id="DebugLogger"></a>DebugLogger

@xylabs/events

type DebugLogger = (type, debugName, eventName?, eventData?) => void;

Emittery can collect and log debug information.

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.

See API for more information on how debugging works.

Parameters

type

string

debugName

string

eventName?

EventName

eventData?

EventArgs

Returns

void

    ### <a id="EventAnyListener"></a>EventAnyListener

@xylabs/events

type EventAnyListener<TEventArgs> = (eventName, eventData) => Promisable<void>;

A listener that receives all events regardless of name.

Type Parameters

TEventArgs

TEventArgs extends EventArgs = EventArgs

Parameters

eventName

EventName

The name of the emitted event.

eventData

TEventArgs

The data associated with the event.

Returns

Promisable<void>

    ### <a id="EventArgs"></a>EventArgs

@xylabs/events

type EventArgs = string | number | object;

The allowed types for event argument payloads.

    ### <a id="EventData"></a>EventData

@xylabs/events

type EventData = Record<EventName, EventArgs>;

A mapping of event names to their corresponding event argument types.

    ### <a id="EventListener"></a>EventListener

@xylabs/events

type EventListener<TEventArgs> = (eventData) => Promisable<void>;

A listener for a specific event type.

Type Parameters

TEventArgs

TEventArgs extends EventArgs = EventArgs

Parameters

eventData

TEventArgs

The data associated with the event.

Returns

Promisable<void>

    ### <a id="EventName"></a>EventName

@xylabs/events

type EventName = PropertyKey;

A valid event name, which can be any property key (string, number, or symbol).

    ### <a id="EventUnsubscribeFunction"></a>EventUnsubscribeFunction

@xylabs/events

type EventUnsubscribeFunction = () => void;

A function returned by event subscription methods that unsubscribes the listener when called.

Returns

void

    ### <a id="EventsParams"></a>EventsParams

@xylabs/events

type EventsParams = BaseParams<{
  debug?: DebugOptions;
}>;

Parameters for constructing an Events instance, with optional debug configuration.

FAQs

Package last updated on 22 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts