@malagu/core
Version:
41 lines • 1.55 kB
TypeScript
import { ComponentMetadata } from '../annotation';
import { Newable } from '../utils';
export declare const AOP_TAG = "AOP_TAG";
export declare const MethodBeforeAdvice: unique symbol;
export declare const AfterReturningAdvice: unique symbol;
export declare const AfterThrowsAdvice: unique symbol;
export declare const AopProxyFactory: unique symbol;
export declare const ClassFilter: unique symbol;
export declare const MethodMatcher: unique symbol;
export interface Advice {
}
export interface BeforeAdvice extends Advice {
}
export interface AfterAdvice extends Advice {
}
export interface MethodBeforeAdvice extends BeforeAdvice {
before(method: string | number | symbol, args: any[], target: any): Promise<void>;
}
export interface AfterReturningAdvice extends AfterAdvice {
afterReturning(returnValue: any, method: string | number | symbol, args: any[], target: any): Promise<void>;
}
export interface AfterThrowsAdvice extends AfterAdvice {
afterThrows(error: any, method: string | number | symbol, args: any[], target: any): Promise<void>;
}
export interface AopProxy {
getProxy(): any;
}
export interface ProxyConfig {
target: any;
metadata: ComponentMetadata;
}
export interface AopProxyFactory {
create(config: ProxyConfig): AopProxy;
}
export interface ClassFilter {
matches(clazz: Newable<any>, metadata: ComponentMetadata): boolean;
}
export interface MethodMatcher {
matches(method: string | number | symbol, clazz: Newable<any>, args: any[]): boolean;
}
//# sourceMappingURL=aop-protocol.d.ts.map