tsioc
Version:
tsioc is AOP, Ioc container, via typescript decorator
93 lines (92 loc) • 1.82 kB
TypeScript
import { IPointcut } from './IPointcut';
import { JoinpointState } from './JoinpointState';
import { Advicer } from '../advices/index';
import { IParameter } from '../../IParameter';
import { MethodMetadata } from '../../core/index';
import { Type } from '../../types';
/**
* Joinpoint interface
*
* @export
* @interface IJoinpoint
* @extends {IPointcut}
*/
export interface IJoinpoint extends IPointcut {
/**
* prov joinpoint.
*
* @type {IJoinpoint}
* @memberof Joinpoint
*/
provJoinpoint: IJoinpoint;
/**
* join point state.
*
* @type {JoinpointState}
* @memberof IJoinpoint
*/
state: JoinpointState;
/**
* params of pointcut.
*
* @type {IParameter[]}
* @memberof IJoinpoint
*/
params: IParameter[];
/**
* args of pointcut.
*
* @type {any[]}
* @memberof IJoinpoint
*/
args: any[];
/**
* pointcut returing data
*
* @type {*}
* @memberof IJoinpoint
*/
returning?: any;
/**
* the result value of returing.
*
* @type {*}
* @memberof Joinpoint
*/
returningValue?: any;
/**
* pointcut throwing error.
*
* @type {*}
* @memberof IJoinpoint
*/
throwing?: any;
/**
* Advicer of joinpoint.
*
* @type {Advicer}
* @memberof IJoinpoint
*/
advicer: Advicer;
/**
* orgin pointcut method metadatas.
*
* @type {MethodMetadata[]}
* @memberof IJoinpoint
*/
annotations: MethodMetadata[];
/**
* pointcut target instance
*
* @type {*}
* @memberof IJoinpoint
*/
target: any;
/**
* pointcut target type.
*
* @type {Token<any>}
* @memberof IJoinpoint
*/
targetType: Type<any>;
}