@eang/core
Version:
eang - model driven enterprise event processing
49 lines (48 loc) • 1.42 kB
TypeScript
import { JetStreamPublishOptions, JsMsg } from '@nats-io/jetstream';
import { EntityUpdateContext, 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: IObjSubjectData | ICnxSubjectData;
entity: Obj | Cnx;
eventType: EangEventTypes;
context?: IFunctionStartContext | EntityUpdateContext;
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 IObjSubjectData {
entityType: 'obj';
tenant: string;
organizationalUnit: string;
user: string;
typeOf: string;
instanceOf: string;
childOf: string;
key: string;
eventType: string;
}
export interface ICnxSubjectData {
entityType: 'cnx';
tenant: string;
organizationalUnit: string;
user: string;
typeOf: string;
instanceOf: string;
key: string;
eventType: string;
fromObjTypeOf: string;
fromObjInstanceOf: string;
fromObjKey: string;
toObjTypeOf: string;
toObjInstanceOf: string;
toObjKey: string;
}
export declare function parseSubjectData(subject: string): IObjSubjectData | ICnxSubjectData;