UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

39 lines (38 loc) • 1.53 kB
import { InjectionSymbols } from "../constants.mjs"; import { inject, injectable } from "../plugins/index.mjs"; import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateMetadata.mjs"; import __decorate from "../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorate.mjs"; import __decorateParam from "../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateParam.mjs"; import { Subject, fromEventPattern } from "rxjs"; import { takeUntil } from "rxjs/operators"; //#region src/agent/EventEmitter.ts let EventEmitter = class EventEmitter { constructor(agentDependencies, stop$) { this.eventEmitter = new agentDependencies.EventEmitterClass(); this.stop$ = stop$; } emit(agentContext, data) { this.eventEmitter.emit(data.type, { ...data, metadata: { contextCorrelationId: agentContext.contextCorrelationId } }); } on(event, listener) { this.eventEmitter.on(event, listener); } off(event, listener) { this.eventEmitter.off(event, listener); } observable(event) { return fromEventPattern((handler) => this.on(event, handler), (handler) => this.off(event, handler)).pipe(takeUntil(this.stop$)); } }; EventEmitter = __decorate([ injectable(), __decorateParam(0, inject(InjectionSymbols.AgentDependencies)), __decorateParam(1, inject(InjectionSymbols.Stop$)), __decorateMetadata("design:paramtypes", [Object, typeof Subject === "undefined" ? Object : Subject]) ], EventEmitter); //#endregion export { EventEmitter }; //# sourceMappingURL=EventEmitter.mjs.map