reflection-helpers.js 942 B

12345678910111213141516171819202122
  1. export var INJECTION_TOKEN_METADATA_KEY = "injectionTokens";
  2. export function getParamInfo(target) {
  3. var params = Reflect.getMetadata("design:paramtypes", target) || [];
  4. var injectionTokens = Reflect.getOwnMetadata(INJECTION_TOKEN_METADATA_KEY, target) || {};
  5. Object.keys(injectionTokens).forEach(function (key) {
  6. params[+key] = injectionTokens[key];
  7. });
  8. return params;
  9. }
  10. export function defineInjectionTokenMetadata(data, transform) {
  11. return function (target, _propertyKey, parameterIndex) {
  12. var descriptors = Reflect.getOwnMetadata(INJECTION_TOKEN_METADATA_KEY, target) || {};
  13. descriptors[parameterIndex] = transform
  14. ? {
  15. token: data,
  16. transform: transform.transformToken,
  17. transformArgs: transform.args || []
  18. }
  19. : data;
  20. Reflect.defineMetadata(INJECTION_TOKEN_METADATA_KEY, descriptors, target);
  21. };
  22. }