@mojaloop/event-sdk
Version:
Shared code for Event Logging
47 lines (46 loc) • 2.4 kB
TypeScript
import { LogResponseStatus, EventMessage, TypeMessageMetadata } from "./model/EventMessage";
import { EventLoggingServiceClient } from "./transport/EventLoggingServiceClient";
/**
* Describes Event Recorder interface
* @param recorder instance of EventLogingServiceClient or another recorder
* @param preProcess preprocessing method with null implementation in the current release
* @param postProcess postprocessing method with null implementation in the current release
* @param record the method that records the event depending on the recorder implementation
*/
interface IEventRecorder {
recorder: EventLoggingServiceClient | Function;
preProcess: (event: EventMessage) => EventMessage | TypeMessageMetadata;
postProcess?: (result: any) => any;
record: (event: EventMessage, doLog?: boolean, callback?: (result: any) => void) => Promise<any>;
}
type LogResponseType = LogResponseTypeAccepted | LogResponseTypeError;
type LogResponseTypeAccepted = {
status: LogResponseStatus.accepted;
};
type LogResponseTypeError = {
status: LogResponseStatus;
error: any;
};
declare class DefaultLoggerRecorder implements IEventRecorder {
recorder: Function;
constructor(recorder?: EventLoggingServiceClient);
preProcess: (event: EventMessage) => EventMessage | TypeMessageMetadata;
postProcess: (result: any) => any;
record(event: EventMessage, doLog?: boolean): Promise<any>;
}
declare class DefaultSidecarRecorder implements IEventRecorder {
recorder: EventLoggingServiceClient;
constructor(recorder: EventLoggingServiceClient);
preProcess: (event: EventMessage) => EventMessage | TypeMessageMetadata;
logLoad: (event: EventMessage) => EventMessage | TypeMessageMetadata;
postProcess: (result: any) => any;
record(event: EventMessage, doLog?: boolean): Promise<any>;
}
declare class DefaultSidecarRecorderAsync implements IEventRecorder {
recorder: EventLoggingServiceClient;
constructor(recorder: EventLoggingServiceClient);
preProcess: (event: EventMessage) => EventMessage;
logLoad: (event: EventMessage) => EventMessage | TypeMessageMetadata;
record(event: EventMessage, doLog?: boolean, callback?: (result: any) => void): Promise<any>;
}
export { DefaultLoggerRecorder, DefaultSidecarRecorder, DefaultSidecarRecorderAsync, IEventRecorder, LogResponseType, LogResponseTypeAccepted, LogResponseTypeError };