UNPKG

@adorsys-gis/event-bus

Version:

An event-driven library for managing custom events in JavaScript applications. Built on eventemitter3, it supports both synchronous and asynchronous event handling and ensures deep cloning of emitted data to prevent unintended mutations.

24 lines 894 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CloningEventEmitter = void 0; const eventemitter3_1 = require("eventemitter3"); /** * This specialized event emitter deep clones all emitted objects. */ class CloningEventEmitter extends eventemitter3_1.EventEmitter { /** * Calls each of the listeners registered for a given event. * * This overriding logic deep clones all emitted objects using * the `structuredClone` global function. Uncloneable objects * lead to a `DataCloneError`. * * See https://developer.mozilla.org/en-US/docs/Web/API/structuredClone */ emit(event, ...args) { const clonedArgs = args.map((arg) => structuredClone(arg)); return super.emit(event, ...clonedArgs); } } exports.CloningEventEmitter = CloningEventEmitter; //# sourceMappingURL=CloningEventEmitter.js.map