
Security News
Security Community Slams MIT-linked Report Claiming AI Powers 80% of Ransomware
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.
@xylabs/events
Advanced tools
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
@xylabs/events
Base<TParams>TParams extends BaseParams = BaseParams
TEventData extends EventData = EventData
EventEmitter<TEventData>new BaseEmitter<TParams, TEventData>(params): BaseEmitter<TParams, TEventData>;
BaseParams<TParams>
BaseEmitter<TParams, TEventData>
Base<TParams>.constructor
static optional defaultLogger: Logger;
Base.defaultLogger
readonly static globalInstances: Record<BaseClassName, WeakRef<Base>[]>;
Base.globalInstances
readonly static globalInstancesCountHistory: Record<BaseClassName, number[]>;
Base.globalInstancesCountHistory
readonly static uniqueName: string;
Base.uniqueName
eventData: TEventData;
get static historyInterval(): number;
number
set static historyInterval(value): void;
number
void
Base.historyInterval
get static historyTime(): number;
number
set static historyTime(value): void;
number
void
Base.historyTime
get static maxGcFrequency(): number;
number
set static maxGcFrequency(value): void;
number
void
Base.maxGcFrequency
get static maxHistoryDepth(): number;
number
Base.maxHistoryDepth
get logger(): undefined | Logger;
undefined | Logger
Base.logger
get meter(): undefined | Meter;
undefined | Meter
Base.meter
get params(): BaseParams<TParams>;
BaseParams<TParams>
Base.params
get tracer(): undefined | Tracer;
undefined | Tracer
Base.tracer
static gc(force?): void;
boolean
void
Base.gc
static gc(className): void;
string
void
Base.gc
static instanceCount(className): number;
string
number
Base.instanceCount
static instanceCounts(): Record<BaseClassName, number>;
Record<BaseClassName, number>
Base.instanceCounts
static startHistory(): void;
void
Base.startHistory
static stopHistory(): void;
void
Base.stopHistory
clearListeners(eventNames): BaseEmitter<TParams, TEventData>;
keyof TEventData | keyof TEventData[]
BaseEmitter<TParams, TEventData>
emit<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;
TEventName extends string | number | symbol = keyof TEventData
TEventArgs extends EventArgs = TEventData[TEventName]
TEventName
TEventArgs
Promise<void>
emitSerial<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;
TEventName extends string | number | symbol = keyof TEventData
TEventArgs extends EventArgs = TEventData[TEventName]
TEventName
TEventArgs
Promise<void>
listenerCount(eventNames): number;
keyof TEventData | keyof TEventData[]
number
off<TEventName>(eventNames, listener): void;
TEventName extends string | number | symbol
TEventName | TEventName[]
EventListener<TEventData[TEventName]>
void
offAny(listener): void;
void
on<TEventName>(eventNames, listener): (...args) => void;
TEventName extends string | number | symbol
TEventName | TEventName[]
EventListener<TEventData[TEventName]>
(...args): void;
...[]
void
onAny(listener): (...args) => void;
(...args): void;
...[]
void
once<TEventName>(eventName, listener): (...args) => void;
TEventName extends string | number | symbol
TEventName
EventListener<TEventData[TEventName]>
(...args): void;
...[]
void
Base<EventsParams>TEventData extends EventData = EventData
EventEmitter<TEventData>new Events<TEventData>(params): Events<TEventData>;
EventsParams = {}
Events<TEventData>
Base<EventsParams>.constructor
static optional defaultLogger: Logger;
Base.defaultLogger
readonly static globalInstances: Record<BaseClassName, WeakRef<Base>[]>;
Base.globalInstances
readonly static globalInstancesCountHistory: Record<BaseClassName, number[]>;
Base.globalInstancesCountHistory
readonly static uniqueName: string;
Base.uniqueName
protected static anyMap: WeakMap<object, Set<EventAnyListener>>;
protected static eventsMap: WeakMap<object, Map<PropertyKey, Set<EventListenerInfo<EventArgs>>>>;
eventData: TEventData;
get static historyInterval(): number;
number
set static historyInterval(value): void;
number
void
Base.historyInterval
get static historyTime(): number;
number
set static historyTime(value): void;
number
void
Base.historyTime
get static maxGcFrequency(): number;
number
set static maxGcFrequency(value): void;
number
void
Base.maxGcFrequency
get static maxHistoryDepth(): number;
number
Base.maxHistoryDepth
get logger(): undefined | Logger;
undefined | Logger
Base.logger
get meter(): undefined | Meter;
undefined | Meter
Base.meter
get params(): BaseParams<TParams>;
BaseParams<TParams>
Base.params
get tracer(): undefined | Tracer;
undefined | Tracer
Base.tracer
get static isDebugEnabled(): boolean;
boolean
set static isDebugEnabled(newValue): void;
boolean
void
get debug(): undefined | DebugOptions;
undefined | DebugOptions
static gc(force?): void;
boolean
void
Base.gc
static gc(className): void;
string
void
Base.gc
static instanceCount(className): number;
string
number
Base.instanceCount
static instanceCounts(): Record<BaseClassName, number>;
Record<BaseClassName, number>
Base.instanceCounts
static startHistory(): void;
void
Base.startHistory
static stopHistory(): void;
void
Base.stopHistory
clearListeners(eventNames): void;
keyof TEventData | keyof TEventData[]
void
emit<TEventName>(eventName, eventArgs): Promise<void>;
TEventName extends string | number | symbol
TEventName
TEventData[TEventName]
Promise<void>
emitMetaEvent<TEventName>(eventName, eventArgs): Promise<undefined | boolean>;
TEventName extends keyof MetaEventData<TEventData>
TEventName
MetaEventData<TEventData>[TEventName]
Promise<undefined | boolean>
emitSerial<TEventName>(eventName, eventArgs): Promise<void>;
TEventName extends string | number | symbol
TEventName
TEventData[TEventName]
Promise<void>
listenerCount(eventNames?): number;
keyof TEventData | keyof TEventData[]
number
logIfDebugEnabled<TEventName>(
   type, 
   eventName?, 
   eventArgs?): void;
TEventName extends PropertyKey
string
TEventName
void
off<TEventName, TEventListener>(eventNames, listener): void;
TEventName extends string | number | symbol
TEventListener = EventListener<TEventData[TEventName]>
TEventName | TEventName[]
TEventListener
void
offAny(listener): void;
void
on<TEventName>(
   eventNames, 
   listener, 
   filter?): (...args) => void;
TEventName extends string | number | symbol = keyof TEventData
TEventName | TEventName[]
EventListener<TEventData[TEventName]>
TEventData[TEventName]
(...args): void;
...[]
void
onAny(listener): (...args) => void;
(...args): void;
...[]
void
once<TEventName>(eventName, listener): (...args) => void;
TEventName extends string | number | symbol
TEventName
EventListener<TEventData[TEventName]>
(...args): void;
...[]
void
T extends EventData
eventData: T;
clearListeners(eventNames): void;
keyof T | keyof T[]
void
emit<TEventName>(eventName, eventArgs): Promise<void>;
TEventName extends string | number | symbol
TEventName
T[TEventName]
Promise<void>
emitSerial<TEventName>(eventName, eventArgs): Promise<void>;
TEventName extends string | number | symbol
TEventName
T[TEventName]
Promise<void>
listenerCount(eventNames): number;
keyof T | keyof T[]
number
off<TEventName>(eventNames, listener): void;
TEventName extends string | number | symbol
TEventName | TEventName[]
EventListener<T[TEventName]>
void
offAny(listener): void;
Promise<void> | EventAnyListener
void
on<TEventName>(eventNames, listener): EventUnsubscribeFunction;
TEventName extends string | number | symbol
TEventName | TEventName[]
EventListener<T[TEventName]>
onAny(listener): EventUnsubscribeFunction;
once<TEventName>(eventName, listener): EventUnsubscribeFunction;
TEventName extends string | number | symbol
TEventName
EventListener<T[TEventName]>
type BaseEmitterParams<T> = BaseParams<T & BaseEmitterParamsFields & T>;
T extends EmptyObject = EmptyObject
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.
string
string
void
type DebugOptions = object;
Configure debug options of an instance.
optional enabled: boolean;
optional logger: DebugLogger;
readonly name: string;
type EventAnyListener<TEventArgs> = (eventName, eventData) => Promisable<void>;
TEventArgs extends EventArgs = EventArgs
TEventArgs
Promisable<void>
type EventArgs = string | number | object;
type EventData = object;
[key: string | number | symbol]: EventArgs
type EventListener<TEventArgs> = (eventData) => Promisable<void>;
TEventArgs extends EventArgs = EventArgs
TEventArgs
Promisable<void>
type EventListenerInfo<TEventArgs> = object;
TEventArgs extends EventArgs = EventArgs
optional filter: TEventArgs;
listener: EventListener<TEventArgs>;
type EventName = PropertyKey;
type EventUnsubscribeFunction = () => void;
void
type EventsParams = BaseParams<{
  debug?: DebugOptions;
}>;
type MetaEventData<TEventData> = object;
TEventData extends EventData
listenerAdded: object;
optional eventName: keyof TEventData;
listener: 
  | EventListener<TEventData[keyof TEventData]>
| EventAnyListener<TEventData[keyof TEventData]>;
listenerRemoved: object;
optional eventName: keyof TEventData;
listener: 
  | EventListener<TEventData[keyof TEventData]>
| EventAnyListener<TEventData[keyof TEventData]>;
Part of sdk-js
See the LICENSE file for license details
FAQs
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
We found that @xylabs/events demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

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.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.

Research
/Security News
Socket researchers found 10 typosquatted npm packages that auto-run on install, show fake CAPTCHAs, fingerprint by IP, and deploy a credential stealer.