UNPKG

vulcain-corejs

Version:
64 lines (63 loc) 1.5 kB
import { Schema } from '../../schemas/schema'; import { IProvider } from '../../providers/provider'; import { IContainer } from '../../di/resolvers'; import { IMetrics } from '../../metrics/metrics'; import { RequestContext } from '../../servers/requestContext'; /** * * * @export * @abstract * @class AbstractCommand * @template T */ export declare abstract class AbstractProviderCommand<T> { private providerFactory; protected metrics: IMetrics; private customTags; /** * * * @type {RequestContext} */ requestContext: RequestContext; readonly container: IContainer; /** * * * @type {IProvider<T>} */ provider: IProvider<T>; /** * * * @type {Schema} */ schema: Schema; private static METRICS_NAME; private logger; /** * Creates an instance of AbstractCommand. * * @param {IContainer} container * @param {any} providerFactory */ constructor(container: IContainer); /** * * * @param {string} schema */ setSchemaAsync(schema: string): Promise<any>; protected initializeMetricsInfo(): void; protected setMetricsTags(address: string, schema: string, tenant?: string): void; onCommandCompleted(duration: number, success: boolean): void; /** * execute command * @protected * @abstract * @param {any} args * @returns {Promise<T>} */ abstract runAsync(...args: any[]): Promise<T>; }