Comparing version 0.0.22 to 0.0.23
import { Injector } from './injector'; | ||
import { Type } from './type'; | ||
export interface ClassDecoratorContextCallback { | ||
(params: any[], annotations: Annotations, constructor: Type<any>): any[]; | ||
(params: any[], annotations: Annotations, constructor: Type<any>): any[] | void; | ||
} | ||
export interface ClassAnnotation { | ||
params: any[]; | ||
decoratorArguments: any[]; | ||
contextCallback: ClassDecoratorContextCallback; | ||
@@ -30,3 +31,3 @@ } | ||
private params; | ||
pushClassMetadata(token: any, params: ClassAnnotation): void; | ||
setClassMetadata(token: any, params: ClassAnnotation): void; | ||
getClassMetadata(token: any): ClassAnnotation; | ||
@@ -33,0 +34,0 @@ getClassMetadataKeys(): any[]; |
@@ -8,3 +8,3 @@ export class Annotations { | ||
} | ||
pushClassMetadata(token, params) { | ||
setClassMetadata(token, params) { | ||
this.classes.set(token, params); | ||
@@ -11,0 +11,0 @@ } |
@@ -5,3 +5,3 @@ import { Annotations, ClassDecoratorContextCallback, PropertyDecoratorContextCallback } from './annotations'; | ||
export declare function makeMethodDecorator(token: any, ...params: any[]): MethodDecorator; | ||
export declare function makeClassDecorator(token: any, contextCallback: ClassDecoratorContextCallback): ClassDecorator; | ||
export declare function makeClassDecorator(token: any, contextCallback: ClassDecoratorContextCallback, ...args: any[]): ClassDecorator; | ||
export declare function getAnnotations(target: any): Annotations; |
@@ -29,7 +29,8 @@ import { Annotations } from './annotations'; | ||
} | ||
export function makeClassDecorator(token, contextCallback) { | ||
export function makeClassDecorator(token, contextCallback, ...args) { | ||
return function (target) { | ||
const annotations = getAnnotations(target); | ||
annotations.pushClassMetadata(token, { | ||
annotations.setClassMetadata(token, { | ||
params: Reflect.getMetadata('design:paramtypes', target), | ||
decoratorArguments: args, | ||
contextCallback | ||
@@ -36,0 +37,0 @@ }); |
{ | ||
"name": "@tanbo/di", | ||
"version": "0.0.22", | ||
"version": "0.0.23", | ||
"description": "A dependency injection Library", | ||
@@ -5,0 +5,0 @@ "main": "./bundles/public-api.js", |
24329
661