UNPKG

vulcain-corejs

Version:
64 lines (63 loc) 1.34 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; protected customTags: string; /** * * * @type {RequestContext} */ requestContext: RequestContext; /** * Components container * * @readonly * * @memberOf AbstractCommand */ readonly container: IContainer; /** * Creates an instance of AbstractCommand. * * @param {IContainer} container * @param {any} providerFactory */ constructor(container: IContainer); protected setMetricsTags(...args: Array<string>): void; /** * execute command * @protected * @abstract * @param {any} args * @returns {Promise<T>} */ abstract runAsync(...args: any[]): Promise<T>; }