egg-aop
Add DI, AOP support for eggjs.
DI
Quick overview
;; // or @application()
API
decoratros
-
@context(keyType?: any)
Declaration life cycle of instance, is context level. You can provide a class type or from metadata by TypeScript emit.
-
@application(keyType?: any)
Declaration life cycle of instance, is context level. You can provide a class type or from metadata by TypeScript emit.
-
@inject(keyType?: any)
Inject component when the class instantiation.
-
@lazyInject(keyType?: any)
Inject component when access the property.
functions
-
getInstance<T = any>(clsType: any, app: any, ctx: any): T
You can use this function to manually get the component instance.
-
setCreateInstanceHook(func: CreateInstanceHookFunction)
You can use this function to interception every new component instance.
type CreateInstanceHookFunction = (instance: any, app: any, ctx?: any) => any;
typeLoader
typeLoader
is a instance of IocContext, this stored all type's classes. You can use this to affect DI behavior.
AOP
Quick overview
/* FunctionContext type define */
API
functions
-
aspect<T = any>(point: AspectPoint<T> = {})
You can use this to interception method, this function provide
before
/after
/error
cross-section.The param
context
is the function's execution context. It includeinst
/args
/ret
. You can replace them to affect the function execute.