@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
JavaScript
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