@eang/core
Version:
eang - model driven enterprise event processing
41 lines (40 loc) • 1.22 kB
TypeScript
import { JetStreamPublishOptions, JsMsg } from '@nats-io/jetstream';
import { IFunctionStartContext } from '../eang-core.js';
import { Payload } from '@nats-io/nats-core';
import { Cnx, EangEventTypes, Obj } from './entity.js';
export interface IEangEvent {
msg: JsMsg;
subjectData: ISubjectData | ICnxSubjectData;
entity: Obj | Cnx;
eventType: EangEventTypes;
context?: IFunctionStartContext;
tenant: string;
organizationalUnit: string;
user: string;
}
export interface IEangOutMessage {
subject: string;
payload: Payload;
opts: Partial<JetStreamPublishOptions>;
}
export declare function parseMsg(msg: JsMsg): IEangEvent;
export interface ISubjectData {
entityType: 'obj' | 'cnx';
tenant: string;
organizationalUnit: string;
user: string;
typeOf: string;
instanceOf: string;
key: string;
eventType: string;
}
export interface ICnxSubjectData extends ISubjectData {
entityType: 'cnx';
fromObjTypeOf: string;
fromObjInstanceOf: string;
fromObjKey: string;
toObjTypeOf: string;
toObjInstanceOf: string;
toObjKey: string;
}
export declare function parseSubjectData(subject: string): ISubjectData | ICnxSubjectData;