@inversifyjs/core 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/lib/cjs/binding/services/ActivationsService.js +1 -1
  3. package/lib/cjs/binding/services/BindingService.js +1 -1
  4. package/lib/cjs/binding/services/DeactivationsService.js +1 -1
  5. package/lib/cjs/common/models/OneToManyMapStar.d.ts +1 -1
  6. package/lib/cjs/common/models/OneToManyMapStar.d.ts.map +1 -1
  7. package/lib/cjs/common/models/OneToManyMapStar.js +36 -19
  8. package/lib/cjs/common/models/OneToManyMapStar.js.map +1 -1
  9. package/lib/cjs/common/models/__mocks__/OneToManyMapStar.d.ts +1 -1
  10. package/lib/cjs/common/models/__mocks__/OneToManyMapStar.d.ts.map +1 -1
  11. package/lib/cjs/common/models/__mocks__/OneToManyMapStar.js +4 -4
  12. package/lib/cjs/common/models/__mocks__/OneToManyMapStar.js.map +1 -1
  13. package/lib/cjs/decorator/calculations/getDecoratorInfo.d.ts +1 -0
  14. package/lib/cjs/decorator/calculations/getDecoratorInfo.d.ts.map +1 -1
  15. package/lib/cjs/decorator/calculations/getDecoratorInfo.js +12 -4
  16. package/lib/cjs/decorator/calculations/getDecoratorInfo.js.map +1 -1
  17. package/lib/cjs/decorator/calculations/stringifyDecoratorInfo.d.ts.map +1 -1
  18. package/lib/cjs/decorator/calculations/stringifyDecoratorInfo.js +2 -0
  19. package/lib/cjs/decorator/calculations/stringifyDecoratorInfo.js.map +1 -1
  20. package/lib/cjs/decorator/models/DecoratorInfo.d.ts +2 -1
  21. package/lib/cjs/decorator/models/DecoratorInfo.d.ts.map +1 -1
  22. package/lib/cjs/decorator/models/DecoratorInfoKind.d.ts +3 -2
  23. package/lib/cjs/decorator/models/DecoratorInfoKind.d.ts.map +1 -1
  24. package/lib/cjs/decorator/models/DecoratorInfoKind.js +3 -2
  25. package/lib/cjs/decorator/models/DecoratorInfoKind.js.map +1 -1
  26. package/lib/cjs/decorator/models/MethodDecoratorInfo.d.ts +6 -0
  27. package/lib/cjs/decorator/models/MethodDecoratorInfo.d.ts.map +1 -0
  28. package/lib/cjs/decorator/models/MethodDecoratorInfo.js +3 -0
  29. package/lib/cjs/decorator/models/MethodDecoratorInfo.js.map +1 -0
  30. package/lib/cjs/issues/classMetadataKindIsARuntimeDiscriminator.int.spec.d.ts +2 -0
  31. package/lib/cjs/issues/classMetadataKindIsARuntimeDiscriminator.int.spec.d.ts.map +1 -0
  32. package/lib/cjs/metadata/calculations/handleInjectionError.d.ts +1 -1
  33. package/lib/cjs/metadata/calculations/handleInjectionError.d.ts.map +1 -1
  34. package/lib/cjs/metadata/calculations/handleInjectionError.js.map +1 -1
  35. package/lib/cjs/metadata/decorators/inject.d.ts +1 -1
  36. package/lib/cjs/metadata/decorators/inject.d.ts.map +1 -1
  37. package/lib/cjs/metadata/decorators/inject.js +1 -14
  38. package/lib/cjs/metadata/decorators/inject.js.map +1 -1
  39. package/lib/cjs/metadata/decorators/injectBase.d.ts +2 -1
  40. package/lib/cjs/metadata/decorators/injectBase.d.ts.map +1 -1
  41. package/lib/cjs/metadata/decorators/injectBase.js +34 -6
  42. package/lib/cjs/metadata/decorators/injectBase.js.map +1 -1
  43. package/lib/cjs/metadata/decorators/multiInject.d.ts +1 -1
  44. package/lib/cjs/metadata/decorators/multiInject.d.ts.map +1 -1
  45. package/lib/cjs/metadata/decorators/multiInject.js +1 -14
  46. package/lib/cjs/metadata/decorators/multiInject.js.map +1 -1
  47. package/lib/cjs/metadata/decorators/named.d.ts +1 -1
  48. package/lib/cjs/metadata/decorators/named.d.ts.map +1 -1
  49. package/lib/cjs/metadata/decorators/named.js +1 -14
  50. package/lib/cjs/metadata/decorators/named.js.map +1 -1
  51. package/lib/cjs/metadata/decorators/optional.d.ts +1 -1
  52. package/lib/cjs/metadata/decorators/optional.d.ts.map +1 -1
  53. package/lib/cjs/metadata/decorators/optional.js +1 -14
  54. package/lib/cjs/metadata/decorators/optional.js.map +1 -1
  55. package/lib/cjs/metadata/decorators/tagged.d.ts +1 -1
  56. package/lib/cjs/metadata/decorators/tagged.d.ts.map +1 -1
  57. package/lib/cjs/metadata/decorators/tagged.js +1 -14
  58. package/lib/cjs/metadata/decorators/tagged.js.map +1 -1
  59. package/lib/cjs/metadata/decorators/unmanaged.d.ts +1 -1
  60. package/lib/cjs/metadata/decorators/unmanaged.d.ts.map +1 -1
  61. package/lib/cjs/metadata/decorators/unmanaged.js +1 -14
  62. package/lib/cjs/metadata/decorators/unmanaged.js.map +1 -1
  63. package/lib/esm/index.d.ts +6 -6
  64. package/lib/esm/index.js +1 -1
  65. package/lib/esm/index.js.map +1 -1
  66. package/package.json +4 -4
  67. package/lib/cjs/issues/classMetadataKindIsARuntimeDiscriminator.spec.d.ts +0 -2
  68. package/lib/cjs/issues/classMetadataKindIsARuntimeDiscriminator.spec.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @inversifyjs/core
2
2
 
3
+ ## 3.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 1c93440: Updated `unmanaged` to support method decoration
8
+ - 1c93440: Updated `inject` to support method decoration
9
+ - 1c93440: Updated `optional` to support method decoration
10
+ - 1c93440: Updated `named` to support method decoration
11
+ - 1c93440: Updated `tagged` to support method decoration
12
+ - 1c93440: Updated `multiInject` to support method decoration
13
+
14
+ ### Patch Changes
15
+
16
+ - c80459d: Updated `OneToManyMapStar` to fix an issue involving a deletion use case
17
+
18
+ ## 3.0.2
19
+
20
+ ### Patch Changes
21
+
22
+ - c346802: Updated `DeactivationService` to allow duplicated deactivations
23
+ - c346802: Updated `ActivationService` to allow duplicated activations
24
+
3
25
  ## 3.0.1
4
26
 
5
27
  ### Patch Changes
@@ -28,7 +28,7 @@ class ActivationsService {
28
28
  return new ActivationsService(parent);
29
29
  }
30
30
  add(activation, relation) {
31
- this.#activationMaps.set(activation, relation);
31
+ this.#activationMaps.add(activation, relation);
32
32
  }
33
33
  clone() {
34
34
  const clone = new ActivationsService(this.#parent, this.#activationMaps.clone());
@@ -56,7 +56,7 @@ class BindingService {
56
56
  if (binding.moduleId !== undefined) {
57
57
  relation[BindingRelationKind.moduleId] = binding.moduleId;
58
58
  }
59
- this.#bindingMaps.set(binding, relation);
59
+ this.#bindingMaps.add(binding, relation);
60
60
  }
61
61
  }
62
62
  exports.BindingService = BindingService;
@@ -28,7 +28,7 @@ class DeactivationsService {
28
28
  return new DeactivationsService(parent);
29
29
  }
30
30
  add(deactivation, relation) {
31
- this.#deactivationMaps.set(deactivation, relation);
31
+ this.#deactivationMaps.add(deactivation, relation);
32
32
  }
33
33
  clone() {
34
34
  const clone = new DeactivationsService(this.#parent, this.#deactivationMaps.clone());
@@ -10,10 +10,10 @@ export type OneToManyMapStartSpec<TRelation extends object> = {
10
10
  export declare class OneToManyMapStar<TModel, TRelation extends object> implements Cloneable<OneToManyMapStar<TModel, TRelation>> {
11
11
  #private;
12
12
  constructor(spec: OneToManyMapStartSpec<TRelation>);
13
+ add(model: TModel, relation: TRelation): void;
13
14
  clone(): OneToManyMapStar<TModel, TRelation>;
14
15
  get<TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]): Iterable<TModel> | undefined;
15
16
  getAllKeys<TKey extends keyof TRelation>(key: TKey): Iterable<TRelation[TKey]>;
16
17
  removeByRelation<TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]): void;
17
- set(model: TModel, relation: TRelation): void;
18
18
  }
19
19
  //# sourceMappingURL=OneToManyMapStar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneToManyMapStar.d.ts","sourceRoot":"","sources":["../../../../src/common/models/OneToManyMapStar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,MAAM,IAAI;KAC3D,IAAI,IAAI,MAAM,SAAS,GAAG;QACzB,UAAU,EAAE,SAAS,SAAS,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;KAC9D;CACF,CAAC;AAMF;;GAEG;AACH,qBAAa,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM,CAC5D,YAAW,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;gBAM7C,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC;IAY3C,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC;IAwB5C,GAAG,CAAC,IAAI,SAAS,MAAM,SAAS,EACrC,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS;IAIxB,UAAU,CAAC,IAAI,SAAS,MAAM,SAAS,EAC5C,GAAG,EAAE,IAAI,GACR,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAIrB,gBAAgB,CAAC,IAAI,SAAS,MAAM,SAAS,EAClD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,IAAI;IAoBA,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI;CAiErD"}
1
+ {"version":3,"file":"OneToManyMapStar.d.ts","sourceRoot":"","sources":["../../../../src/common/models/OneToManyMapStar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,MAAM,IAAI;KAC3D,IAAI,IAAI,MAAM,SAAS,GAAG;QACzB,UAAU,EAAE,SAAS,SAAS,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;KAC9D;CACF,CAAC;AAMF;;GAEG;AACH,qBAAa,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM,CAC5D,YAAW,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;gBAM7C,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC;IAY3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI;IAY7C,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC;IAwB5C,GAAG,CAAC,IAAI,SAAS,MAAM,SAAS,EACrC,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS;IAIxB,UAAU,CAAC,IAAI,SAAS,MAAM,SAAS,EAC5C,GAAG,EAAE,IAAI,GACR,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAIrB,gBAAgB,CAAC,IAAI,SAAS,MAAM,SAAS,EAClD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,IAAI;CAiGR"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OneToManyMapStar = void 0;
4
+ const NOT_FOUND_INDEX = -1;
4
5
  /**
5
6
  * Data structure able to efficiently manage a set of models related to a set of properties in a one to many relation.
6
7
  */
@@ -16,6 +17,12 @@ class OneToManyMapStar {
16
17
  }
17
18
  this.#spec = spec;
18
19
  }
20
+ add(model, relation) {
21
+ this.#buildOrGetModelArray(model).push(relation);
22
+ for (const relationKey of Reflect.ownKeys(relation)) {
23
+ this.#buildOrGetRelationModels(relationKey, relation[relationKey]).push(model);
24
+ }
25
+ }
19
26
  clone() {
20
27
  const properties = Reflect.ownKeys(this.#spec);
21
28
  const clone = new OneToManyMapStar(this.#spec);
@@ -26,7 +33,7 @@ class OneToManyMapStar {
26
33
  return clone;
27
34
  }
28
35
  get(key, value) {
29
- return this.#relationToModelsMaps[key].get(value)?.values();
36
+ return this.#relationToModelsMaps[key].get(value);
30
37
  }
31
38
  getAllKeys(key) {
32
39
  return this.#relationToModelsMaps[key].keys();
@@ -36,28 +43,35 @@ class OneToManyMapStar {
36
43
  if (models === undefined) {
37
44
  return;
38
45
  }
39
- for (const model of models) {
40
- const relation = this.#modelToRelationMap.get(model);
41
- if (relation === undefined) {
46
+ const uniqueModelsSet = new Set(models);
47
+ for (const model of uniqueModelsSet) {
48
+ const relations = this.#modelToRelationMap.get(model);
49
+ if (relations === undefined) {
42
50
  throw new Error('Expecting model relation, none found');
43
51
  }
44
- this.#removeModelFromRelationMaps(model, relation);
52
+ for (const relation of relations) {
53
+ if (relation[key] === value) {
54
+ this.#removeModelFromRelationMaps(model, relation);
55
+ }
56
+ }
45
57
  this.#modelToRelationMap.delete(model);
46
58
  }
47
59
  }
48
- set(model, relation) {
49
- this.#modelToRelationMap.set(model, relation);
50
- for (const relationKey of Reflect.ownKeys(relation)) {
51
- this.#buildOrGetRelationModelSet(relationKey, relation[relationKey]).add(model);
60
+ #buildOrGetModelArray(model) {
61
+ let relations = this.#modelToRelationMap.get(model);
62
+ if (relations === undefined) {
63
+ relations = [];
64
+ this.#modelToRelationMap.set(model, relations);
52
65
  }
66
+ return relations;
53
67
  }
54
- #buildOrGetRelationModelSet(relationKey, relationValue) {
55
- let modelSet = this.#relationToModelsMaps[relationKey].get(relationValue);
56
- if (modelSet === undefined) {
57
- modelSet = new Set();
58
- this.#relationToModelsMaps[relationKey].set(relationValue, modelSet);
68
+ #buildOrGetRelationModels(relationKey, relationValue) {
69
+ let models = this.#relationToModelsMaps[relationKey].get(relationValue);
70
+ if (models === undefined) {
71
+ models = [];
72
+ this.#relationToModelsMaps[relationKey].set(relationValue, models);
59
73
  }
60
- return modelSet;
74
+ return models;
61
75
  }
62
76
  #pushEntriesIntoMap(source, target) {
63
77
  for (const [key, value] of source) {
@@ -70,10 +84,13 @@ class OneToManyMapStar {
70
84
  }
71
85
  }
72
86
  #removeModelFromRelationMap(model, relationKey, relationValue) {
73
- const modelSet = this.#relationToModelsMaps[relationKey].get(relationValue);
74
- if (modelSet !== undefined) {
75
- modelSet.delete(model);
76
- if (modelSet.size === 0) {
87
+ const relationModels = this.#relationToModelsMaps[relationKey].get(relationValue);
88
+ if (relationModels !== undefined) {
89
+ const index = relationModels.indexOf(model);
90
+ if (index !== NOT_FOUND_INDEX) {
91
+ relationModels.splice(index, 1);
92
+ }
93
+ if (relationModels.length === 0) {
77
94
  this.#relationToModelsMaps[relationKey].delete(relationValue);
78
95
  }
79
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OneToManyMapStar.js","sourceRoot":"","sources":["../../../../src/common/models/OneToManyMapStar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OneToManyMapStar.js","sourceRoot":"","sources":["../../../../src/common/models/OneToManyMapStar.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  export declare class OneToManyMapStar<TModel, TRelation extends object> {
2
+ readonly add: (model: TModel, relation: TRelation) => void;
2
3
  readonly clone: () => OneToManyMapStar<TModel, TRelation>;
3
4
  readonly get: <TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]) => Iterable<TModel> | undefined;
4
5
  readonly getAllKeys: <TKey extends keyof TRelation>(key: TKey) => Iterable<TRelation[TKey]>;
5
6
  readonly removeByRelation: <TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]) => void;
6
- readonly set: (model: TModel, relation: TRelation) => void;
7
7
  constructor();
8
8
  }
9
9
  //# sourceMappingURL=OneToManyMapStar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneToManyMapStar.d.ts","sourceRoot":"","sources":["../../../../../src/common/models/__mocks__/OneToManyMapStar.ts"],"names":[],"mappings":"AAaA,qBAAa,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM;IAC5D,SAAgB,KAAK,EAAE,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjE,SAAgB,GAAG,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EAChD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAC7B,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAElC,SAAgB,UAAU,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EACvD,GAAG,EAAE,IAAI,KACN,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/B,SAAgB,gBAAgB,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EAC7D,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAC7B,IAAI,CAAC;IAEV,SAAgB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;;CASnE"}
1
+ {"version":3,"file":"OneToManyMapStar.d.ts","sourceRoot":"","sources":["../../../../../src/common/models/__mocks__/OneToManyMapStar.ts"],"names":[],"mappings":"AAaA,qBAAa,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM;IAC5D,SAAgB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;IAClE,SAAgB,KAAK,EAAE,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjE,SAAgB,GAAG,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EAChD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAC7B,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAElC,SAAgB,UAAU,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EACvD,GAAG,EAAE,IAAI,KACN,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/B,SAAgB,gBAAgB,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EAC7D,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAC7B,IAAI,CAAC;;CASX"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OneToManyMapStar = void 0;
4
4
  const globals_1 = require("@jest/globals");
5
5
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ const addMock = globals_1.jest.fn();
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
8
  const cloneMock = globals_1.jest.fn();
7
9
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
10
  const getMock = globals_1.jest.fn();
@@ -10,20 +12,18 @@ const getMock = globals_1.jest.fn();
10
12
  const getAllKeysMock = globals_1.jest.fn();
11
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
14
  const removeByRelationMock = globals_1.jest.fn();
13
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- const setMock = globals_1.jest.fn();
15
15
  class OneToManyMapStar {
16
+ add;
16
17
  clone;
17
18
  get;
18
19
  getAllKeys;
19
20
  removeByRelation;
20
- set;
21
21
  constructor() {
22
+ this.add = addMock;
22
23
  this.clone = cloneMock;
23
24
  this.get = getMock;
24
25
  this.getAllKeys = getAllKeysMock;
25
26
  this.removeByRelation = removeByRelationMock;
26
- this.set = setMock;
27
27
  }
28
28
  }
29
29
  exports.OneToManyMapStar = OneToManyMapStar;
@@ -1 +1 @@
1
- {"version":3,"file":"OneToManyMapStar.js","sourceRoot":"","sources":["../../../../../src/common/models/__mocks__/OneToManyMapStar.ts"],"names":[],"mappings":";;;AAAA,2CAAqC;AAErC,8DAA8D;AAC9D,MAAM,SAAS,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AAC5C,8DAA8D;AAC9D,MAAM,OAAO,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,8DAA8D;AAC9D,MAAM,cAAc,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AACjD,8DAA8D;AAC9D,MAAM,oBAAoB,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AACvD,8DAA8D;AAC9D,MAAM,OAAO,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AAE1C,MAAa,gBAAgB;IACX,KAAK,CAA4C;IACjD,GAAG,CAGe;IAElB,UAAU,CAEK;IAEf,gBAAgB,CAGtB;IAEM,GAAG,CAA+C;IAElE;QACE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;IACrB,CAAC;CACF;AAzBD,4CAyBC"}
1
+ {"version":3,"file":"OneToManyMapStar.js","sourceRoot":"","sources":["../../../../../src/common/models/__mocks__/OneToManyMapStar.ts"],"names":[],"mappings":";;;AAAA,2CAAqC;AAErC,8DAA8D;AAC9D,MAAM,OAAO,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,8DAA8D;AAC9D,MAAM,SAAS,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AAC5C,8DAA8D;AAC9D,MAAM,OAAO,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,8DAA8D;AAC9D,MAAM,cAAc,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AACjD,8DAA8D;AAC9D,MAAM,oBAAoB,GAAmB,cAAI,CAAC,EAAE,EAAE,CAAC;AAEvD,MAAa,gBAAgB;IACX,GAAG,CAA+C;IAClD,KAAK,CAA4C;IACjD,GAAG,CAGe;IAElB,UAAU,CAEK;IAEf,gBAAgB,CAGtB;IAEV;QACE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;IAC/C,CAAC;CACF;AAxBD,4CAwBC"}
@@ -1,5 +1,6 @@
1
1
  import { DecoratorInfo } from '../models/DecoratorInfo';
2
2
  export declare function getDecoratorInfo(target: object, propertyKey: undefined, parameterIndex: number): DecoratorInfo;
3
+ export declare function getDecoratorInfo<T>(target: object, propertyKey: string | symbol | undefined, descriptor: number | TypedPropertyDescriptor<T> | undefined): DecoratorInfo;
3
4
  export declare function getDecoratorInfo(target: object, propertyKey: string | symbol): DecoratorInfo;
4
5
  export declare function getDecoratorInfo(target: object, propertyKey: string | symbol | undefined, parameterIndex?: number | undefined): DecoratorInfo;
5
6
  //# sourceMappingURL=getDecoratorInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDecoratorInfo.d.ts","sourceRoot":"","sources":["../../../../src/decorator/calculations/getDecoratorInfo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,cAAc,EAAE,MAAM,GACrB,aAAa,CAAC;AACjB,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,aAAa,CAAC;AACjB,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACxC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,GAClC,aAAa,CAAC"}
1
+ {"version":3,"file":"getDecoratorInfo.d.ts","sourceRoot":"","sources":["../../../../src/decorator/calculations/getDecoratorInfo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,cAAc,EAAE,MAAM,GACrB,aAAa,CAAC;AACjB,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACxC,UAAU,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,GAAG,SAAS,GAC1D,aAAa,CAAC;AACjB,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,aAAa,CAAC;AACjB,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACxC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,GAClC,aAAa,CAAC"}
@@ -4,8 +4,8 @@ exports.getDecoratorInfo = getDecoratorInfo;
4
4
  const InversifyCoreError_1 = require("../../error/models/InversifyCoreError");
5
5
  const InversifyCoreErrorKind_1 = require("../../error/models/InversifyCoreErrorKind");
6
6
  const DecoratorInfoKind_1 = require("../models/DecoratorInfoKind");
7
- function getDecoratorInfo(target, propertyKey, parameterIndex) {
8
- if (parameterIndex === undefined) {
7
+ function getDecoratorInfo(target, propertyKey, parameterIndexOrDescriptor) {
8
+ if (parameterIndexOrDescriptor === undefined) {
9
9
  if (propertyKey === undefined) {
10
10
  throw new InversifyCoreError_1.InversifyCoreError(InversifyCoreErrorKind_1.InversifyCoreErrorKind.unknown, 'Unexpected undefined property and index values');
11
11
  }
@@ -15,9 +15,17 @@ function getDecoratorInfo(target, propertyKey, parameterIndex) {
15
15
  targetClass: target.constructor,
16
16
  };
17
17
  }
18
+ if (typeof parameterIndexOrDescriptor === 'number') {
19
+ return {
20
+ index: parameterIndexOrDescriptor,
21
+ kind: DecoratorInfoKind_1.DecoratorInfoKind.parameter,
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
23
+ targetClass: target,
24
+ };
25
+ }
18
26
  return {
19
- index: parameterIndex,
20
- kind: DecoratorInfoKind_1.DecoratorInfoKind.parameter,
27
+ kind: DecoratorInfoKind_1.DecoratorInfoKind.method,
28
+ method: propertyKey,
21
29
  // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
22
30
  targetClass: target,
23
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getDecoratorInfo.js","sourceRoot":"","sources":["../../../../src/decorator/calculations/getDecoratorInfo.ts"],"names":[],"mappings":";;AAmBA,4CA0BC;AA7CD,8EAA2E;AAC3E,sFAAmF;AAEnF,mEAAgE;AAgBhE,SAAgB,gBAAgB,CAC9B,MAAc,EACd,WAAwC,EACxC,cAAmC;IAEnC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,uCAAkB,CAC1B,+CAAsB,CAAC,OAAO,EAC9B,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,qCAAiB,CAAC,QAAQ;YAChC,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,qCAAiB,CAAC,SAAS;QACjC,sEAAsE;QACtE,WAAW,EAAE,MAAkB;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getDecoratorInfo.js","sourceRoot":"","sources":["../../../../src/decorator/calculations/getDecoratorInfo.ts"],"names":[],"mappings":";;AAwBA,4CAmCC;AA3DD,8EAA2E;AAC3E,sFAAmF;AAEnF,mEAAgE;AAqBhE,SAAgB,gBAAgB,CAC9B,MAAc,EACd,WAAwC,EACxC,0BAA4E;IAE5E,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;QAC7C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,uCAAkB,CAC1B,+CAAsB,CAAC,OAAO,EAC9B,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,qCAAiB,CAAC,QAAQ;YAChC,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,0BAA0B,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO;YACL,KAAK,EAAE,0BAA0B;YACjC,IAAI,EAAE,qCAAiB,CAAC,SAAS;YACjC,sEAAsE;YACtE,WAAW,EAAE,MAAkB;SAChC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,qCAAiB,CAAC,MAAM;QAC9B,MAAM,EAAE,WAA8B;QACtC,sEAAsE;QACtE,WAAW,EAAE,MAAkB;KAChC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyDecoratorInfo.d.ts","sourceRoot":"","sources":["../../../../src/decorator/calculations/stringifyDecoratorInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,wBAAgB,sBAAsB,CACpC,mBAAmB,EAAE,aAAa,GACjC,MAAM,CAOR"}
1
+ {"version":3,"file":"stringifyDecoratorInfo.d.ts","sourceRoot":"","sources":["../../../../src/decorator/calculations/stringifyDecoratorInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,wBAAgB,sBAAsB,CACpC,mBAAmB,EAAE,aAAa,GACjC,MAAM,CASR"}
@@ -4,6 +4,8 @@ exports.stringifyDecoratorInfo = stringifyDecoratorInfo;
4
4
  const DecoratorInfoKind_1 = require("../models/DecoratorInfoKind");
5
5
  function stringifyDecoratorInfo(decoratorTargetInfo) {
6
6
  switch (decoratorTargetInfo.kind) {
7
+ case DecoratorInfoKind_1.DecoratorInfoKind.method:
8
+ return `[class: "${decoratorTargetInfo.targetClass.name}", method: "${decoratorTargetInfo.method.toString()}"]`;
7
9
  case DecoratorInfoKind_1.DecoratorInfoKind.parameter:
8
10
  return `[class: "${decoratorTargetInfo.targetClass.name}", index: "${decoratorTargetInfo.index.toString()}"]`;
9
11
  case DecoratorInfoKind_1.DecoratorInfoKind.property:
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyDecoratorInfo.js","sourceRoot":"","sources":["../../../../src/decorator/calculations/stringifyDecoratorInfo.ts"],"names":[],"mappings":";;AAGA,wDASC;AAXD,mEAAgE;AAEhE,SAAgB,sBAAsB,CACpC,mBAAkC;IAElC,QAAQ,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACjC,KAAK,qCAAiB,CAAC,SAAS;YAC9B,OAAO,YAAY,mBAAmB,CAAC,WAAW,CAAC,IAAI,cAAc,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;QAChH,KAAK,qCAAiB,CAAC,QAAQ;YAC7B,OAAO,YAAY,mBAAmB,CAAC,WAAW,CAAC,IAAI,iBAAiB,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"stringifyDecoratorInfo.js","sourceRoot":"","sources":["../../../../src/decorator/calculations/stringifyDecoratorInfo.ts"],"names":[],"mappings":";;AAGA,wDAWC;AAbD,mEAAgE;AAEhE,SAAgB,sBAAsB,CACpC,mBAAkC;IAElC,QAAQ,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACjC,KAAK,qCAAiB,CAAC,MAAM;YAC3B,OAAO,YAAY,mBAAmB,CAAC,WAAW,CAAC,IAAI,eAAe,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;QAClH,KAAK,qCAAiB,CAAC,SAAS;YAC9B,OAAO,YAAY,mBAAmB,CAAC,WAAW,CAAC,IAAI,cAAc,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;QAChH,KAAK,qCAAiB,CAAC,QAAQ;YAC7B,OAAO,YAAY,mBAAmB,CAAC,WAAW,CAAC,IAAI,iBAAiB,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxH,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
+ import { MethodDecoratorInfo } from './MethodDecoratorInfo';
1
2
  import { ParameterDecoratorInfo } from './ParameterDecoratorInfo';
2
3
  import { PropertyDecoratorInfo } from './PropertyDecoratorInfo';
3
- export type DecoratorInfo = ParameterDecoratorInfo | PropertyDecoratorInfo;
4
+ export type DecoratorInfo = MethodDecoratorInfo | ParameterDecoratorInfo | PropertyDecoratorInfo;
4
5
  //# sourceMappingURL=DecoratorInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecoratorInfo.d.ts","sourceRoot":"","sources":["../../../../src/decorator/models/DecoratorInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,sBAAsB,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"DecoratorInfo.d.ts","sourceRoot":"","sources":["../../../../src/decorator/models/DecoratorInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export declare enum DecoratorInfoKind {
2
- parameter = 0,
3
- property = 1
2
+ method = 0,
3
+ parameter = 1,
4
+ property = 2
4
5
  }
5
6
  //# sourceMappingURL=DecoratorInfoKind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecoratorInfoKind.d.ts","sourceRoot":"","sources":["../../../../src/decorator/models/DecoratorInfoKind.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,SAAS,IAAA;IACT,QAAQ,IAAA;CACT"}
1
+ {"version":3,"file":"DecoratorInfoKind.d.ts","sourceRoot":"","sources":["../../../../src/decorator/models/DecoratorInfoKind.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,MAAM,IAAA;IACN,SAAS,IAAA;IACT,QAAQ,IAAA;CACT"}
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DecoratorInfoKind = void 0;
4
4
  var DecoratorInfoKind;
5
5
  (function (DecoratorInfoKind) {
6
- DecoratorInfoKind[DecoratorInfoKind["parameter"] = 0] = "parameter";
7
- DecoratorInfoKind[DecoratorInfoKind["property"] = 1] = "property";
6
+ DecoratorInfoKind[DecoratorInfoKind["method"] = 0] = "method";
7
+ DecoratorInfoKind[DecoratorInfoKind["parameter"] = 1] = "parameter";
8
+ DecoratorInfoKind[DecoratorInfoKind["property"] = 2] = "property";
8
9
  })(DecoratorInfoKind || (exports.DecoratorInfoKind = DecoratorInfoKind = {}));
9
10
  //# sourceMappingURL=DecoratorInfoKind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecoratorInfoKind.js","sourceRoot":"","sources":["../../../../src/decorator/models/DecoratorInfoKind.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,mEAAS,CAAA;IACT,iEAAQ,CAAA;AACV,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B"}
1
+ {"version":3,"file":"DecoratorInfoKind.js","sourceRoot":"","sources":["../../../../src/decorator/models/DecoratorInfoKind.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,6DAAM,CAAA;IACN,mEAAS,CAAA;IACT,iEAAQ,CAAA;AACV,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B"}
@@ -0,0 +1,6 @@
1
+ import { BaseDecoratorInfo } from './BaseDecoratorInfo';
2
+ import { DecoratorInfoKind } from './DecoratorInfoKind';
3
+ export interface MethodDecoratorInfo extends BaseDecoratorInfo<DecoratorInfoKind.method> {
4
+ method: string | symbol;
5
+ }
6
+ //# sourceMappingURL=MethodDecoratorInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodDecoratorInfo.d.ts","sourceRoot":"","sources":["../../../../src/decorator/models/MethodDecoratorInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,mBACf,SAAQ,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC;IACnD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=MethodDecoratorInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodDecoratorInfo.js","sourceRoot":"","sources":["../../../../src/decorator/models/MethodDecoratorInfo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=classMetadataKindIsARuntimeDiscriminator.int.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classMetadataKindIsARuntimeDiscriminator.int.spec.d.ts","sourceRoot":"","sources":["../../../src/issues/classMetadataKindIsARuntimeDiscriminator.int.spec.ts"],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- export declare function handleInjectionError(target: object, propertyKey: string | symbol | undefined, parameterIndex: number | undefined, error: unknown): never;
1
+ export declare function handleInjectionError<T>(target: object, propertyKey: string | symbol | undefined, parameterIndex: number | TypedPropertyDescriptor<T> | undefined, error: unknown): never;
2
2
  //# sourceMappingURL=handleInjectionError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleInjectionError.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/handleInjectionError.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACxC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,KAAK,EAAE,OAAO,GACb,KAAK,CA4BP"}
1
+ {"version":3,"file":"handleInjectionError.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/handleInjectionError.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACxC,cAAc,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,GAAG,SAAS,EAC/D,KAAK,EAAE,OAAO,GACb,KAAK,CA4BP"}
@@ -1 +1 @@
1
- {"version":3,"file":"handleInjectionError.js","sourceRoot":"","sources":["../../../../src/metadata/calculations/handleInjectionError.ts"],"names":[],"mappings":";;AAMA,oDAiCC;AAvCD,oFAAiF;AACjF,gGAA6F;AAE7F,8EAA2E;AAC3E,sFAAmF;AAEnF,SAAgB,oBAAoB,CAClC,MAAc,EACd,WAAwC,EACxC,cAAkC,EAClC,KAAc;IAEd,IACE,uCAAkB,CAAC,aAAa,CAC9B,KAAK,EACL,+CAAsB,CAAC,0BAA0B,CAClD,EACD,CAAC;QACD,MAAM,IAAI,GAAkB,IAAA,mCAAgB,EAC1C,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;QACF,MAAM,IAAI,uCAAkB,CAC1B,+CAAsB,CAAC,0BAA0B,EACjD;;;;EAIJ,KAAK,CAAC,OAAO;;;;EAIb,IAAA,+CAAsB,EAAC,IAAI,CAAC,EAAE,EAC1B,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"handleInjectionError.js","sourceRoot":"","sources":["../../../../src/metadata/calculations/handleInjectionError.ts"],"names":[],"mappings":";;AAMA,oDAiCC;AAvCD,oFAAiF;AACjF,gGAA6F;AAE7F,8EAA2E;AAC3E,sFAAmF;AAEnF,SAAgB,oBAAoB,CAClC,MAAc,EACd,WAAwC,EACxC,cAA+D,EAC/D,KAAc;IAEd,IACE,uCAAkB,CAAC,aAAa,CAC9B,KAAK,EACL,+CAAsB,CAAC,0BAA0B,CAClD,EACD,CAAC;QACD,MAAM,IAAI,GAAkB,IAAA,mCAAgB,EAC1C,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;QACF,MAAM,IAAI,uCAAkB,CAC1B,+CAAsB,CAAC,0BAA0B,EACjD;;;;EAIJ,KAAK,CAAC,OAAO;;;;EAIb,IAAA,+CAAsB,EAAC,IAAI,CAAC,EAAE,EAC1B,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC;AACd,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { LazyServiceIdentifier, ServiceIdentifier } from '@inversifyjs/common';
2
- export declare function inject(serviceIdentifier: ServiceIdentifier | LazyServiceIdentifier): ParameterDecorator & PropertyDecorator;
2
+ export declare function inject(serviceIdentifier: ServiceIdentifier | LazyServiceIdentifier): MethodDecorator & ParameterDecorator & PropertyDecorator;
3
3
  //# sourceMappingURL=inject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAU/E,wBAAgB,MAAM,CACpB,iBAAiB,EAAE,iBAAiB,GAAG,qBAAqB,GAC3D,kBAAkB,GAAG,iBAAiB,CA8BxC"}
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAS/E,wBAAgB,MAAM,CACpB,iBAAiB,EAAE,iBAAiB,GAAG,qBAAqB,GAC3D,eAAe,GAAG,kBAAkB,GAAG,iBAAiB,CAS1D"}
@@ -3,23 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inject = inject;
4
4
  const decrementPendingClassMetadataCount_1 = require("../actions/decrementPendingClassMetadataCount");
5
5
  const buildManagedMetadataFromMaybeClassElementMetadata_1 = require("../calculations/buildManagedMetadataFromMaybeClassElementMetadata");
6
- const handleInjectionError_1 = require("../calculations/handleInjectionError");
7
6
  const ClassElementMetadataKind_1 = require("../models/ClassElementMetadataKind");
8
7
  const injectBase_1 = require("./injectBase");
9
8
  function inject(serviceIdentifier) {
10
9
  const updateMetadata = (0, buildManagedMetadataFromMaybeClassElementMetadata_1.buildManagedMetadataFromMaybeClassElementMetadata)(ClassElementMetadataKind_1.ClassElementMetadataKind.singleInjection, serviceIdentifier);
11
- return (target, propertyKey, parameterIndex) => {
12
- try {
13
- if (parameterIndex === undefined) {
14
- (0, injectBase_1.injectBase)(updateMetadata, decrementPendingClassMetadataCount_1.decrementPendingClassMetadataCount)(target, propertyKey);
15
- }
16
- else {
17
- (0, injectBase_1.injectBase)(updateMetadata, decrementPendingClassMetadataCount_1.decrementPendingClassMetadataCount)(target, propertyKey, parameterIndex);
18
- }
19
- }
20
- catch (error) {
21
- (0, handleInjectionError_1.handleInjectionError)(target, propertyKey, parameterIndex, error);
22
- }
23
- };
10
+ return (0, injectBase_1.injectBase)(updateMetadata, decrementPendingClassMetadataCount_1.decrementPendingClassMetadataCount);
24
11
  }
25
12
  //# sourceMappingURL=inject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../src/metadata/decorators/inject.ts"],"names":[],"mappings":";;AAUA,wBAgCC;AAxCD,sGAAmG;AACnG,yIAAsI;AACtI,+EAA4E;AAE5E,iFAA8E;AAE9E,6CAA0C;AAE1C,SAAgB,MAAM,CACpB,iBAA4D;IAE5D,MAAM,cAAc,GAEQ,IAAA,qGAAiD,EAC3E,mDAAwB,CAAC,eAAe,EACxC,iBAAiB,CAClB,CAAC;IAEF,OAAO,CACL,MAAc,EACd,WAAwC,EACxC,cAAuB,EACjB,EAAE;QACR,IAAI,CAAC;YACH,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAA,uBAAU,EAAC,cAAc,EAAE,uEAAkC,CAAC,CAC5D,MAAM,EACN,WAA8B,CAC/B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAA,uBAAU,EAAC,cAAc,EAAE,uEAAkC,CAAC,CAC5D,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAA,2CAAoB,EAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../src/metadata/decorators/inject.ts"],"names":[],"mappings":";;AASA,wBAWC;AAlBD,sGAAmG;AACnG,yIAAsI;AAEtI,iFAA8E;AAE9E,6CAA0C;AAE1C,SAAgB,MAAM,CACpB,iBAA4D;IAE5D,MAAM,cAAc,GAEQ,IAAA,qGAAiD,EAC3E,mDAAwB,CAAC,eAAe,EACxC,iBAAiB,CAClB,CAAC;IAEF,OAAO,IAAA,uBAAU,EAAC,cAAc,EAAE,uEAAkC,CAAC,CAAC;AACxE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { MaybeClassElementMetadata } from '../models/MaybeClassElementMetadata';
2
- export declare function injectBase(updateMetadata: (metadata: MaybeClassElementMetadata | undefined) => MaybeClassElementMetadata, updatePendingClassMetadataCount: (target: object) => (metadata: MaybeClassElementMetadata | undefined) => void): ParameterDecorator & PropertyDecorator;
2
+ export declare function injectBase(updateMetadata: (metadata: MaybeClassElementMetadata | undefined) => MaybeClassElementMetadata, updatePendingClassMetadataCount: (target: object) => (metadata: MaybeClassElementMetadata | undefined) => void): MethodDecorator & ParameterDecorator & PropertyDecorator;
3
+ export declare function injectBase(updateMetadata: (metadata: MaybeClassElementMetadata | undefined) => MaybeClassElementMetadata, updatePendingClassMetadataCount: (target: object) => (metadata: MaybeClassElementMetadata | undefined) => void): <T>(target: object, propertyKey: string | symbol | undefined, parameterIndex?: number | TypedPropertyDescriptor<T>) => void;
3
4
  //# sourceMappingURL=injectBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"injectBase.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/injectBase.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,wBAAgB,UAAU,CACxB,cAAc,EAAE,CACd,QAAQ,EAAE,yBAAyB,GAAG,SAAS,KAC5C,yBAAyB,EAC9B,+BAA+B,EAAE,CAC/B,MAAM,EAAE,MAAM,KACX,CAAC,QAAQ,EAAE,yBAAyB,GAAG,SAAS,KAAK,IAAI,GAC7D,kBAAkB,GAAG,iBAAiB,CAqBxC"}
1
+ {"version":3,"file":"injectBase.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/injectBase.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,wBAAgB,UAAU,CACxB,cAAc,EAAE,CACd,QAAQ,EAAE,yBAAyB,GAAG,SAAS,KAC5C,yBAAyB,EAC9B,+BAA+B,EAAE,CAC/B,MAAM,EAAE,MAAM,KACX,CAAC,QAAQ,EAAE,yBAAyB,GAAG,SAAS,KAAK,IAAI,GAC7D,eAAe,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAC5D,wBAAgB,UAAU,CACxB,cAAc,EAAE,CACd,QAAQ,EAAE,yBAAyB,GAAG,SAAS,KAC5C,yBAAyB,EAC9B,+BAA+B,EAAE,CAC/B,MAAM,EAAE,MAAM,KACX,CAAC,QAAQ,EAAE,yBAAyB,GAAG,SAAS,KAAK,IAAI,GAC7D,CAAC,CAAC,EACH,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACxC,cAAc,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,KACjD,IAAI,CAAC"}
@@ -2,17 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.injectBase = injectBase;
4
4
  const reflect_metadata_utils_1 = require("@inversifyjs/reflect-metadata-utils");
5
+ const InversifyCoreError_1 = require("../../error/models/InversifyCoreError");
6
+ const InversifyCoreErrorKind_1 = require("../../error/models/InversifyCoreErrorKind");
5
7
  const classMetadataReflectKey_1 = require("../../reflectMetadata/data/classMetadataReflectKey");
6
8
  const updateMaybeClassMetadataConstructorArgument_1 = require("../actions/updateMaybeClassMetadataConstructorArgument");
7
9
  const updateMaybeClassMetadataProperty_1 = require("../actions/updateMaybeClassMetadataProperty");
8
10
  const getDefaultClassMetadata_1 = require("../calculations/getDefaultClassMetadata");
11
+ const handleInjectionError_1 = require("../calculations/handleInjectionError");
9
12
  function injectBase(updateMetadata, updatePendingClassMetadataCount) {
10
- const decorator = (target, propertyKey, parameterIndex) => {
11
- if (parameterIndex === undefined) {
12
- injectProperty(updateMetadata, updatePendingClassMetadataCount)(target, propertyKey);
13
+ const decorator = (target, propertyKey, parameterIndexOrDescriptor) => {
14
+ try {
15
+ if (parameterIndexOrDescriptor === undefined) {
16
+ injectProperty(updateMetadata, updatePendingClassMetadataCount)(target, propertyKey);
17
+ }
18
+ else {
19
+ if (typeof parameterIndexOrDescriptor === 'number') {
20
+ injectParameter(updateMetadata, updatePendingClassMetadataCount)(target, propertyKey, parameterIndexOrDescriptor);
21
+ }
22
+ else {
23
+ injectMethod(updateMetadata, updatePendingClassMetadataCount)(target, propertyKey, parameterIndexOrDescriptor);
24
+ }
25
+ }
13
26
  }
14
- else {
15
- injectParameter(updateMetadata, updatePendingClassMetadataCount)(target, propertyKey, parameterIndex);
27
+ catch (error) {
28
+ (0, handleInjectionError_1.handleInjectionError)(target, propertyKey, parameterIndexOrDescriptor, error);
16
29
  }
17
30
  };
18
31
  return decorator;
@@ -26,6 +39,18 @@ function buildComposedUpdateMetadata(updateMetadata, updatePendingClassMetadataC
26
39
  };
27
40
  };
28
41
  }
42
+ function injectMethod(updateMetadata, updatePendingClassMetadataCount) {
43
+ const buildComposedUpdateMetadataFromTarget = buildComposedUpdateMetadata(updateMetadata, updatePendingClassMetadataCount);
44
+ return (target, propertyKey, descriptor) => {
45
+ if (isPropertySetter(descriptor)) {
46
+ (0, reflect_metadata_utils_1.updateOwnReflectMetadata)(target.constructor, classMetadataReflectKey_1.classMetadataReflectKey, getDefaultClassMetadata_1.getDefaultClassMetadata, (0, updateMaybeClassMetadataProperty_1.updateMaybeClassMetadataProperty)(buildComposedUpdateMetadataFromTarget(target), propertyKey));
47
+ }
48
+ else {
49
+ throw new InversifyCoreError_1.InversifyCoreError(InversifyCoreErrorKind_1.InversifyCoreErrorKind.injectionDecoratorConflict, `Found an @inject decorator in a non setter property method.
50
+ Found @inject decorator at method "${propertyKey.toString()}" at class "${target.constructor.name}"`);
51
+ }
52
+ };
53
+ }
29
54
  function injectParameter(updateMetadata, updatePendingClassMetadataCount) {
30
55
  const buildComposedUpdateMetadataFromTarget = buildComposedUpdateMetadata(updateMetadata, updatePendingClassMetadataCount);
31
56
  return (target, propertyKey, parameterIndex) => {
@@ -33,7 +58,7 @@ function injectParameter(updateMetadata, updatePendingClassMetadataCount) {
33
58
  (0, reflect_metadata_utils_1.updateOwnReflectMetadata)(target, classMetadataReflectKey_1.classMetadataReflectKey, getDefaultClassMetadata_1.getDefaultClassMetadata, (0, updateMaybeClassMetadataConstructorArgument_1.updateMaybeClassMetadataConstructorArgument)(buildComposedUpdateMetadataFromTarget(target), parameterIndex));
34
59
  }
35
60
  else {
36
- throw new Error(`Found an @inject decorator in a non constructor parameter.
61
+ throw new InversifyCoreError_1.InversifyCoreError(InversifyCoreErrorKind_1.InversifyCoreErrorKind.injectionDecoratorConflict, `Found an @inject decorator in a non constructor parameter.
37
62
  Found @inject decorator at method "${propertyKey?.toString() ?? ''}" at class "${target.constructor.name}"`);
38
63
  }
39
64
  };
@@ -47,4 +72,7 @@ function injectProperty(updateMetadata, updatePendingClassMetadataCount) {
47
72
  function isConstructorParameter(target, propertyKey) {
48
73
  return typeof target === 'function' && propertyKey === undefined;
49
74
  }
75
+ function isPropertySetter(descriptor) {
76
+ return descriptor.set !== undefined;
77
+ }
50
78
  //# sourceMappingURL=injectBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"injectBase.js","sourceRoot":"","sources":["../../../../src/metadata/decorators/injectBase.ts"],"names":[],"mappings":";;AAQA,gCA4BC;AApCD,gFAA+E;AAE/E,gGAA6F;AAC7F,wHAAqH;AACrH,kGAA+F;AAC/F,qFAAkF;AAGlF,SAAgB,UAAU,CACxB,cAE8B,EAC9B,+BAE8D;IAE9D,MAAM,SAAS,GAA2C,CACxD,MAAc,EACd,WAAwC,EACxC,cAAuB,EACjB,EAAE;QACR,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,cAAc,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAC7D,MAAM,EACN,WAA8B,CAC/B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAC9D,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,2BAA2B,CAClC,cAE8B,EAC9B,+BAE8D;IAM9D,OAAO,CACL,MAAc,EAGgB,EAAE;QAChC,MAAM,qCAAqC,GAE/B,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO,CACL,QAA+C,EACpB,EAAE;YAC7B,qCAAqC,CAAC,QAAQ,CAAC,CAAC;YAEhD,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,cAE8B,EAC9B,+BAE8D;IAE9D,MAAM,qCAAqC,GAIV,2BAA2B,CAC1D,cAAc,EACd,+BAA+B,CAChC,CAAC;IAEF,OAAO,CACL,MAAc,EACd,WAAwC,EACxC,cAAsB,EAChB,EAAE;QACR,IAAI,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;YAChD,IAAA,iDAAwB,EACtB,MAAM,EACN,iDAAuB,EACvB,iDAAuB,EACvB,IAAA,yFAA2C,EACzC,qCAAqC,CAAC,MAAM,CAAC,EAC7C,cAAc,CACf,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb;qCAEE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAC7B,eAAe,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,CAC1C,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,cAE8B,EAC9B,+BAE8D;IAE9D,MAAM,qCAAqC,GAIV,2BAA2B,CAC1D,cAAc,EACd,+BAA+B,CAChC,CAAC;IAEF,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAQ,EAAE;QAC5D,IAAA,iDAAwB,EACtB,MAAM,CAAC,WAAW,EAClB,iDAAuB,EACvB,iDAAuB,EACvB,IAAA,mEAAgC,EAC9B,qCAAqC,CAAC,MAAM,CAAC,EAC7C,WAAW,CACZ,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAe,EACf,WAAwC;IAExC,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,WAAW,KAAK,SAAS,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"injectBase.js","sourceRoot":"","sources":["../../../../src/metadata/decorators/injectBase.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { LazyServiceIdentifier, ServiceIdentifier } from '@inversifyjs/common';
2
- export declare function multiInject(serviceIdentifier: ServiceIdentifier | LazyServiceIdentifier): ParameterDecorator & PropertyDecorator;
2
+ export declare function multiInject(serviceIdentifier: ServiceIdentifier | LazyServiceIdentifier): MethodDecorator & ParameterDecorator & PropertyDecorator;
3
3
  //# sourceMappingURL=multiInject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiInject.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/multiInject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAU/E,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,iBAAiB,GAAG,qBAAqB,GAC3D,kBAAkB,GAAG,iBAAiB,CA8BxC"}
1
+ {"version":3,"file":"multiInject.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/multiInject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAS/E,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,iBAAiB,GAAG,qBAAqB,GAC3D,eAAe,GAAG,kBAAkB,GAAG,iBAAiB,CAS1D"}