UNPKG

vulcain-corejs

Version:
62 lines (61 loc) 1.24 kB
import { ExecutionResult } from './executionResult'; import { IContainer } from '../../di/resolvers'; import { RequestContext } from '../../servers/requestContext'; import { IMetrics } from '../../metrics/metrics'; /** * command * * @export * @interface ICommand */ export interface ICommand { /** * execute the command * @param args */ executeAsync<T>(...args: any[]): Promise<T>; /** * execution result */ status: ExecutionResult; } /** * * * @export * @abstract * @class AbstractCommand * @template T */ export declare abstract class AbstractCommand<T> { protected metrics: IMetrics; /** * * * @type {RequestContext} */ requestContext: RequestContext; /** * Components container * * @readonly * * @memberOf AbstractCommand */ container: IContainer; /** * Creates an instance of AbstractCommand. * * @param {IContainer} container * @param {any} providerFactory */ constructor(container: IContainer); /** * execute command * @protected * @abstract * @param {any} args * @returns {Promise<T>} */ abstract runAsync(...args: any[]): Promise<T>; }