Base functionality used throughout XY Labs TypeScript/JavaScript libraries
npm install @xylabs/events[![logo][]](https://xylabs.com)
[![main-build][]][main-build-link]
[![npm-badge][]][npm-link]
[![npm-downloads-badge][]][npm-link]
[![jsdelivr-badge][]][jsdelivr-link]
[![npm-license-badge][]](LICENSE)
[![codacy-badge][]][codacy-link]
[![codeclimate-badge][]][codeclimate-link]
[![snyk-badge][]][snyk-link]
[![socket-badge][]][socket-link]
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
@xylabs/events
*
- BaseEmitterParamsFields
- EventEmitter
- BaseEmitterParams
- DebugLogger
- EventListenerInfo
- DebugOptions
- MetaEventData
- EventsParams
- EventName
- EventArgs
- EventData
- EventUnsubscribeFunction
- EventAnyListener
- EventListener
*
- Base\<TParams\>
TParams extends BaseParams = BaseParams
TEventData extends EventData = EventData
- EventEmitter\<TEventData\>
``ts`
new BaseEmitter
#### params
BaseParams\<TParams\>
BaseEmitter\<TParams, TEventData\>
`ts`
Base
`ts`
static optional defaultLogger: Logger;
`ts`
Base.defaultLogger
*
`ts`
readonly static globalInstances: Record
`ts`
Base.globalInstances
*
`ts`
readonly static globalInstancesCountHistory: Record
`ts`
Base.globalInstancesCountHistory
*
`ts`
readonly static uniqueName: string;
`ts`
Base.uniqueName
*
`ts`
eventData: TEventData;
`ts`
get static historyInterval(): number;
#### Returns
number
`ts`
set static historyInterval(value): void;
#### Parameters
##### value
number
#### Returns
void
`ts`
Base.historyInterval
*
`ts`
get static historyTime(): number;
#### Returns
number
`ts`
set static historyTime(value): void;
#### Parameters
##### value
number
#### Returns
void
`ts`
Base.historyTime
*
`ts`
get static maxGcFrequency(): number;
#### Returns
number
`ts`
set static maxGcFrequency(value): void;
#### Parameters
##### value
number
#### Returns
void
`ts`
Base.maxGcFrequency
*
`ts`
get static maxHistoryDepth(): number;
#### Returns
number
`ts`
Base.maxHistoryDepth
*
`ts`
get logger(): undefined | Logger;
#### Returns
undefined \| Logger
`ts`
Base.logger
*
`ts`
get meter(): undefined | Meter;
#### Returns
undefined \| Meter
`ts`
Base.meter
*
`ts`
get params(): BaseParams
#### Returns
BaseParams\<TParams\>
`ts`
Base.params
*
`ts`
get tracer(): undefined | Tracer;
#### Returns
undefined \| Tracer
`ts`
Base.tracer
`ts`
static gc(force?): void;
#### Parameters
##### force?
boolean
#### Returns
void
#### Inherited from
`ts`
Base.gc
`ts`
static gc(className): void;
#### Parameters
##### className
string
#### Returns
void
#### Inherited from
`ts`
Base.gc
*
`ts`
static instanceCount(className): number;
#### className
string
number
`ts`
Base.instanceCount
*
`ts`
static instanceCounts(): Record
Record\<BaseClassName, number\>
`ts`
Base.instanceCounts
*
`ts`
static startHistory(): void;
void
`ts`
Base.startHistory
*
`ts`
static stopHistory(): void;
void
`ts`
Base.stopHistory
*
`ts`
clearListeners(eventNames): BaseEmitter
#### eventNames
keyof TEventData | keyof TEventData[]
BaseEmitter\<TParams, TEventData\>
*
`ts`
emit
#### TEventName
TEventName extends string \| number \| symbol = keyof TEventData
#### TEventArgs
TEventArgs extends EventArgs = TEventData\[TEventName\]
#### eventName
TEventName
#### eventArgs
TEventArgs
Promise\<void\>
*
`ts`
emitSerial
#### TEventName
TEventName extends string \| number \| symbol = keyof TEventData
#### TEventArgs
TEventArgs extends EventArgs = TEventData\[TEventName\]
#### eventName
TEventName
#### eventArgs
TEventArgs
Promise\<void\>
*
`ts`
listenerCount(eventNames): number;
#### eventNames
keyof TEventData | keyof TEventData[]
number
*
`ts`
off
#### TEventName
TEventName extends string \| number \| symbol
#### eventNames
TEventName | TEventName[]
#### listener
EventListener\<TEventData\[TEventName\]\>
void
*
`ts`
offAny(listener): void;
#### listener
void
*
`ts`
on
#### TEventName
TEventName extends string \| number \| symbol
#### eventNames
TEventName | TEventName[]
#### listener
EventListener\<TEventData\[TEventName\]\>
`ts`
(...args): void;
#### Parameters
##### args
...\[\]
#### Returns
void
*
`ts`
onAny(listener): (...args) => void;
#### listener
`ts`
(...args): void;
#### Parameters
##### args
...\[\]
#### Returns
void
*
`ts`
once
#### TEventName
TEventName extends string \| number \| symbol
#### eventName
TEventName
#### listener
EventListener\<TEventData\[TEventName\]\>
`ts`
(...args): void;
#### Parameters
##### args
...\[\]
#### Returns
void
*
TEventData extends EventData = EventData
- EventEmitter\<TEventData\>
`ts`
new Events
#### params
EventsParams = {}
Events\<TEventData\>
`ts`
Base
`ts`
static optional defaultLogger: Logger;
`ts`
Base.defaultLogger
*
`ts`
readonly static globalInstances: Record
`ts`
Base.globalInstances
*
`ts`
readonly static globalInstancesCountHistory: Record
`ts`
Base.globalInstancesCountHistory
*
`ts`
readonly static uniqueName: string;
`ts`
Base.uniqueName
*
`ts`
protected static anyMap: WeakMap
*
`ts`
protected static eventsMap: WeakMap
*
`ts`
eventData: TEventData;
`ts`
get static historyInterval(): number;
#### Returns
number
`ts`
set static historyInterval(value): void;
#### Parameters
##### value
number
#### Returns
void
`ts`
Base.historyInterval
*
`ts`
get static historyTime(): number;
#### Returns
number
`ts`
set static historyTime(value): void;
#### Parameters
##### value
number
#### Returns
void
`ts`
Base.historyTime
*
`ts`
get static maxGcFrequency(): number;
#### Returns
number
`ts`
set static maxGcFrequency(value): void;
#### Parameters
##### value
number
#### Returns
void
`ts`
Base.maxGcFrequency
*
`ts`
get static maxHistoryDepth(): number;
#### Returns
number
`ts`
Base.maxHistoryDepth
*
`ts`
get logger(): undefined | Logger;
#### Returns
undefined \| Logger
`ts`
Base.logger
*
`ts`
get meter(): undefined | Meter;
#### Returns
undefined \| Meter
`ts`
Base.meter
*
`ts`
get params(): BaseParams
#### Returns
BaseParams\<TParams\>
`ts`
Base.params
*
`ts`
get tracer(): undefined | Tracer;
#### Returns
undefined \| Tracer
`ts`
Base.tracer
*
`ts`
get static isDebugEnabled(): boolean;
#### Returns
boolean
`ts`
set static isDebugEnabled(newValue): void;
#### Parameters
##### newValue
boolean
#### Returns
void
*
`ts`
get debug(): undefined | DebugOptions;
#### Returns
`ts`
static gc(force?): void;
#### Parameters
##### force?
boolean
#### Returns
void
#### Inherited from
`ts`
Base.gc
`ts`
static gc(className): void;
#### Parameters
##### className
string
#### Returns
void
#### Inherited from
`ts`
Base.gc
*
`ts`
static instanceCount(className): number;
#### className
string
number
`ts`
Base.instanceCount
*
`ts`
static instanceCounts(): Record
Record\<BaseClassName, number\>
`ts`
Base.instanceCounts
*
`ts`
static startHistory(): void;
void
`ts`
Base.startHistory
*
`ts`
static stopHistory(): void;
void
`ts`
Base.stopHistory
*
`ts`
clearListeners(eventNames): void;
#### eventNames
keyof TEventData | keyof TEventData[]
void
*
`ts`
emit
#### TEventName
TEventName extends string \| number \| symbol
#### eventName
TEventName
#### eventArgs
TEventData\[TEventName\]
Promise\<void\>
*
`ts`
emitMetaEvent
#### TEventName
TEventName extends keyof MetaEventData\<TEventData\>
#### eventName
TEventName
#### eventArgs
MetaEventData\<TEventData\>\[TEventName\]
Promise\<undefined \| boolean\>
*
`ts`
emitSerial
#### TEventName
TEventName extends string \| number \| symbol
#### eventName
TEventName
#### eventArgs
TEventData\[TEventName\]
Promise\<void\>
*
`ts`
listenerCount(eventNames?): number;
#### eventNames?
keyof TEventData | keyof TEventData[]
number
*
`ts`
logIfDebugEnabled
type,
eventName?,
eventArgs?): void;
#### TEventName
TEventName extends PropertyKey
#### type
string
#### eventName?
TEventName
#### eventArgs?
void
*
`ts`
off
#### TEventName
TEventName extends string \| number \| symbol
#### TEventListener
TEventListener = EventListener\<TEventData\[TEventName\]\>
#### eventNames
TEventName | TEventName[]
#### listener
TEventListener
void
*
`ts`
offAny(listener): void;
#### listener
void
*
`ts`
on
eventNames,
listener,
filter?): (...args) => void;
#### TEventName
TEventName extends string \| number \| symbol = keyof TEventData
#### eventNames
TEventName | TEventName[]
#### listener
EventListener\<TEventData\[TEventName\]\>
#### filter?
TEventData\[TEventName\]
`ts`
(...args): void;
#### Parameters
##### args
...\[\]
#### Returns
void
*
`ts`
onAny(listener): (...args) => void;
#### listener
`ts`
(...args): void;
#### Parameters
##### args
...\[\]
#### Returns
void
*
`ts`
once
#### TEventName
TEventName extends string \| number \| symbol
#### eventName
TEventName
#### listener
EventListener\<TEventData\[TEventName\]\>
`ts`
(...args): void;
#### Parameters
##### args
...\[\]
#### Returns
void
*
*
`ts`
eventData: T;
`ts`
clearListeners(eventNames): void;
#### eventNames
keyof T | keyof T[]
void
*
`ts`
emit
#### TEventName
TEventName extends string \| number \| symbol
#### eventName
TEventName
#### eventArgs
T\[TEventName\]
Promise\<void\>
*
`ts`
emitSerial
#### TEventName
TEventName extends string \| number \| symbol
#### eventName
TEventName
#### eventArgs
T\[TEventName\]
Promise\<void\>
*
`ts`
listenerCount(eventNames): number;
#### eventNames
keyof T | keyof T[]
number
*
`ts`
off
#### TEventName
TEventName extends string \| number \| symbol
#### eventNames
TEventName | TEventName[]
#### listener
EventListener\<T\[TEventName\]\>
void
*
`ts`
offAny(listener): void;
#### listener
Promise\<void\> | EventAnyListener
void
*
`ts`
on
#### TEventName
TEventName extends string \| number \| symbol
#### eventNames
TEventName | TEventName[]
#### listener
EventListener\<T\[TEventName\]\>
*
`ts`
onAny(listener): EventUnsubscribeFunction;
#### listener
*
`ts`
once
#### TEventName
TEventName extends string \| number \| symbol
#### eventName
TEventName
#### listener
EventListener\<T\[TEventName\]\>
*
`ts`
type BaseEmitterParams
T extends EmptyObject = EmptyObject
*
`ts`
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 truemyEmitter.debug.enabled
on the Emittery class, or on an instance of it for debugging a single instance.
See API for more information on how debugging works.
string
string
void
*
`ts`
type DebugOptions = object;
Configure debug options of an instance.
`ts`
optional enabled: boolean;
*
`ts`
optional logger: DebugLogger;
*
`ts`
readonly name: string;
*
`ts`
type EventAnyListener
TEventArgs extends EventArgs = EventArgs
TEventArgs
Promisable\<void\>
*
`ts`
type EventArgs = string | number | object;
*
`ts`
type EventData = object;
`ts`
[key: string | number | symbol]: EventArgs
*
`ts`
type EventListener
TEventArgs extends EventArgs = EventArgs
TEventArgs
Promisable\<void\>
*
`ts`
type EventListenerInfo
TEventArgs extends EventArgs = EventArgs
`ts`
optional filter: TEventArgs;
*
`ts`
listener: EventListener
*
`ts`
type EventName = PropertyKey;
*
`ts`
type EventUnsubscribeFunction = () => void;
void
*
`ts`
type EventsParams = BaseParams<{
debug?: DebugOptions;
}>;
*
`ts`
type MetaEventData
`ts`
listenerAdded: object;
`ts`
optional eventName: keyof TEventData;
`ts`
listener:
| EventListener
| EventAnyListener
*
`ts`
listenerRemoved: object;
`ts`
optional eventName: keyof TEventData;
`ts``
listener:
| EventListener
| EventAnyListener
Part of sdk-js
- Arie Trouw (arietrouw.com)
- Matt Jones
- Joel Carter
- Jordan Trouw
> See the LICENSE file for license details
[logo]: https://cdn.xy.company/img/brand/XYPersistentCompany_Logo_Icon_Colored.svg
[main-build]: https://github.com/xylabs/sdk-js/actions/workflows/build.yml/badge.svg
[main-build-link]: https://github.com/xylabs/sdk-js/actions/workflows/build.yml
[npm-badge]: https://img.shields.io/npm/v/@xylabs/events.svg
[npm-link]: https://www.npmjs.com/package/@xylabs/events
[codacy-badge]: https://app.codacy.com/project/badge/Grade/c8e15e14f37741c18cfb47ac7245c698
[codacy-link]: https://www.codacy.com/gh/xylabs/sdk-js/dashboard?utm_source=github.com&utm_medium=referral&utm_content=xylabs/sdk-js&utm_campaign=Badge_Grade
[codeclimate-badge]: https://api.codeclimate.com/v1/badges/c5eb068f806f0b047ea7/maintainability
[codeclimate-link]: https://codeclimate.com/github/xylabs/sdk-js/maintainability
[snyk-badge]: https://snyk.io/test/github/xylabs/sdk-js/badge.svg?targetFile=package.json
[snyk-link]: https://snyk.io/test/github/xylabs/sdk-js?targetFile=package.json
[npm-downloads-badge]: https://img.shields.io/npm/dw/@xylabs/events
[npm-license-badge]: https://img.shields.io/npm/l/@xylabs/events
[jsdelivr-badge]: https://data.jsdelivr.com/v1/package/npm/@xylabs/events/badge
[jsdelivr-link]: https://www.jsdelivr.com/package/npm/@xylabs/events
[socket-badge]: https://socket.dev/api/badge/npm/package/@xylabs/events
[socket-link]: https://socket.dev/npm/package/@xylabs/events