@navios/di 0.5.1 → 0.6.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 (123) hide show
  1. package/CHANGELOG.md +146 -0
  2. package/README.md +196 -219
  3. package/docs/README.md +69 -11
  4. package/docs/api-reference.md +281 -117
  5. package/docs/container.md +220 -56
  6. package/docs/examples/request-scope-example.mts +2 -2
  7. package/docs/factory.md +3 -8
  8. package/docs/getting-started.md +37 -8
  9. package/docs/migration.md +318 -37
  10. package/docs/request-contexts.md +263 -175
  11. package/docs/scopes.md +79 -42
  12. package/lib/browser/index.d.mts +1577 -0
  13. package/lib/browser/index.d.mts.map +1 -0
  14. package/lib/browser/index.mjs +3012 -0
  15. package/lib/browser/index.mjs.map +1 -0
  16. package/lib/index-S_qX2VLI.d.mts +1211 -0
  17. package/lib/index-S_qX2VLI.d.mts.map +1 -0
  18. package/lib/index-fKPuT65j.d.cts +1206 -0
  19. package/lib/index-fKPuT65j.d.cts.map +1 -0
  20. package/lib/index.cjs +389 -0
  21. package/lib/index.cjs.map +1 -0
  22. package/lib/index.d.cts +376 -0
  23. package/lib/index.d.cts.map +1 -0
  24. package/lib/index.d.mts +371 -78
  25. package/lib/index.d.mts.map +1 -0
  26. package/lib/index.mjs +325 -63
  27. package/lib/index.mjs.map +1 -1
  28. package/lib/testing/index.cjs +9 -0
  29. package/lib/testing/index.d.cts +2 -0
  30. package/lib/testing/index.d.mts +2 -2
  31. package/lib/testing/index.mjs +2 -72
  32. package/lib/testing-BMGmmxH7.cjs +2895 -0
  33. package/lib/testing-BMGmmxH7.cjs.map +1 -0
  34. package/lib/testing-DCXz8AJD.mjs +2655 -0
  35. package/lib/testing-DCXz8AJD.mjs.map +1 -0
  36. package/package.json +23 -1
  37. package/project.json +2 -2
  38. package/src/__tests__/async-local-storage.browser.spec.mts +240 -0
  39. package/src/__tests__/async-local-storage.spec.mts +333 -0
  40. package/src/__tests__/container.spec.mts +30 -25
  41. package/src/__tests__/e2e.browser.spec.mts +790 -0
  42. package/src/__tests__/e2e.spec.mts +1222 -0
  43. package/src/__tests__/errors.spec.mts +6 -6
  44. package/src/__tests__/factory.spec.mts +1 -1
  45. package/src/__tests__/get-injectors.spec.mts +1 -1
  46. package/src/__tests__/injectable.spec.mts +1 -1
  47. package/src/__tests__/injection-token.spec.mts +1 -1
  48. package/src/__tests__/library-findings.spec.mts +563 -0
  49. package/src/__tests__/registry.spec.mts +2 -2
  50. package/src/__tests__/request-scope.spec.mts +266 -274
  51. package/src/__tests__/service-instantiator.spec.mts +18 -17
  52. package/src/__tests__/service-locator-event-bus.spec.mts +9 -9
  53. package/src/__tests__/service-locator-manager.spec.mts +15 -15
  54. package/src/__tests__/service-locator.spec.mts +167 -244
  55. package/src/__tests__/unified-api.spec.mts +27 -27
  56. package/src/__type-tests__/factory.spec-d.mts +2 -2
  57. package/src/__type-tests__/inject.spec-d.mts +2 -2
  58. package/src/__type-tests__/injectable.spec-d.mts +1 -1
  59. package/src/browser.mts +16 -0
  60. package/src/container/container.mts +319 -0
  61. package/src/container/index.mts +2 -0
  62. package/src/container/scoped-container.mts +350 -0
  63. package/src/decorators/factory.decorator.mts +4 -4
  64. package/src/decorators/injectable.decorator.mts +5 -5
  65. package/src/errors/di-error.mts +13 -7
  66. package/src/errors/index.mts +0 -8
  67. package/src/index.mts +156 -15
  68. package/src/interfaces/container.interface.mts +82 -0
  69. package/src/interfaces/factory.interface.mts +2 -2
  70. package/src/interfaces/index.mts +1 -0
  71. package/src/internal/context/async-local-storage.mts +120 -0
  72. package/src/internal/context/factory-context.mts +18 -0
  73. package/src/internal/context/index.mts +3 -0
  74. package/src/{request-context-holder.mts → internal/context/request-context.mts} +40 -27
  75. package/src/internal/context/resolution-context.mts +63 -0
  76. package/src/internal/context/sync-local-storage.mts +51 -0
  77. package/src/internal/core/index.mts +5 -0
  78. package/src/internal/core/instance-resolver.mts +641 -0
  79. package/src/{service-instantiator.mts → internal/core/instantiator.mts} +31 -27
  80. package/src/internal/core/invalidator.mts +437 -0
  81. package/src/internal/core/service-locator.mts +202 -0
  82. package/src/{token-processor.mts → internal/core/token-processor.mts} +79 -60
  83. package/src/{base-instance-holder-manager.mts → internal/holder/base-holder-manager.mts} +91 -21
  84. package/src/internal/holder/holder-manager.mts +85 -0
  85. package/src/internal/holder/holder-storage.interface.mts +116 -0
  86. package/src/internal/holder/index.mts +6 -0
  87. package/src/internal/holder/instance-holder.mts +109 -0
  88. package/src/internal/holder/request-storage.mts +134 -0
  89. package/src/internal/holder/singleton-storage.mts +105 -0
  90. package/src/internal/index.mts +4 -0
  91. package/src/internal/lifecycle/circular-detector.mts +77 -0
  92. package/src/internal/lifecycle/index.mts +2 -0
  93. package/src/{service-locator-event-bus.mts → internal/lifecycle/lifecycle-event-bus.mts} +11 -4
  94. package/src/testing/__tests__/test-container.spec.mts +2 -2
  95. package/src/testing/test-container.mts +4 -4
  96. package/src/token/index.mts +2 -0
  97. package/src/{injection-token.mts → token/injection-token.mts} +1 -1
  98. package/src/{registry.mts → token/registry.mts} +1 -1
  99. package/src/utils/get-injectable-token.mts +1 -1
  100. package/src/utils/get-injectors.mts +32 -15
  101. package/src/utils/types.mts +1 -1
  102. package/tsdown.config.mts +67 -0
  103. package/lib/_tsup-dts-rollup.d.mts +0 -1283
  104. package/lib/_tsup-dts-rollup.d.ts +0 -1283
  105. package/lib/chunk-2M576LCC.mjs +0 -2043
  106. package/lib/chunk-2M576LCC.mjs.map +0 -1
  107. package/lib/index.d.ts +0 -78
  108. package/lib/index.js +0 -2127
  109. package/lib/index.js.map +0 -1
  110. package/lib/testing/index.d.ts +0 -2
  111. package/lib/testing/index.js +0 -2060
  112. package/lib/testing/index.js.map +0 -1
  113. package/lib/testing/index.mjs.map +0 -1
  114. package/src/container.mts +0 -227
  115. package/src/factory-context.mts +0 -8
  116. package/src/instance-resolver.mts +0 -559
  117. package/src/request-context-manager.mts +0 -149
  118. package/src/service-invalidator.mts +0 -429
  119. package/src/service-locator-instance-holder.mts +0 -70
  120. package/src/service-locator-manager.mts +0 -85
  121. package/src/service-locator.mts +0 -246
  122. package/tsup.config.mts +0 -12
  123. /package/src/{injector.mts → injectors.mts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-fKPuT65j.d.cts","names":[],"sources":["../src/utils/types.mts","../src/interfaces/factory.interface.mts","../src/interfaces/container.interface.mts","../src/utils/get-injectors.mts","../src/internal/context/factory-context.mts","../src/token/injection-token.mts","../src/enums/injectable-scope.enum.mts","../src/enums/injectable-type.enum.mts","../src/token/registry.mts","../src/errors/di-error.mts","../src/internal/holder/instance-holder.mts","../src/internal/holder/holder-storage.interface.mts","../src/internal/holder/base-holder-manager.mts","../src/internal/context/request-context.mts","../src/container/scoped-container.mts","../src/internal/lifecycle/lifecycle-event-bus.mts","../src/internal/holder/holder-manager.mts","../src/internal/core/invalidator.mts","../src/internal/core/token-processor.mts","../src/internal/core/service-locator.mts","../src/container/container.mts","../src/testing/test-container.mts"],"sourcesContent":[],"mappings":"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"}
package/lib/index.cjs ADDED
@@ -0,0 +1,389 @@
1
+ const require_testing = require('./testing-BMGmmxH7.cjs');
2
+ require("zod/v4");
3
+
4
+ //#region src/decorators/factory.decorator.mts
5
+ function Factory({ scope = require_testing.InjectableScope.Singleton, token, registry = require_testing.globalRegistry } = {}) {
6
+ return (target, context) => {
7
+ if (context && context.kind !== "class" || target instanceof Function && !context) throw new Error("[ServiceLocator] @Factory decorator can only be used on classes.");
8
+ let injectableToken = token ?? require_testing.InjectionToken.create(target);
9
+ registry.set(injectableToken, scope, target, require_testing.InjectableType.Factory);
10
+ target[require_testing.InjectableTokenMeta] = injectableToken;
11
+ return target;
12
+ };
13
+ }
14
+
15
+ //#endregion
16
+ //#region src/event-emitter.mts
17
+ function applyDecs2203RFactory() {
18
+ function createAddInitializerMethod(initializers, decoratorFinishedRef) {
19
+ return function addInitializer(initializer) {
20
+ assertNotFinished(decoratorFinishedRef, "addInitializer");
21
+ assertCallable(initializer, "An initializer");
22
+ initializers.push(initializer);
23
+ };
24
+ }
25
+ function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
26
+ var kindStr;
27
+ switch (kind) {
28
+ case 1:
29
+ kindStr = "accessor";
30
+ break;
31
+ case 2:
32
+ kindStr = "method";
33
+ break;
34
+ case 3:
35
+ kindStr = "getter";
36
+ break;
37
+ case 4:
38
+ kindStr = "setter";
39
+ break;
40
+ default: kindStr = "field";
41
+ }
42
+ var ctx = {
43
+ kind: kindStr,
44
+ name: isPrivate ? "#" + name : name,
45
+ static: isStatic,
46
+ private: isPrivate,
47
+ metadata
48
+ };
49
+ var decoratorFinishedRef = { v: false };
50
+ ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
51
+ var get, set;
52
+ if (kind === 0) if (isPrivate) {
53
+ get = desc.get;
54
+ set = desc.set;
55
+ } else {
56
+ get = function() {
57
+ return this[name];
58
+ };
59
+ set = function(v) {
60
+ this[name] = v;
61
+ };
62
+ }
63
+ else if (kind === 2) get = function() {
64
+ return desc.value;
65
+ };
66
+ else {
67
+ if (kind === 1 || kind === 3) get = function() {
68
+ return desc.get.call(this);
69
+ };
70
+ if (kind === 1 || kind === 4) set = function(v) {
71
+ desc.set.call(this, v);
72
+ };
73
+ }
74
+ ctx.access = get && set ? {
75
+ get,
76
+ set
77
+ } : get ? { get } : { set };
78
+ try {
79
+ return dec(value, ctx);
80
+ } finally {
81
+ decoratorFinishedRef.v = true;
82
+ }
83
+ }
84
+ function assertNotFinished(decoratorFinishedRef, fnName) {
85
+ if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
86
+ }
87
+ function assertCallable(fn, hint) {
88
+ if (typeof fn !== "function") throw new TypeError(hint + " must be a function");
89
+ }
90
+ function assertValidReturnValue(kind, value) {
91
+ var type = typeof value;
92
+ if (kind === 1) {
93
+ if (type !== "object" || value === null) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
94
+ if (value.get !== void 0) assertCallable(value.get, "accessor.get");
95
+ if (value.set !== void 0) assertCallable(value.set, "accessor.set");
96
+ if (value.init !== void 0) assertCallable(value.init, "accessor.init");
97
+ } else if (type !== "function") {
98
+ var hint;
99
+ if (kind === 0) hint = "field";
100
+ else if (kind === 10) hint = "class";
101
+ else hint = "method";
102
+ throw new TypeError(hint + " decorators must return a function or void 0");
103
+ }
104
+ }
105
+ function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
106
+ var decs = decInfo[0];
107
+ var desc, init, value;
108
+ if (isPrivate) if (kind === 0 || kind === 1) desc = {
109
+ get: decInfo[3],
110
+ set: decInfo[4]
111
+ };
112
+ else if (kind === 3) desc = { get: decInfo[3] };
113
+ else if (kind === 4) desc = { set: decInfo[3] };
114
+ else desc = { value: decInfo[3] };
115
+ else if (kind !== 0) desc = Object.getOwnPropertyDescriptor(base, name);
116
+ if (kind === 1) value = {
117
+ get: desc.get,
118
+ set: desc.set
119
+ };
120
+ else if (kind === 2) value = desc.value;
121
+ else if (kind === 3) value = desc.get;
122
+ else if (kind === 4) value = desc.set;
123
+ var newValue, get, set;
124
+ if (typeof decs === "function") {
125
+ newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
126
+ if (newValue !== void 0) {
127
+ assertValidReturnValue(kind, newValue);
128
+ if (kind === 0) init = newValue;
129
+ else if (kind === 1) {
130
+ init = newValue.init;
131
+ get = newValue.get || value.get;
132
+ set = newValue.set || value.set;
133
+ value = {
134
+ get,
135
+ set
136
+ };
137
+ } else value = newValue;
138
+ }
139
+ } else for (var i = decs.length - 1; i >= 0; i--) {
140
+ var dec = decs[i];
141
+ newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
142
+ if (newValue !== void 0) {
143
+ assertValidReturnValue(kind, newValue);
144
+ var newInit;
145
+ if (kind === 0) newInit = newValue;
146
+ else if (kind === 1) {
147
+ newInit = newValue.init;
148
+ get = newValue.get || value.get;
149
+ set = newValue.set || value.set;
150
+ value = {
151
+ get,
152
+ set
153
+ };
154
+ } else value = newValue;
155
+ if (newInit !== void 0) if (init === void 0) init = newInit;
156
+ else if (typeof init === "function") init = [init, newInit];
157
+ else init.push(newInit);
158
+ }
159
+ }
160
+ if (kind === 0 || kind === 1) {
161
+ if (init === void 0) init = function(instance, init$1) {
162
+ return init$1;
163
+ };
164
+ else if (typeof init !== "function") {
165
+ var ownInitializers = init;
166
+ init = function(instance, init$1) {
167
+ var value$1 = init$1;
168
+ for (var i$1 = 0; i$1 < ownInitializers.length; i$1++) value$1 = ownInitializers[i$1].call(instance, value$1);
169
+ return value$1;
170
+ };
171
+ } else {
172
+ var originalInitializer = init;
173
+ init = function(instance, init$1) {
174
+ return originalInitializer.call(instance, init$1);
175
+ };
176
+ }
177
+ ret.push(init);
178
+ }
179
+ if (kind !== 0) {
180
+ if (kind === 1) {
181
+ desc.get = value.get;
182
+ desc.set = value.set;
183
+ } else if (kind === 2) desc.value = value;
184
+ else if (kind === 3) desc.get = value;
185
+ else if (kind === 4) desc.set = value;
186
+ if (isPrivate) if (kind === 1) {
187
+ ret.push(function(instance, args) {
188
+ return value.get.call(instance, args);
189
+ });
190
+ ret.push(function(instance, args) {
191
+ return value.set.call(instance, args);
192
+ });
193
+ } else if (kind === 2) ret.push(value);
194
+ else ret.push(function(instance, args) {
195
+ return value.call(instance, args);
196
+ });
197
+ else Object.defineProperty(base, name, desc);
198
+ }
199
+ }
200
+ function applyMemberDecs(Class, decInfos, metadata) {
201
+ var ret = [];
202
+ var protoInitializers;
203
+ var staticInitializers;
204
+ var existingProtoNonFields = /* @__PURE__ */ new Map();
205
+ var existingStaticNonFields = /* @__PURE__ */ new Map();
206
+ for (var i = 0; i < decInfos.length; i++) {
207
+ var decInfo = decInfos[i];
208
+ if (!Array.isArray(decInfo)) continue;
209
+ var kind = decInfo[1];
210
+ var name = decInfo[2];
211
+ var isPrivate = decInfo.length > 3;
212
+ var isStatic = kind >= 5;
213
+ var base;
214
+ var initializers;
215
+ if (isStatic) {
216
+ base = Class;
217
+ kind = kind - 5;
218
+ staticInitializers = staticInitializers || [];
219
+ initializers = staticInitializers;
220
+ } else {
221
+ base = Class.prototype;
222
+ protoInitializers = protoInitializers || [];
223
+ initializers = protoInitializers;
224
+ }
225
+ if (kind !== 0 && !isPrivate) {
226
+ var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
227
+ var existingKind = existingNonFields.get(name) || 0;
228
+ if (existingKind === true || existingKind === 3 && kind !== 4 || existingKind === 4 && kind !== 3) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
229
+ else if (!existingKind && kind > 2) existingNonFields.set(name, kind);
230
+ else existingNonFields.set(name, true);
231
+ }
232
+ applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
233
+ }
234
+ pushInitializers(ret, protoInitializers);
235
+ pushInitializers(ret, staticInitializers);
236
+ return ret;
237
+ }
238
+ function pushInitializers(ret, initializers) {
239
+ if (initializers) ret.push(function(instance) {
240
+ for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
241
+ return instance;
242
+ });
243
+ }
244
+ function applyClassDecs(targetClass, classDecs, metadata) {
245
+ if (classDecs.length > 0) {
246
+ var initializers = [];
247
+ var newClass = targetClass;
248
+ var name = targetClass.name;
249
+ for (var i = classDecs.length - 1; i >= 0; i--) {
250
+ var decoratorFinishedRef = { v: false };
251
+ try {
252
+ var nextNewClass = classDecs[i](newClass, {
253
+ kind: "class",
254
+ name,
255
+ addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef),
256
+ metadata
257
+ });
258
+ } finally {
259
+ decoratorFinishedRef.v = true;
260
+ }
261
+ if (nextNewClass !== void 0) {
262
+ assertValidReturnValue(10, nextNewClass);
263
+ newClass = nextNewClass;
264
+ }
265
+ }
266
+ return [defineMetadata(newClass, metadata), function() {
267
+ for (var i$1 = 0; i$1 < initializers.length; i$1++) initializers[i$1].call(newClass);
268
+ }];
269
+ }
270
+ }
271
+ function defineMetadata(Class, metadata) {
272
+ return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), {
273
+ configurable: true,
274
+ enumerable: true,
275
+ value: metadata
276
+ });
277
+ }
278
+ return function applyDecs2203R(targetClass, memberDecs, classDecs, parentClass) {
279
+ if (parentClass !== void 0) var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
280
+ var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
281
+ var e = applyMemberDecs(targetClass, memberDecs, metadata);
282
+ if (!classDecs.length) defineMetadata(targetClass, metadata);
283
+ return {
284
+ e,
285
+ get c() {
286
+ return applyClassDecs(targetClass, classDecs, metadata);
287
+ }
288
+ };
289
+ };
290
+ }
291
+ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
292
+ return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
293
+ }
294
+ var _dec, _initClass;
295
+ let _EventEmitter;
296
+ _dec = require_testing.Injectable({ scope: require_testing.InjectableScope.Transient });
297
+ var EventEmitter = class {
298
+ static {
299
+ ({c: [_EventEmitter, _initClass]} = _apply_decs_2203_r(this, [], [_dec]));
300
+ }
301
+ listeners = /* @__PURE__ */ new Map();
302
+ on(event, listener) {
303
+ if (!this.listeners.has(event)) this.listeners.set(event, /* @__PURE__ */ new Set());
304
+ this.listeners.get(event).add(listener);
305
+ return () => {
306
+ this.off(event, listener);
307
+ };
308
+ }
309
+ off(event, listener) {
310
+ if (!this.listeners.has(event)) return;
311
+ this.listeners.get(event).delete(listener);
312
+ if (this.listeners.get(event).size === 0) this.listeners.delete(event);
313
+ }
314
+ once(event, listener) {
315
+ const off = this.on(event, (...args) => {
316
+ off();
317
+ listener(...args);
318
+ });
319
+ return off;
320
+ }
321
+ async emit(event, ...args) {
322
+ if (!this.listeners.has(event)) return;
323
+ return Promise.all(Array.from(this.listeners.get(event)).map((listener) => listener(...args)));
324
+ }
325
+ static {
326
+ _initClass();
327
+ }
328
+ };
329
+
330
+ //#endregion
331
+ exports.BaseHolderManager = require_testing.BaseHolderManager;
332
+ exports.BoundInjectionToken = require_testing.BoundInjectionToken;
333
+ exports.CircularDetector = require_testing.CircularDetector;
334
+ Object.defineProperty(exports, 'Container', {
335
+ enumerable: true,
336
+ get: function () {
337
+ return require_testing._Container;
338
+ }
339
+ });
340
+ exports.DIError = require_testing.DIError;
341
+ exports.DIErrorCode = require_testing.DIErrorCode;
342
+ exports.DefaultRequestContext = require_testing.DefaultRequestContext;
343
+ Object.defineProperty(exports, 'EventEmitter', {
344
+ enumerable: true,
345
+ get: function () {
346
+ return _EventEmitter;
347
+ }
348
+ });
349
+ exports.Factory = Factory;
350
+ exports.FactoryInjectionToken = require_testing.FactoryInjectionToken;
351
+ exports.HolderManager = require_testing.HolderManager;
352
+ exports.Injectable = require_testing.Injectable;
353
+ exports.InjectableScope = require_testing.InjectableScope;
354
+ exports.InjectableTokenMeta = require_testing.InjectableTokenMeta;
355
+ exports.InjectableType = require_testing.InjectableType;
356
+ exports.InjectionToken = require_testing.InjectionToken;
357
+ exports.InstanceResolver = require_testing.InstanceResolver;
358
+ exports.InstanceStatus = require_testing.InstanceStatus;
359
+ exports.Instantiator = require_testing.Instantiator;
360
+ exports.Invalidator = require_testing.Invalidator;
361
+ exports.LifecycleEventBus = require_testing.LifecycleEventBus;
362
+ exports.Registry = require_testing.Registry;
363
+ exports.RequestStorage = require_testing.RequestStorage;
364
+ exports.ScopedContainer = require_testing.ScopedContainer;
365
+ exports.ServiceLocator = require_testing.ServiceLocator;
366
+ exports.SingletonStorage = require_testing.SingletonStorage;
367
+ exports.TestBindingBuilder = require_testing.TestBindingBuilder;
368
+ Object.defineProperty(exports, 'TestContainer', {
369
+ enumerable: true,
370
+ get: function () {
371
+ return require_testing._TestContainer;
372
+ }
373
+ });
374
+ exports.TokenProcessor = require_testing.TokenProcessor;
375
+ exports.asyncInject = require_testing.asyncInject;
376
+ exports.createRequestContext = require_testing.createRequestContext;
377
+ exports.defaultInjectors = require_testing.defaultInjectors;
378
+ exports.getCurrentResolutionContext = require_testing.getCurrentResolutionContext;
379
+ exports.getInjectableToken = require_testing.getInjectableToken;
380
+ exports.getInjectors = require_testing.getInjectors;
381
+ exports.globalRegistry = require_testing.globalRegistry;
382
+ exports.inject = require_testing.inject;
383
+ exports.optional = require_testing.optional;
384
+ exports.provideFactoryContext = require_testing.provideFactoryContext;
385
+ exports.resolutionContext = require_testing.resolutionContext;
386
+ exports.withResolutionContext = require_testing.withResolutionContext;
387
+ exports.withoutResolutionContext = require_testing.withoutResolutionContext;
388
+ exports.wrapSyncInit = require_testing.wrapSyncInit;
389
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["InjectableScope","InjectableType","InjectionToken","globalRegistry","InjectableTokenMeta","Factory","scope","Singleton","token","registry","target","context","kind","Function","Error","injectableToken","create","set","Injectable","InjectableScope","scope","Transient","EventEmitter","listeners","Map","on","event","listener","has","set","Set","get","add","off","delete","size","once","args","emit","Promise","all","Array","from","map"],"sources":["../src/decorators/factory.decorator.mts","../src/event-emitter.mts"],"sourcesContent":["import type {\n ClassTypeWithInstance,\n InjectionTokenSchemaType,\n} from '../token/injection-token.mjs'\nimport type { Factorable, FactorableWithArgs } from '../interfaces/index.mjs'\nimport type { Registry } from '../token/registry.mjs'\n\nimport { InjectableScope, InjectableType } from '../enums/index.mjs'\nimport { InjectionToken } from '../token/injection-token.mjs'\nimport { globalRegistry } from '../token/registry.mjs'\nimport { InjectableTokenMeta } from '../symbols/index.mjs'\n\nexport interface FactoryOptions {\n scope?: InjectableScope\n token?: InjectionToken<any, any>\n registry?: Registry\n}\n\n// #1 Factory without arguments\nexport function Factory<R>(options?: {\n scope?: InjectableScope\n registry?: Registry\n}): <T extends ClassTypeWithInstance<Factorable<R>>>(\n target: T,\n context?: ClassDecoratorContext,\n) => T\n\n// #2 Factory with typed token\nexport function Factory<R, S>(options: {\n scope?: InjectableScope\n token: InjectionToken<R, S>\n registry?: Registry\n}): R extends undefined // #2.1 Check that token has a type\n ? never // #2.1.1 Token must have a type\n : S extends InjectionTokenSchemaType // #2.2 Check that schema is an object or a record\n ? <T extends ClassTypeWithInstance<FactorableWithArgs<R, S>>>( // #2.2.1 Token have a schema\n target: T,\n context?: ClassDecoratorContext,\n ) => T\n : S extends undefined // #2.3 For a factory without schema\n ? <T extends ClassTypeWithInstance<Factorable<R>>>( // #2.3.1 Token without a schema\n target: T,\n context?: ClassDecoratorContext,\n ) => T\n : never // #2.4 Cannot use a token without a type and schema\n\nexport function Factory({\n scope = InjectableScope.Singleton,\n token,\n registry = globalRegistry,\n}: FactoryOptions = {}) {\n return <\n T extends ClassTypeWithInstance<\n Factorable<any> | FactorableWithArgs<any, any>\n >,\n >(\n target: T,\n context?: ClassDecoratorContext,\n ): T => {\n if (\n (context && context.kind !== 'class') ||\n (target instanceof Function && !context)\n ) {\n throw new Error(\n '[ServiceLocator] @Factory decorator can only be used on classes.',\n )\n }\n\n let injectableToken: InjectionToken<any, any> =\n token ?? InjectionToken.create(target)\n\n registry.set(injectableToken, scope, target, InjectableType.Factory)\n\n // @ts-expect-error\n target[InjectableTokenMeta] = injectableToken\n\n return target\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-empty-object-type */\n/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n\nimport { Injectable, InjectableScope } from './index.mjs'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type EventsConfig = {\n [event: string]: any[]\n}\nexport type EventsNames<Events extends EventsConfig> = Exclude<\n keyof Events,\n symbol | number\n>\nexport type EventsArgs<\n Events extends EventsConfig,\n Name extends EventsNames<Events>,\n> = Events[Name] extends any[] ? Events[Name] : []\n\nexport type ChannelEmitter<\n Events extends EventsConfig,\n Ns extends string,\n E extends EventsNames<Events>,\n> = {\n emit<Args extends EventsArgs<Events, E>>(\n ns: Ns,\n event: E,\n ...args: Args\n ): Promise<any>\n}\n\nexport interface EventEmitterInterface<Events extends EventsConfig> {\n on<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(\n event: E,\n listener: (...args: Args) => void | Promise<void>,\n ): () => void\n emit<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(\n event: E,\n ...args: Args\n ): void | Promise<void>\n}\n\n@Injectable({ scope: InjectableScope.Transient })\nexport class EventEmitter<Events extends EventsConfig = {}>\n implements EventEmitterInterface<Events>\n{\n private listeners: Map<EventsNames<Events>, Set<Function>> = new Map()\n\n on<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(\n event: E,\n listener: (...args: Args) => void | Promise<void>,\n ) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set())\n }\n\n this.listeners.get(event)!.add(listener)\n\n return () => {\n this.off(event, listener)\n }\n }\n\n off<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(\n event: E,\n listener: (...args: Args) => void | Promise<void>,\n ) {\n if (!this.listeners.has(event)) {\n return\n }\n\n this.listeners.get(event)!.delete(listener)\n if (this.listeners.get(event)!.size === 0) {\n this.listeners.delete(event)\n }\n }\n\n once<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(\n event: E,\n listener: (...args: Args) => void | Promise<void>,\n ) {\n const off = this.on(event, (...args) => {\n off()\n // @ts-expect-error - This is a valid call\n listener(...args)\n })\n\n return off\n }\n\n async emit<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(\n event: E,\n ...args: Args\n ): Promise<any> {\n if (!this.listeners.has(event)) {\n return\n }\n\n return Promise.all(\n Array.from(this.listeners.get(event)!).map((listener) =>\n listener(...args),\n ),\n )\n }\n}\n"],"mappings":";;;;AA8CA,SAAgBK,QAAQ,EACtBC,QAAQN,gCAAgBO,WACxBC,OACAC,WAAWN,mCACO,EAAE,EAAA;AACpB,SAKEO,QACAC,YAAAA;AAEA,MACE,WAAYA,QAAQC,SAAS,WAC5BF,kBAAkBG,YAAY,CAACF,QAEhC,OAAM,IAAIG,MACR,mEAAA;EAIJ,IAAIC,kBACFP,SAASN,+BAAec,OAAON,OAAAA;AAEjCD,WAASQ,IAAIF,iBAAiBT,OAAOI,QAAQT,+BAAeI,QAAO;AAGnEK,SAAON,uCAAuBW;AAE9B,SAAOL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OClCVQ,2BAAW,EAAEE,OAAOD,gCAAgBE,WAAU,CAAA;AACxC,IAAMC,eAAN,MAAMA;;;;CAGHC,4BAAqD,IAAIC,KAAAA;CAEjEC,GACEC,OACAC,UACA;AACA,MAAI,CAAC,KAAKJ,UAAUK,IAAIF,MAAAA,CACtB,MAAKH,UAAUM,IAAIH,uBAAO,IAAII,KAAAA,CAAAA;AAGhC,OAAKP,UAAUQ,IAAIL,MAAAA,CAAQM,IAAIL,SAAAA;AAE/B,eAAO;AACL,QAAKM,IAAIP,OAAOC,SAAAA;;;CAIpBM,IACEP,OACAC,UACA;AACA,MAAI,CAAC,KAAKJ,UAAUK,IAAIF,MAAAA,CACtB;AAGF,OAAKH,UAAUQ,IAAIL,MAAAA,CAAQQ,OAAOP,SAAAA;AAClC,MAAI,KAAKJ,UAAUQ,IAAIL,MAAAA,CAAQS,SAAS,EACtC,MAAKZ,UAAUW,OAAOR,MAAAA;;CAI1BU,KACEV,OACAC,UACA;EACA,MAAMM,MAAM,KAAKR,GAAGC,QAAQ,GAAGW,SAAAA;AAC7BJ,QAAAA;AAEAN,YAAAA,GAAYU,KAAAA;IACd;AAEA,SAAOJ;;CAGT,MAAMK,KACJZ,OACA,GAAGW,MACW;AACd,MAAI,CAAC,KAAKd,UAAUK,IAAIF,MAAAA,CACtB;AAGF,SAAOa,QAAQC,IACbC,MAAMC,KAAK,KAAKnB,UAAUQ,IAAIL,MAAAA,CAAAA,CAASiB,KAAKhB,aAC1CA,SAAAA,GAAYU,KAAAA,CAAAA,CAAAA"}