type-autofac
Version:
tsioc is AOP, Ioc container, via typescript decorator
53 lines (52 loc) • 1.78 kB
TypeScript
import { Token, Providers } from './types';
import { IParameter } from './IParameter';
/**
* execution, invoke some type method
*
* @export
* @interface IExecution
*/
export interface IMethodAccessor {
/**
* try to async invoke the method of intance, if no instance will create by type.
*
* @template T
* @param {Token<any>} token type of object
* @param {(string | symbol)} propertyKey method name
* @param {*} [target] instance of type.
* @param {...Providers[]} providers param provider.
* @returns {Promise<T>}
* @memberof IMethodAccessor
*/
invoke<T>(token: Token<any>, propertyKey: string | symbol, target?: any, ...providers: Providers[]): Promise<T>;
/**
* try to invoke the method of intance, if no instance will create by type.
*
* @template T
* @param {Token<any>} token
* @param {(string | symbol)} propertyKey
* @param {*} [target]
* @param {...ParamProvider[]} providers
* @returns {T}
* @memberof IMethodAccessor
*/
syncInvoke<T>(token: Token<any>, propertyKey: string | symbol, target?: any, ...providers: Providers[]): T;
/**
* create params instances with IParameter and provider.
*
* @param {IParameter[]} params
* @param {...ParamProvider[]} providers
* @returns {any[]}
* @memberof IMethodAccessor
*/
createSyncParams(params: IParameter[], ...providers: Providers[]): any[];
/**
* create params instances with IParameter and provider
*
* @param {IParameter[]} params
* @param {...AsyncParamProvider[]} providers
* @returns {Promise<any[]>}
* @memberof IMethodAccessor
*/
createParams(params: IParameter[], ...providers: Providers[]): Promise<any[]>;
}