UNPKG

type-autofac

Version:

tsioc is AOP, Ioc container, via typescript decorator

53 lines (52 loc) 1.78 kB
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[]>; }