reflection-helpers.js 1.2 KB

123456789101112131415161718192021222324252627
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.defineInjectionTokenMetadata = exports.getParamInfo = exports.INJECTION_TOKEN_METADATA_KEY = void 0;
  4. exports.INJECTION_TOKEN_METADATA_KEY = "injectionTokens";
  5. function getParamInfo(target) {
  6. const params = Reflect.getMetadata("design:paramtypes", target) || [];
  7. const injectionTokens = Reflect.getOwnMetadata(exports.INJECTION_TOKEN_METADATA_KEY, target) || {};
  8. Object.keys(injectionTokens).forEach(key => {
  9. params[+key] = injectionTokens[key];
  10. });
  11. return params;
  12. }
  13. exports.getParamInfo = getParamInfo;
  14. function defineInjectionTokenMetadata(data, transform) {
  15. return function (target, _propertyKey, parameterIndex) {
  16. const descriptors = Reflect.getOwnMetadata(exports.INJECTION_TOKEN_METADATA_KEY, target) || {};
  17. descriptors[parameterIndex] = transform
  18. ? {
  19. token: data,
  20. transform: transform.transformToken,
  21. transformArgs: transform.args || []
  22. }
  23. : data;
  24. Reflect.defineMetadata(exports.INJECTION_TOKEN_METADATA_KEY, descriptors, target);
  25. };
  26. }
  27. exports.defineInjectionTokenMetadata = defineInjectionTokenMetadata;