@shellicar/core-di 0.0.2 → 0.0.3

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 (118) hide show
  1. package/README.md +6 -0
  2. package/dist/index.cjs +2 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +70 -0
  5. package/dist/index.d.mts +70 -0
  6. package/dist/index.mjs +2 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +29 -30
  9. package/dist/cjs/ServiceCollection.d.ts +0 -13
  10. package/dist/cjs/ServiceCollection.d.ts.map +0 -1
  11. package/dist/cjs/ServiceCollection.js +0 -64
  12. package/dist/cjs/ServiceCollection.js.map +0 -1
  13. package/dist/cjs/ServiceProvider.d.ts +0 -22
  14. package/dist/cjs/ServiceProvider.d.ts.map +0 -1
  15. package/dist/cjs/ServiceProvider.js +0 -138
  16. package/dist/cjs/ServiceProvider.js.map +0 -1
  17. package/dist/cjs/constants.d.ts +0 -8
  18. package/dist/cjs/constants.d.ts.map +0 -1
  19. package/dist/cjs/constants.js +0 -12
  20. package/dist/cjs/constants.js.map +0 -1
  21. package/dist/cjs/createServiceCollection.d.ts +0 -3
  22. package/dist/cjs/createServiceCollection.d.ts.map +0 -1
  23. package/dist/cjs/createServiceCollection.js +0 -7
  24. package/dist/cjs/createServiceCollection.js.map +0 -1
  25. package/dist/cjs/debug.d.ts +0 -4
  26. package/dist/cjs/debug.d.ts.map +0 -1
  27. package/dist/cjs/debug.js +0 -25
  28. package/dist/cjs/debug.js.map +0 -1
  29. package/dist/cjs/dependsOn.d.ts +0 -3
  30. package/dist/cjs/dependsOn.d.ts.map +0 -1
  31. package/dist/cjs/dependsOn.js +0 -24
  32. package/dist/cjs/dependsOn.js.map +0 -1
  33. package/dist/cjs/errors.d.ts +0 -11
  34. package/dist/cjs/errors.d.ts.map +0 -1
  35. package/dist/cjs/errors.js +0 -22
  36. package/dist/cjs/errors.js.map +0 -1
  37. package/dist/cjs/index.d.ts +0 -6
  38. package/dist/cjs/index.d.ts.map +0 -1
  39. package/dist/cjs/index.js +0 -17
  40. package/dist/cjs/index.js.map +0 -1
  41. package/dist/cjs/interfaces.d.ts +0 -22
  42. package/dist/cjs/interfaces.d.ts.map +0 -1
  43. package/dist/cjs/interfaces.js +0 -19
  44. package/dist/cjs/interfaces.js.map +0 -1
  45. package/dist/cjs/metadata.d.ts +0 -5
  46. package/dist/cjs/metadata.d.ts.map +0 -1
  47. package/dist/cjs/metadata.js +0 -23
  48. package/dist/cjs/metadata.js.map +0 -1
  49. package/dist/cjs/types.d.ts +0 -35
  50. package/dist/cjs/types.d.ts.map +0 -1
  51. package/dist/cjs/types.js +0 -3
  52. package/dist/cjs/types.js.map +0 -1
  53. package/dist/esm/ServiceCollection.d.ts +0 -13
  54. package/dist/esm/ServiceCollection.d.ts.map +0 -1
  55. package/dist/esm/ServiceCollection.js +0 -60
  56. package/dist/esm/ServiceCollection.js.map +0 -1
  57. package/dist/esm/ServiceProvider.d.ts +0 -22
  58. package/dist/esm/ServiceProvider.d.ts.map +0 -1
  59. package/dist/esm/ServiceProvider.js +0 -134
  60. package/dist/esm/ServiceProvider.js.map +0 -1
  61. package/dist/esm/constants.d.ts +0 -8
  62. package/dist/esm/constants.d.ts.map +0 -1
  63. package/dist/esm/constants.js +0 -9
  64. package/dist/esm/constants.js.map +0 -1
  65. package/dist/esm/createServiceCollection.d.ts +0 -3
  66. package/dist/esm/createServiceCollection.d.ts.map +0 -1
  67. package/dist/esm/createServiceCollection.js +0 -3
  68. package/dist/esm/createServiceCollection.js.map +0 -1
  69. package/dist/esm/debug.d.ts +0 -4
  70. package/dist/esm/debug.d.ts.map +0 -1
  71. package/dist/esm/debug.js +0 -22
  72. package/dist/esm/debug.js.map +0 -1
  73. package/dist/esm/dependsOn.d.ts +0 -3
  74. package/dist/esm/dependsOn.d.ts.map +0 -1
  75. package/dist/esm/dependsOn.js +0 -20
  76. package/dist/esm/dependsOn.js.map +0 -1
  77. package/dist/esm/errors.d.ts +0 -11
  78. package/dist/esm/errors.d.ts.map +0 -1
  79. package/dist/esm/errors.js +0 -16
  80. package/dist/esm/errors.js.map +0 -1
  81. package/dist/esm/index.d.ts +0 -6
  82. package/dist/esm/index.d.ts.map +0 -1
  83. package/dist/esm/index.js +0 -5
  84. package/dist/esm/index.js.map +0 -1
  85. package/dist/esm/interfaces.d.ts +0 -22
  86. package/dist/esm/interfaces.d.ts.map +0 -1
  87. package/dist/esm/interfaces.js +0 -11
  88. package/dist/esm/interfaces.js.map +0 -1
  89. package/dist/esm/metadata.d.ts +0 -5
  90. package/dist/esm/metadata.d.ts.map +0 -1
  91. package/dist/esm/metadata.js +0 -18
  92. package/dist/esm/metadata.js.map +0 -1
  93. package/dist/esm/types.d.ts +0 -35
  94. package/dist/esm/types.d.ts.map +0 -1
  95. package/dist/esm/types.js +0 -2
  96. package/dist/esm/types.js.map +0 -1
  97. package/dist/types/ServiceCollection.d.ts +0 -13
  98. package/dist/types/ServiceCollection.d.ts.map +0 -1
  99. package/dist/types/ServiceProvider.d.ts +0 -22
  100. package/dist/types/ServiceProvider.d.ts.map +0 -1
  101. package/dist/types/constants.d.ts +0 -8
  102. package/dist/types/constants.d.ts.map +0 -1
  103. package/dist/types/createServiceCollection.d.ts +0 -3
  104. package/dist/types/createServiceCollection.d.ts.map +0 -1
  105. package/dist/types/debug.d.ts +0 -4
  106. package/dist/types/debug.d.ts.map +0 -1
  107. package/dist/types/dependsOn.d.ts +0 -3
  108. package/dist/types/dependsOn.d.ts.map +0 -1
  109. package/dist/types/errors.d.ts +0 -11
  110. package/dist/types/errors.d.ts.map +0 -1
  111. package/dist/types/index.d.ts +0 -6
  112. package/dist/types/index.d.ts.map +0 -1
  113. package/dist/types/interfaces.d.ts +0 -22
  114. package/dist/types/interfaces.d.ts.map +0 -1
  115. package/dist/types/metadata.d.ts +0 -5
  116. package/dist/types/metadata.d.ts.map +0 -1
  117. package/dist/types/types.d.ts +0 -35
  118. package/dist/types/types.d.ts.map +0 -1
@@ -1,134 +0,0 @@
1
- import { log } from './debug';
2
- import { DesignDependenciesKey, Lifetime } from './constants';
3
- import { IServiceScope } from './interfaces';
4
- import { getMetadata } from './metadata';
5
- import { SelfDependencyError, MultipleRegistrationError, UnregisteredServiceError } from './errors';
6
- const createResolveMap = () => new Map();
7
- export class ServiceProvider {
8
- constructor(services, singletons = createResolveMap()) {
9
- Object.defineProperty(this, "services", {
10
- enumerable: true,
11
- configurable: true,
12
- writable: true,
13
- value: services
14
- });
15
- Object.defineProperty(this, "singletons", {
16
- enumerable: true,
17
- configurable: true,
18
- writable: true,
19
- value: singletons
20
- });
21
- Object.defineProperty(this, "scoped", {
22
- enumerable: true,
23
- configurable: true,
24
- writable: true,
25
- value: createResolveMap()
26
- });
27
- Object.defineProperty(this, "created", {
28
- enumerable: true,
29
- configurable: true,
30
- writable: true,
31
- value: []
32
- });
33
- }
34
- [Symbol.dispose]() {
35
- this.created.forEach(x => x[Symbol.dispose]());
36
- }
37
- resolveFrom(identifier, descriptor, lifetimeMap, currentResolve) {
38
- let resolvedInstances = lifetimeMap.get(identifier);
39
- if (resolvedInstances === undefined) {
40
- resolvedInstances = new Map();
41
- lifetimeMap.set(identifier, resolvedInstances);
42
- }
43
- let instance = resolvedInstances.get(descriptor.implementation);
44
- if (instance === undefined) {
45
- instance = this.createInstance(descriptor, currentResolve);
46
- resolvedInstances.set(descriptor.implementation, instance);
47
- this.setDependencies(descriptor.implementation, instance, currentResolve);
48
- }
49
- return instance;
50
- }
51
- resolveInternal(identifier, descriptor, currentResolve) {
52
- const mapping = {
53
- [Lifetime.Singleton]: this.singletons,
54
- [Lifetime.Scoped]: this.scoped,
55
- [Lifetime.Resolve]: currentResolve,
56
- };
57
- const sourceMap = mapping[descriptor.lifetime];
58
- if (sourceMap === undefined) {
59
- const instance = this.createInstance(descriptor, currentResolve);
60
- this.setDependencies(descriptor.implementation, instance, currentResolve);
61
- return instance;
62
- }
63
- return this.resolveFrom(identifier, descriptor, sourceMap, currentResolve);
64
- }
65
- resolveAll(identifier, currentResolve = createResolveMap()) {
66
- const descriptors = this.services.get(identifier);
67
- return descriptors.map(descriptor => this.resolveInternal(identifier, descriptor, currentResolve));
68
- }
69
- resolve(identifier, currentResolve = createResolveMap()) {
70
- if (identifier.prototype === IServiceScope.prototype) {
71
- return this;
72
- }
73
- const descriptors = this.services.get(identifier);
74
- if (descriptors.length === 0) {
75
- throw new UnregisteredServiceError(identifier);
76
- }
77
- if (descriptors.length > 1) {
78
- throw new MultipleRegistrationError(identifier);
79
- }
80
- const descriptor = descriptors[0];
81
- return this.resolveInternal(identifier, descriptor, currentResolve);
82
- }
83
- createInstance(descriptor, currentResolve) {
84
- let instance;
85
- if ('factory' in descriptor) {
86
- const factory = descriptor.factory;
87
- const resolve = (identifier) => this.resolve(identifier, currentResolve);
88
- const resolveAll = (identifier) => this.resolveAll(identifier, currentResolve);
89
- const createScope = () => this.createScope();
90
- // proxy requests to keep current resolved types
91
- instance = factory({
92
- resolve: resolve,
93
- resolveAll: resolveAll,
94
- createScope: createScope,
95
- // [Symbol.dispose]: () => {},
96
- });
97
- }
98
- else {
99
- try {
100
- instance = new descriptor.implementation();
101
- }
102
- catch (err) {
103
- console.error(err, 'Error creating service', {
104
- descriptor,
105
- });
106
- throw err;
107
- }
108
- }
109
- if (descriptor.lifetime !== Lifetime.Singleton && Symbol.dispose in instance) {
110
- this.created.push(instance);
111
- }
112
- return instance;
113
- }
114
- createScope() {
115
- return new ServiceProvider(this.services, this.singletons);
116
- }
117
- setDependencies(type, instance, currentResolve) {
118
- var _a;
119
- const dependencies = (_a = getMetadata(DesignDependenciesKey, type)) !== null && _a !== void 0 ? _a : {};
120
- log('Dependencies', type.name, dependencies);
121
- for (const [key, identifier] of Object.entries(dependencies)) {
122
- if (identifier !== type) {
123
- log('Resolving', identifier, 'for', type.name);
124
- const dep = this.resolve(identifier, currentResolve);
125
- instance[key] = dep;
126
- }
127
- else {
128
- throw new SelfDependencyError();
129
- }
130
- }
131
- return instance;
132
- }
133
- }
134
- //# sourceMappingURL=ServiceProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceProvider.js","sourceRoot":"","sources":["../../src/ServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAMpG,MAAM,gBAAgB,GAAG,GAAwC,EAAE,CAAC,IAAI,GAAG,EAA0D,CAAC;AAEtI,MAAM,OAAO,eAAe;IAI1B,YACU,QAA4B,EAC5B,aAAa,gBAAgB,EAAE;QADvC;;;;mBAAQ,QAAQ;WAAoB;QACpC;;;;mBAAQ,UAAU;WAAqB;QALjC;;;;mBAAS,gBAAgB,EAAE;WAAC;QAC5B;;;;mBAAyB,EAAE;WAAC;IAKjC,CAAC;IAEJ,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,WAAW,CACjB,UAAgC,EAChC,UAAgC,EAChC,WAA0B,EAC1B,cAA6B;QAE7B,IAAI,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC9B,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAC3D,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,CAAI,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,eAAe,CACrB,UAAgC,EAChC,UAAgC,EAChC,cAA6B;QAE7B,MAAM,OAAO,GAA+C;YAC1D,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU;YACrC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM;YAC9B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc;SACnC,CAAC;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACjE,IAAI,CAAC,eAAe,CAAI,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC7E,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IAEM,UAAU,CACf,UAAgC,EAChC,iBAAiB,gBAAgB,EAAK;QAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAI,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IACxG,CAAC;IAEM,OAAO,CACZ,UAAgC,EAChC,iBAAiB,gBAAgB,EAAK;QAEtC,IAAI,UAAU,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;YACrD,OAAO,IAAoB,CAAC;QAC9B,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAEO,cAAc,CAAuB,UAAgC,EAAE,cAA6B;QAC1G,IAAI,QAAW,CAAC;QAChB,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,UAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACjG,MAAM,UAAU,GAAG,CAAC,UAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACvG,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAE7C,gDAAgD;YAChD,QAAQ,GAAG,OAAO,CAAC;gBACjB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,WAAW;gBACxB,8BAA8B;aAC/B,CAAC,CAAC;QACL,CAAC;aACI,CAAC;YACJ,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;YAC7C,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,wBAAwB,EAAE;oBAC3C,UAAU;iBACX,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAEO,eAAe,CACrB,IAAW,EACX,QAAW,EACX,cAA6B;;QAE7B,MAAM,YAAY,GAAG,MAAA,WAAW,CAAI,qBAAqB,EAAE,IAAI,CAAC,mCAAI,EAAE,CAAC;QACvE,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBACpD,QAAoC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,mBAAmB,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- export declare enum Lifetime {
2
- Resolve = "RESOLVE",
3
- Transient = "TRANSIENT",
4
- Scoped = "SCOPED",
5
- Singleton = "SINGLETON"
6
- }
7
- export declare const DesignDependenciesKey = "design:dependencies";
8
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,qBAAqB,wBAAwB,CAAC"}
@@ -1,9 +0,0 @@
1
- export var Lifetime;
2
- (function (Lifetime) {
3
- Lifetime["Resolve"] = "RESOLVE";
4
- Lifetime["Transient"] = "TRANSIENT";
5
- Lifetime["Scoped"] = "SCOPED";
6
- Lifetime["Singleton"] = "SINGLETON";
7
- })(Lifetime || (Lifetime = {}));
8
- export const DesignDependenciesKey = 'design:dependencies';
9
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { IServiceCollection } from './interfaces';
2
- export declare const createServiceCollection: () => IServiceCollection;
3
- //# sourceMappingURL=createServiceCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createServiceCollection.d.ts","sourceRoot":"","sources":["../../src/createServiceCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,uBAAuB,QAAO,kBAAmE,CAAC"}
@@ -1,3 +0,0 @@
1
- import { ServiceCollection } from './ServiceCollection';
2
- export const createServiceCollection = () => new ServiceCollection();
3
- //# sourceMappingURL=createServiceCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createServiceCollection.js","sourceRoot":"","sources":["../../src/createServiceCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAuB,EAAE,CAAC,IAAI,iBAAiB,EAAwB,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const log: (message?: string, ...optionalParams: unknown[]) => void;
2
- export declare const enable: () => void;
3
- export declare const disable: () => void;
4
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,GAAG,aATO,MAAM,qBAAqB,OAAO,EAAE,SASjB,CAAC;AAC3C,eAAO,MAAM,MAAM,YAA6B,CAAC;AACjD,eAAO,MAAM,OAAO,YAA8B,CAAC"}
package/dist/esm/debug.js DELETED
@@ -1,22 +0,0 @@
1
- class DebugLogger {
2
- constructor() {
3
- Object.defineProperty(this, "debugging", {
4
- enumerable: true,
5
- configurable: true,
6
- writable: true,
7
- value: false
8
- });
9
- }
10
- enable() { this.debugging = true; }
11
- disable() { this.debugging = false; }
12
- log(message, ...optionalParams) {
13
- if (this.debugging) {
14
- console.log(message, ...optionalParams);
15
- }
16
- }
17
- }
18
- const logger = new DebugLogger();
19
- export const log = logger.log.bind(logger);
20
- export const enable = logger.enable.bind(logger);
21
- export const disable = logger.disable.bind(logger);
22
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AACA,MAAM,WAAW;IAAjB;QACU;;;;mBAAY,KAAK;WAAC;IAS5B,CAAC;IAPQ,MAAM,KAAK,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;IACnC,OAAO,KAAK,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;IACrC,GAAG,CAAC,OAAgB,EAAE,GAAG,cAAyB;QACvD,IAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { ServiceIdentifier, SourceType } from './types';
2
- export declare const dependsOn: <T extends SourceType>(identifier: ServiceIdentifier<T>) => (value: undefined, ctx: ClassFieldDecoratorContext) => (this: object, initialValue: any) => any;
3
- //# sourceMappingURL=dependsOn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependsOn.d.ts","sourceRoot":"","sources":["../../src/dependsOn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY7D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,UAAU,cAAc,iBAAiB,CAAC,CAAC,CAAC,aAC/D,SAAS,OAAO,0BAA0B,YAChC,MAAM,gBAAgB,GAAG,QAMnD,CAAC"}
@@ -1,20 +0,0 @@
1
- import { DesignDependenciesKey } from './constants';
2
- import { defineMetadata, getMetadata } from './metadata';
3
- const tagProperty = (metadataKey, annotationTarget, name, identifier) => {
4
- let existing = getMetadata(metadataKey, annotationTarget);
5
- if (existing === undefined) {
6
- existing = {};
7
- defineMetadata(metadataKey, existing, annotationTarget);
8
- }
9
- existing[name] = identifier;
10
- };
11
- export const dependsOn = (identifier) => {
12
- return (value, ctx) => {
13
- return function (initialValue) {
14
- const target = this.constructor;
15
- tagProperty(DesignDependenciesKey, target, ctx.name, identifier);
16
- return initialValue;
17
- };
18
- };
19
- };
20
- //# sourceMappingURL=dependsOn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependsOn.js","sourceRoot":"","sources":["../../src/dependsOn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,WAAW,GAAG,CAAuB,WAAmB,EAAE,gBAAwB,EAAE,IAAqB,EAAE,UAAgC,EAAE,EAAE;IACnJ,IAAI,QAAQ,GAAG,WAAW,CAAI,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,QAAQ,GAAG,EAAE,CAAC;QACd,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAuB,UAAgC,EAAE,EAAE;IAClF,OAAO,CAAC,KAAgB,EAAE,GAA+B,EAAE,EAAE;QAC3D,OAAO,UAAwB,YAAiB;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { ServiceIdentifier } from './types';
2
- export declare class UnregisteredServiceError<T extends object> extends Error {
3
- constructor(identifier: ServiceIdentifier<T>);
4
- }
5
- export declare class MultipleRegistrationError<T extends object> extends Error {
6
- constructor(identifier: ServiceIdentifier<T>);
7
- }
8
- export declare class SelfDependencyError extends Error {
9
- constructor();
10
- }
11
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,qBAAa,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,KAAK;gBACvD,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;CAG7C;AAED,qBAAa,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,KAAK;gBACxD,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;CAG7C;AAED,qBAAa,mBAAoB,SAAQ,KAAK;;CAI7C"}
@@ -1,16 +0,0 @@
1
- export class UnregisteredServiceError extends Error {
2
- constructor(identifier) {
3
- super(`Resolving service that has not been registered: ${identifier}`);
4
- }
5
- }
6
- export class MultipleRegistrationError extends Error {
7
- constructor(identifier) {
8
- super(`Multiple services have been registered: ${identifier}`);
9
- }
10
- }
11
- export class SelfDependencyError extends Error {
12
- constructor() {
13
- super('Service depending on itself');
14
- }
15
- }
16
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAA2C,SAAQ,KAAK;IACnE,YAAY,UAAgC;QAC1C,KAAK,CAAC,mDAAmD,UAAU,EAAE,CAAC,CAAC;IACzE,CAAC;CACF;AAED,MAAM,OAAO,yBAA4C,SAAQ,KAAK;IACpE,YAAY,UAAgC;QAC1C,KAAK,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- export { createServiceCollection } from './createServiceCollection';
2
- export { dependsOn } from './dependsOn';
3
- export { IDisposable, IServiceCollection, IServiceModule, IServiceProvider, IServiceScope } from './interfaces';
4
- export type { AbstractNewable, InstanceFactory, LifetimeBuilder, MetadataType, Newable, ServiceBuilder, ServiceDescriptor, ServiceDescriptorConcrete, ServiceDescriptorFactory, ServiceIdentifier, ServiceImplementation, ServiceModuleType, SourceType, } from './types';
5
- export { enable, disable, } from './debug';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChH,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,GAAG,MAAM,SAAS,CAAC;AAC1Q,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,SAAS,CAAC"}
package/dist/esm/index.js DELETED
@@ -1,5 +0,0 @@
1
- export { createServiceCollection } from './createServiceCollection';
2
- export { dependsOn } from './dependsOn';
3
- export { IDisposable, IServiceCollection, IServiceModule, IServiceProvider, IServiceScope } from './interfaces';
4
- export { enable, disable, } from './debug';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhH,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,SAAS,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { SourceType, ServiceBuilder, ServiceDescriptor, ServiceIdentifier, ServiceModuleType } from './types';
2
- export declare abstract class IDisposable {
3
- abstract [Symbol.dispose]: () => void;
4
- }
5
- export declare abstract class IServiceModule {
6
- abstract registerServices(services: IServiceCollection): void;
7
- }
8
- export declare abstract class IServiceScope {
9
- abstract resolve<T extends SourceType>(identifier: ServiceIdentifier<T>): T;
10
- abstract resolveAll<T extends SourceType>(identifier: ServiceIdentifier<T>): T[];
11
- }
12
- export declare abstract class IServiceProvider extends IServiceScope {
13
- abstract createScope(): IServiceScope & IDisposable;
14
- }
15
- export declare abstract class IServiceCollection {
16
- abstract get<T extends SourceType>(key: ServiceIdentifier<T>): ServiceDescriptor<T>[];
17
- abstract register<T extends SourceType>(identifier: ServiceIdentifier<T>): ServiceBuilder<T>;
18
- abstract registerModules(modules: ServiceModuleType[]): void;
19
- abstract buildProvider(): IServiceProvider;
20
- abstract clone(): IServiceCollection;
21
- }
22
- //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEnH,8BAAsB,WAAW;IAC/B,SAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9C;AAED,8BAAsB,cAAc;aAClB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;CACrE;AAED,8BAAsB,aAAa;aACjB,OAAO,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;aAClE,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;CACxF;AAED,8BAAsB,gBAAiB,SAAQ,aAAa;aAC1C,WAAW,IAAI,aAAa,GAAG,WAAW;CAC3D;AAED,8BAAsB,kBAAkB;aACtB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;aAC5E,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;aACnF,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI;aACnD,aAAa,IAAI,gBAAgB;aACjC,KAAK,IAAI,kBAAkB;CAC5C"}
@@ -1,11 +0,0 @@
1
- export class IDisposable {
2
- }
3
- export class IServiceModule {
4
- }
5
- export class IServiceScope {
6
- }
7
- export class IServiceProvider extends IServiceScope {
8
- }
9
- export class IServiceCollection {
10
- }
11
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,WAAW;CAEhC;AAED,MAAM,OAAgB,cAAc;CAEnC;AAED,MAAM,OAAgB,aAAa;CAGlC;AAED,MAAM,OAAgB,gBAAiB,SAAQ,aAAa;CAE3D;AAED,MAAM,OAAgB,kBAAkB;CAMvC"}
@@ -1,5 +0,0 @@
1
- import '@abraham/reflection';
2
- import type { MetadataType, SourceType } from './types';
3
- export declare const getMetadata: <T extends SourceType>(key: string, obj: object) => MetadataType<T> | undefined;
4
- export declare const defineMetadata: <T extends SourceType>(key: string, metadata: MetadataType<T>, obj: object) => void;
5
- //# sourceMappingURL=metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,UAAU,OAAO,MAAM,OAAO,MAAM,KAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAS9F,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,UAAU,OAAO,MAAM,YAAY,YAAY,CAAC,CAAC,CAAC,OAAO,MAAM,SAKvG,CAAC"}
@@ -1,18 +0,0 @@
1
- import '@abraham/reflection';
2
- export const getMetadata = (key, obj) => {
3
- if (Reflect.getMetadata === undefined) {
4
- throw new Error('Please import "reflect-metadata"');
5
- }
6
- const result = Reflect.getMetadata(key, obj);
7
- if (result === undefined) {
8
- return undefined;
9
- }
10
- return result;
11
- };
12
- export const defineMetadata = (key, metadata, obj) => {
13
- if (Reflect.defineMetadata === undefined) {
14
- throw new Error('Please import "reflect-metadata"');
15
- }
16
- Reflect.defineMetadata(key, metadata, obj);
17
- };
18
- //# sourceMappingURL=metadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAG7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAuB,GAAW,EAAE,GAAW,EAA+B,EAAE;IACzG,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAyB,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAuB,GAAW,EAAE,QAAyB,EAAE,GAAW,EAAE,EAAE;IAC1G,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC,CAAC"}
@@ -1,35 +0,0 @@
1
- import type { Lifetime } from './constants';
2
- import type { IServiceModule, IServiceProvider, IServiceScope } from './interfaces';
3
- export type SourceType = object;
4
- export type AbstractNewable<T> = abstract new (...args: any[]) => T;
5
- export type Newable<T> = new (...args: any[]) => T;
6
- export type ServiceIdentifier<T extends SourceType> = {
7
- prototype: T;
8
- name: string;
9
- };
10
- export type ServiceImplementation<T extends SourceType> = Newable<T>;
11
- export type InstanceFactory<T extends SourceType> = (x: IServiceScope & IServiceProvider) => T;
12
- export type ServiceModuleType = Newable<IServiceModule>;
13
- export type ServiceDescriptorFactory<T extends SourceType> = {
14
- implementation: ServiceIdentifier<T>;
15
- factory: InstanceFactory<T>;
16
- lifetime: Lifetime;
17
- };
18
- export type ServiceDescriptorConcrete<T extends SourceType> = {
19
- implementation: ServiceImplementation<T>;
20
- lifetime: Lifetime;
21
- };
22
- export type ServiceDescriptor<T extends SourceType> = ServiceDescriptorConcrete<T> | ServiceDescriptorFactory<T>;
23
- export type LifetimeBuilder = {
24
- singleton: () => LifetimeBuilder;
25
- scoped: () => LifetimeBuilder;
26
- transient: () => LifetimeBuilder;
27
- };
28
- export type ServiceBuilder<T extends SourceType> = {
29
- to: {
30
- (implementation: ServiceImplementation<T>): LifetimeBuilder;
31
- (implementation: ServiceIdentifier<T>, factory: InstanceFactory<T>): LifetimeBuilder;
32
- };
33
- };
34
- export type MetadataType<T extends SourceType> = Record<string | symbol, ServiceIdentifier<T>>;
35
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACpE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEnD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,IAAI;IAAE,SAAS,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAErE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,CAAC,EAAE,aAAa,GAAG,gBAAgB,KAAK,CAAC,CAAC;AAE/F,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAExD,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,UAAU,IAAI;IAC3D,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,UAAU,IAAI;IAC5D,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,IAAI,yBAAyB,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAOjH,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,eAAe,CAAC;IAC9B,SAAS,EAAE,MAAM,eAAe,CAAC;CAClC,CAAC;AACF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,UAAU,IAAI;IACjD,EAAE,EAAE;QACF,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;QAC5D,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;KACtF,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/dist/esm/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import type { SourceType, ServiceBuilder, ServiceDescriptor, ServiceIdentifier, Newable } from './types';
2
- import type { IServiceCollection, IServiceModule, IServiceProvider } from './interfaces';
3
- export declare class ServiceCollection implements IServiceCollection {
4
- private readonly services;
5
- constructor(services?: Map<ServiceIdentifier<any>, ServiceDescriptor<any>[]>);
6
- registerModules(modules: Newable<IServiceModule>[]): void;
7
- get<T extends SourceType>(key: ServiceIdentifier<T>): ServiceDescriptor<T>[];
8
- register<T extends SourceType>(identifier: ServiceIdentifier<T>): ServiceBuilder<T>;
9
- private addService;
10
- clone(): IServiceCollection;
11
- buildProvider(): IServiceProvider;
12
- }
13
- //# sourceMappingURL=ServiceCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceCollection.d.ts","sourceRoot":"","sources":["../../src/ServiceCollection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAmB,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAyB,OAAO,EAAE,MAAM,SAAS,CAAC;AACjJ,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIzF,qBAAa,iBAAkB,YAAW,kBAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,wDAA8D;IAG5F,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI;IAOhE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;IAI5E,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAgBnF,OAAO,CAAC,UAAU;IAUX,KAAK,IAAI,kBAAkB;IAU3B,aAAa,IAAI,gBAAgB;CAIzC"}
@@ -1,22 +0,0 @@
1
- import type { IServiceProvider, IDisposable, IServiceCollection } from './interfaces';
2
- import { IServiceScope } from './interfaces';
3
- import type { ServiceIdentifier, ServiceImplementation, SourceType } from './types';
4
- type Id<T extends SourceType> = ServiceIdentifier<T> | ServiceImplementation<T>;
5
- type ResolveMap<T extends SourceType> = Map<ServiceIdentifier<T>, Map<Id<T>, T>>;
6
- export declare class ServiceProvider implements IServiceProvider, IServiceScope {
7
- private services;
8
- private singletons;
9
- private scoped;
10
- private created;
11
- constructor(services: IServiceCollection, singletons?: ResolveMap<object>);
12
- [Symbol.dispose](): void;
13
- private resolveFrom;
14
- private resolveInternal;
15
- resolveAll<T extends SourceType>(identifier: ServiceIdentifier<T>, currentResolve?: ResolveMap<T>): T[];
16
- resolve<T extends SourceType>(identifier: ServiceIdentifier<T>, currentResolve?: ResolveMap<T>): T;
17
- private createInstance;
18
- createScope(): IServiceScope & IDisposable;
19
- private setDependencies;
20
- }
21
- export {};
22
- //# sourceMappingURL=ServiceProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceProvider.d.ts","sourceRoot":"","sources":["../../src/ServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAC,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAqB,qBAAqB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGvG,KAAK,EAAE,CAAC,CAAC,SAAS,UAAU,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAEhF,KAAK,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAIjF,qBAAa,eAAgB,YAAW,gBAAgB,EAAE,aAAa;IAKnE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAqB;gBAG1B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,qBAAqB;IAGzC,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,eAAe;IAmBhB,UAAU,CAAC,CAAC,SAAS,UAAU,EACpC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAChC,cAAc,gBAAwB,GACrC,CAAC,EAAE;IAKC,OAAO,CAAC,CAAC,SAAS,UAAU,EACjC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAChC,cAAc,gBAAwB,GACrC,CAAC;IAiBJ,OAAO,CAAC,cAAc;IAiCf,WAAW,IAAI,aAAa,GAAG,WAAW;IAIjD,OAAO,CAAC,eAAe;CAkBxB"}
@@ -1,8 +0,0 @@
1
- export declare enum Lifetime {
2
- Resolve = "RESOLVE",
3
- Transient = "TRANSIENT",
4
- Scoped = "SCOPED",
5
- Singleton = "SINGLETON"
6
- }
7
- export declare const DesignDependenciesKey = "design:dependencies";
8
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,qBAAqB,wBAAwB,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { IServiceCollection } from './interfaces';
2
- export declare const createServiceCollection: () => IServiceCollection;
3
- //# sourceMappingURL=createServiceCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createServiceCollection.d.ts","sourceRoot":"","sources":["../../src/createServiceCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,uBAAuB,QAAO,kBAAmE,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const log: (message?: string, ...optionalParams: unknown[]) => void;
2
- export declare const enable: () => void;
3
- export declare const disable: () => void;
4
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,GAAG,aATO,MAAM,qBAAqB,OAAO,EAAE,SASjB,CAAC;AAC3C,eAAO,MAAM,MAAM,YAA6B,CAAC;AACjD,eAAO,MAAM,OAAO,YAA8B,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { ServiceIdentifier, SourceType } from './types';
2
- export declare const dependsOn: <T extends SourceType>(identifier: ServiceIdentifier<T>) => (value: undefined, ctx: ClassFieldDecoratorContext) => (this: object, initialValue: any) => any;
3
- //# sourceMappingURL=dependsOn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependsOn.d.ts","sourceRoot":"","sources":["../../src/dependsOn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY7D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,UAAU,cAAc,iBAAiB,CAAC,CAAC,CAAC,aAC/D,SAAS,OAAO,0BAA0B,YAChC,MAAM,gBAAgB,GAAG,QAMnD,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { ServiceIdentifier } from './types';
2
- export declare class UnregisteredServiceError<T extends object> extends Error {
3
- constructor(identifier: ServiceIdentifier<T>);
4
- }
5
- export declare class MultipleRegistrationError<T extends object> extends Error {
6
- constructor(identifier: ServiceIdentifier<T>);
7
- }
8
- export declare class SelfDependencyError extends Error {
9
- constructor();
10
- }
11
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,qBAAa,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,KAAK;gBACvD,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;CAG7C;AAED,qBAAa,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,KAAK;gBACxD,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;CAG7C;AAED,qBAAa,mBAAoB,SAAQ,KAAK;;CAI7C"}
@@ -1,6 +0,0 @@
1
- export { createServiceCollection } from './createServiceCollection';
2
- export { dependsOn } from './dependsOn';
3
- export { IDisposable, IServiceCollection, IServiceModule, IServiceProvider, IServiceScope } from './interfaces';
4
- export type { AbstractNewable, InstanceFactory, LifetimeBuilder, MetadataType, Newable, ServiceBuilder, ServiceDescriptor, ServiceDescriptorConcrete, ServiceDescriptorFactory, ServiceIdentifier, ServiceImplementation, ServiceModuleType, SourceType, } from './types';
5
- export { enable, disable, } from './debug';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChH,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,GAAG,MAAM,SAAS,CAAC;AAC1Q,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,SAAS,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { SourceType, ServiceBuilder, ServiceDescriptor, ServiceIdentifier, ServiceModuleType } from './types';
2
- export declare abstract class IDisposable {
3
- abstract [Symbol.dispose]: () => void;
4
- }
5
- export declare abstract class IServiceModule {
6
- abstract registerServices(services: IServiceCollection): void;
7
- }
8
- export declare abstract class IServiceScope {
9
- abstract resolve<T extends SourceType>(identifier: ServiceIdentifier<T>): T;
10
- abstract resolveAll<T extends SourceType>(identifier: ServiceIdentifier<T>): T[];
11
- }
12
- export declare abstract class IServiceProvider extends IServiceScope {
13
- abstract createScope(): IServiceScope & IDisposable;
14
- }
15
- export declare abstract class IServiceCollection {
16
- abstract get<T extends SourceType>(key: ServiceIdentifier<T>): ServiceDescriptor<T>[];
17
- abstract register<T extends SourceType>(identifier: ServiceIdentifier<T>): ServiceBuilder<T>;
18
- abstract registerModules(modules: ServiceModuleType[]): void;
19
- abstract buildProvider(): IServiceProvider;
20
- abstract clone(): IServiceCollection;
21
- }
22
- //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEnH,8BAAsB,WAAW;IAC/B,SAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9C;AAED,8BAAsB,cAAc;aAClB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;CACrE;AAED,8BAAsB,aAAa;aACjB,OAAO,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;aAClE,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;CACxF;AAED,8BAAsB,gBAAiB,SAAQ,aAAa;aAC1C,WAAW,IAAI,aAAa,GAAG,WAAW;CAC3D;AAED,8BAAsB,kBAAkB;aACtB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;aAC5E,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;aACnF,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI;aACnD,aAAa,IAAI,gBAAgB;aACjC,KAAK,IAAI,kBAAkB;CAC5C"}
@@ -1,5 +0,0 @@
1
- import '@abraham/reflection';
2
- import type { MetadataType, SourceType } from './types';
3
- export declare const getMetadata: <T extends SourceType>(key: string, obj: object) => MetadataType<T> | undefined;
4
- export declare const defineMetadata: <T extends SourceType>(key: string, metadata: MetadataType<T>, obj: object) => void;
5
- //# sourceMappingURL=metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,UAAU,OAAO,MAAM,OAAO,MAAM,KAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAS9F,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,UAAU,OAAO,MAAM,YAAY,YAAY,CAAC,CAAC,CAAC,OAAO,MAAM,SAKvG,CAAC"}