dependencyDescriptor.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { Self, SkipSelf } from './dependencyLookUp';
  2. import { Many, Optional } from './dependencyQuantity';
  3. import { WithNew } from './dependencyWithNew';
  4. import { RediError } from './error';
  5. import { LookUp, Quantity } from './types';
  6. export function normalizeFactoryDeps(deps) {
  7. if (!deps) {
  8. return [];
  9. }
  10. return deps.map(function (dep, index) {
  11. if (!Array.isArray(dep)) {
  12. return {
  13. paramIndex: index,
  14. identifier: dep,
  15. quantity: Quantity.REQUIRED,
  16. withNew: false,
  17. };
  18. }
  19. var modifiers = dep.slice(0, dep.length - 1);
  20. var identifier = dep[dep.length - 1];
  21. var lookUp = undefined;
  22. var quantity = Quantity.REQUIRED;
  23. var withNew = false;
  24. modifiers.forEach(function (modifier) {
  25. if (modifier instanceof Self) {
  26. lookUp = LookUp.SELF;
  27. }
  28. else if (modifier instanceof SkipSelf) {
  29. lookUp = LookUp.SKIP_SELF;
  30. }
  31. else if (modifier instanceof Optional) {
  32. quantity = Quantity.OPTIONAL;
  33. }
  34. else if (modifier instanceof Many) {
  35. quantity = Quantity.MANY;
  36. }
  37. else if (modifier instanceof WithNew) {
  38. withNew = true;
  39. }
  40. else {
  41. throw new RediError("unknown dep modifier ".concat(modifier, "."));
  42. }
  43. });
  44. return {
  45. paramIndex: index,
  46. identifier: identifier,
  47. quantity: quantity,
  48. lookUp: lookUp,
  49. withNew: withNew,
  50. };
  51. });
  52. }
  53. //# sourceMappingURL=dependencyDescriptor.js.map