28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.defineInjectionTokenMetadata = exports.getParamInfo = exports.INJECTION_TOKEN_METADATA_KEY = void 0;
|
||
|
exports.INJECTION_TOKEN_METADATA_KEY = "injectionTokens";
|
||
|
function getParamInfo(target) {
|
||
|
const params = Reflect.getMetadata("design:paramtypes", target) || [];
|
||
|
const injectionTokens = Reflect.getOwnMetadata(exports.INJECTION_TOKEN_METADATA_KEY, target) || {};
|
||
|
Object.keys(injectionTokens).forEach(key => {
|
||
|
params[+key] = injectionTokens[key];
|
||
|
});
|
||
|
return params;
|
||
|
}
|
||
|
exports.getParamInfo = getParamInfo;
|
||
|
function defineInjectionTokenMetadata(data, transform) {
|
||
|
return function (target, _propertyKey, parameterIndex) {
|
||
|
const descriptors = Reflect.getOwnMetadata(exports.INJECTION_TOKEN_METADATA_KEY, target) || {};
|
||
|
descriptors[parameterIndex] = transform
|
||
|
? {
|
||
|
token: data,
|
||
|
transform: transform.transformToken,
|
||
|
transformArgs: transform.args || []
|
||
|
}
|
||
|
: data;
|
||
|
Reflect.defineMetadata(exports.INJECTION_TOKEN_METADATA_KEY, descriptors, target);
|
||
|
};
|
||
|
}
|
||
|
exports.defineInjectionTokenMetadata = defineInjectionTokenMetadata;
|