vulcain-corejs
Version:
Vulcain micro-service framework
64 lines (63 loc) • 1.5 kB
TypeScript
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>;
}