import { EventNotificationMode, EventData } from '../../../bus/messageBus'; import { IRequestContext } from '../../../index'; import { HandlerDefinition, OperationDefinition } from '../definitions'; export interface ExposeEventDefinition { schema?: string; mode?: EventNotificationMode; factory?: (context: IRequestContext, event: EventData) => EventData; options?: any; } /** * Declare default action handler definition * * @export * @interface ActionHandlerMetadata * @extends {HandlerDefinition} */ export interface ActionHandlerDefinition extends HandlerDefinition { /** * * * @type {boolean} * @memberOf ActionHandlerMetadata */ async?: boolean; /** * * * @type {EventNotificationMode} * @memberOf ActionHandlerMetadata */ eventMode?: EventNotificationMode; } /** * * * @export * @interface ActionMetadata * @extends {CommonActionMetadata} */ export interface ActionDefinition extends OperationDefinition { skipDataValidation?: boolean; async?: boolean; eventDefinition?: ExposeEventDefinition; }