UNPKG

@mlightcad/common

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![npm version](https://img.shields.io/npm/v/@mlightcad/common.svg)](https://www.npmjs.com/package/@mlightcad/common)

66 lines 1.96 kB
/** * @fileoverview Simple event manager implementation for the AutoCAD Common library. * * This module provides a lightweight event management system for handling * listeners and dispatching events with type-safe payload support. * * @module AcCmEventManager * @version 1.0.0 */ /** * Simple event manager for handling event listeners and dispatching events. * * Provides a lightweight alternative to the more complex AcCmEventDispatcher * for cases where you need basic event handling with type-safe payloads. * * @template T - The type of the event payload. * * @example * ```typescript * // Create an event manager for string payloads * const manager = new AcCmEventManager<string>() * * // Add a listener * manager.addEventListener((message) => { * console.log('Received:', message) * }) * * // Dispatch an event * manager.dispatch('Hello, World!') * * // For complex payloads * interface LoadEvent { * url: string * progress: number * } * * const loadManager = new AcCmEventManager<LoadEvent>() * loadManager.addEventListener(({ url, progress }) => { * console.log(`Loading ${url}: ${progress}%`) * }) * ``` */ export declare class AcCmEventManager<T = unknown> { private listeners; /** * Add the event listener * @param listener Input listener to be added */ addEventListener(listener: (payload: T) => void): void; /** * Remove the listener * @param listener Input listener to be removed */ removeEventListener(listener: (payload: T) => void): void; /** * Remove all listeners bound to the target and add one new listener * @param listener Input listener to be added */ replaceEventListener(listener: (payload: T) => void): void; /** * Notify all listeners * @param payload Input payload passed to listener */ dispatch(payload?: T, ...args: unknown[]): void; } //# sourceMappingURL=AcCmEventManager.d.ts.map