23 lines
942 B
JavaScript
23 lines
942 B
JavaScript
export var INJECTION_TOKEN_METADATA_KEY = "injectionTokens";
|
|
export function getParamInfo(target) {
|
|
var params = Reflect.getMetadata("design:paramtypes", target) || [];
|
|
var injectionTokens = Reflect.getOwnMetadata(INJECTION_TOKEN_METADATA_KEY, target) || {};
|
|
Object.keys(injectionTokens).forEach(function (key) {
|
|
params[+key] = injectionTokens[key];
|
|
});
|
|
return params;
|
|
}
|
|
export function defineInjectionTokenMetadata(data, transform) {
|
|
return function (target, _propertyKey, parameterIndex) {
|
|
var descriptors = Reflect.getOwnMetadata(INJECTION_TOKEN_METADATA_KEY, target) || {};
|
|
descriptors[parameterIndex] = transform
|
|
? {
|
|
token: data,
|
|
transform: transform.transformToken,
|
|
transformArgs: transform.args || []
|
|
}
|
|
: data;
|
|
Reflect.defineMetadata(INJECTION_TOKEN_METADATA_KEY, descriptors, target);
|
|
};
|
|
}
|