@navios/di 0.9.2 → 1.0.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.
- package/CHANGELOG.md +9 -0
- package/README.md +28 -0
- package/coverage/block-navigation.js +1 -1
- package/coverage/clover.xml +1463 -3174
- package/coverage/coverage-final.json +56 -54
- package/coverage/index.html +179 -104
- package/coverage/sorter.js +21 -7
- package/coverage/src/{request-context-manager.mts.html → __tests__/gc/gc-test-utils.mts.html} +192 -231
- package/coverage/{lib → src/__tests__/gc}/index.html +25 -40
- package/coverage/src/container/abstract-container.mts.html +1066 -0
- package/coverage/src/container/container.mts.html +958 -0
- package/coverage/src/container/index.html +161 -0
- package/coverage/src/{testing → container}/index.mts.html +12 -9
- package/coverage/src/container/scoped-container.mts.html +907 -0
- package/coverage/src/decorators/factory.decorator.mts.html +68 -53
- package/coverage/src/decorators/index.html +34 -34
- package/coverage/src/decorators/index.mts.html +10 -10
- package/coverage/src/decorators/injectable.decorator.mts.html +144 -60
- package/coverage/src/enums/index.html +21 -21
- package/coverage/src/enums/index.mts.html +12 -12
- package/coverage/src/enums/injectable-scope.enum.mts.html +11 -8
- package/coverage/src/enums/injectable-type.enum.mts.html +10 -7
- package/coverage/src/errors/di-error.mts.html +380 -71
- package/coverage/src/errors/index.html +22 -127
- package/coverage/src/errors/index.mts.html +9 -33
- package/coverage/src/event-emitter.mts.html +35 -107
- package/coverage/src/index.html +14 -254
- package/coverage/src/index.mts.html +23 -50
- package/coverage/src/interfaces/container.interface.mts.html +370 -0
- package/coverage/src/interfaces/factory.interface.mts.html +12 -12
- package/coverage/src/interfaces/index.html +45 -30
- package/coverage/src/interfaces/index.mts.html +16 -13
- package/coverage/src/interfaces/on-service-destroy.interface.mts.html +1 -1
- package/coverage/src/interfaces/on-service-init.interface.mts.html +1 -1
- package/coverage/src/internal/context/async-local-storage.browser.mts.html +142 -0
- package/coverage/src/internal/context/async-local-storage.mts.html +292 -0
- package/coverage/src/{factory-context.mts.html → internal/context/async-local-storage.types.mts.html} +17 -17
- package/coverage/src/internal/context/factory-context.mts.html +142 -0
- package/coverage/src/internal/context/index.html +221 -0
- package/coverage/src/internal/context/index.mts.html +100 -0
- package/coverage/src/{service-locator-instance-holder.mts.html → internal/context/resolution-context.mts.html} +114 -78
- package/coverage/src/internal/context/service-initialization-context.mts.html +214 -0
- package/coverage/src/internal/context/sync-local-storage.mts.html +244 -0
- package/coverage/src/internal/core/index.html +206 -0
- package/coverage/src/internal/core/index.mts.html +103 -0
- package/coverage/src/internal/core/instance-resolver.mts.html +2533 -0
- package/coverage/src/{request-context-holder.mts.html → internal/core/name-resolver.mts.html} +245 -260
- package/coverage/src/{container.mts.html → internal/core/scope-tracker.mts.html} +352 -310
- package/coverage/src/{service-instantiator.mts.html → internal/core/service-initializer.mts.html} +254 -176
- package/coverage/src/internal/core/service-invalidator.mts.html +955 -0
- package/coverage/src/internal/core/token-resolver.mts.html +451 -0
- package/coverage/src/internal/holder/holder-storage.interface.mts.html +451 -0
- package/coverage/src/internal/holder/index.html +161 -0
- package/coverage/src/internal/holder/index.mts.html +94 -0
- package/coverage/src/internal/holder/instance-holder.mts.html +406 -0
- package/coverage/src/{service-locator.mts.html → internal/holder/unified-storage.mts.html} +376 -379
- package/coverage/{lib/testing → src/internal}/index.html +26 -11
- package/coverage/src/internal/index.mts.html +100 -0
- package/coverage/src/internal/lifecycle/circular-detector.mts.html +364 -0
- package/coverage/src/internal/lifecycle/index.html +146 -0
- package/coverage/src/internal/lifecycle/index.mts.html +91 -0
- package/coverage/src/{service-locator-event-bus.mts.html → internal/lifecycle/lifecycle-event-bus.mts.html} +104 -80
- package/coverage/src/internal/stub-factory-class.mts.html +133 -0
- package/coverage/src/symbols/index.html +14 -14
- package/coverage/src/symbols/index.mts.html +9 -9
- package/coverage/src/symbols/injectable-token.mts.html +9 -3
- package/coverage/src/testing/index.html +32 -32
- package/coverage/src/testing/test-container.mts.html +1576 -139
- package/coverage/src/testing/unit-test-container.mts.html +1888 -0
- package/coverage/src/token/index.html +146 -0
- package/coverage/{lib/testing/index.d.mts.html → src/token/index.mts.html} +11 -11
- package/coverage/src/{injection-token.mts.html → token/injection-token.mts.html} +225 -111
- package/coverage/src/{base-instance-holder-manager.mts.html → token/registry.mts.html} +188 -269
- package/coverage/src/{injector.mts.html → utils/default-injectors.mts.html} +31 -31
- package/coverage/src/utils/get-injectable-token.mts.html +19 -22
- package/coverage/src/utils/get-injectors.mts.html +684 -177
- package/coverage/src/utils/index.html +36 -36
- package/coverage/src/utils/index.mts.html +18 -12
- package/coverage/src/utils/types.mts.html +26 -11
- package/docs/examples/basic-usage.mts +1 -1
- package/docs/examples/factory-pattern.mts +3 -3
- package/docs/examples/request-scope-example.mts +1 -1
- package/docs/examples/service-lifecycle.mts +1 -1
- package/lib/browser/internal/core/instance-resolver.d.mts.map +1 -1
- package/lib/browser/internal/core/instance-resolver.mjs.map +1 -1
- package/lib/{container-D-0Ho3qL.d.cts → container-D3j3KuD9.d.mts} +5 -289
- package/lib/container-D3j3KuD9.d.mts.map +1 -0
- package/lib/{container-Bi0huFQX.mjs → container-qgHMgGNG.mjs} +3 -227
- package/lib/container-qgHMgGNG.mjs.map +1 -0
- package/lib/{container-CNiqesCL.d.mts → container-r1KP4F-n.d.cts} +5 -289
- package/lib/container-r1KP4F-n.d.cts.map +1 -0
- package/lib/{container-pmGNCZL_.cjs → container-ycYJgTq7.cjs} +41 -319
- package/lib/container-ycYJgTq7.cjs.map +1 -0
- package/lib/factory.decorator-D4mem6YQ.cjs +21 -0
- package/lib/factory.decorator-D4mem6YQ.cjs.map +1 -0
- package/lib/factory.decorator-_IPWcwQn.mjs +16 -0
- package/lib/factory.decorator-_IPWcwQn.mjs.map +1 -0
- package/lib/index.cjs +14 -24
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +3 -52
- package/lib/index.d.cts.map +1 -1
- package/lib/index.d.mts +3 -52
- package/lib/index.d.mts.map +1 -1
- package/lib/index.mjs +3 -13
- package/lib/index.mjs.map +1 -1
- package/lib/injectable.decorator-BNfWpjr_.d.cts +56 -0
- package/lib/injectable.decorator-BNfWpjr_.d.cts.map +1 -0
- package/lib/injectable.decorator-Bc05hRQU.d.mts +56 -0
- package/lib/injectable.decorator-Bc05hRQU.d.mts.map +1 -0
- package/lib/injectable.decorator-CyPrBzBN.mjs +227 -0
- package/lib/injectable.decorator-CyPrBzBN.mjs.map +1 -0
- package/lib/injectable.decorator-DbpiDrg-.cjs +281 -0
- package/lib/injectable.decorator-DbpiDrg-.cjs.map +1 -0
- package/lib/legacy-compat/index.cjs +114 -0
- package/lib/legacy-compat/index.cjs.map +1 -0
- package/lib/legacy-compat/index.d.cts +63 -0
- package/lib/legacy-compat/index.d.cts.map +1 -0
- package/lib/legacy-compat/index.d.mts +63 -0
- package/lib/legacy-compat/index.d.mts.map +1 -0
- package/lib/legacy-compat/index.mjs +111 -0
- package/lib/legacy-compat/index.mjs.map +1 -0
- package/lib/registry-DKbKWFvJ.d.cts +290 -0
- package/lib/registry-DKbKWFvJ.d.cts.map +1 -0
- package/lib/registry-n8JhJoxm.d.mts +290 -0
- package/lib/registry-n8JhJoxm.d.mts.map +1 -0
- package/lib/testing/index.cjs +23 -22
- package/lib/testing/index.cjs.map +1 -1
- package/lib/testing/index.d.cts +2 -1
- package/lib/testing/index.d.cts.map +1 -1
- package/lib/testing/index.d.mts +2 -1
- package/lib/testing/index.d.mts.map +1 -1
- package/lib/testing/index.mjs +2 -1
- package/lib/testing/index.mjs.map +1 -1
- package/package.json +11 -1
- package/project.json +8 -0
- package/src/__tests__/gc/basic-container.spec.mts +358 -0
- package/src/__tests__/gc/circular-dependencies.spec.mts +501 -0
- package/src/__tests__/gc/gc-test-utils.mts +136 -0
- package/src/__tests__/gc/memory-pressure.spec.mts +542 -0
- package/src/__tests__/gc/scoped-container.spec.mts +444 -0
- package/src/__tests__/gc/transient-services.spec.mts +326 -0
- package/src/__tests__/scope-upgrade.spec.mts +0 -18
- package/src/internal/core/instance-resolver.mts +0 -1
- package/src/legacy-compat/context-compat.mts +95 -0
- package/src/legacy-compat/factory.decorator.mts +37 -0
- package/src/legacy-compat/index.mts +16 -0
- package/src/legacy-compat/injectable.decorator.mts +41 -0
- package/tsdown.config.mts +1 -1
- package/vitest.config.mts +3 -7
- package/coverage/docs/examples/basic-usage.mts.html +0 -376
- package/coverage/docs/examples/factory-pattern.mts.html +0 -1039
- package/coverage/docs/examples/index.html +0 -176
- package/coverage/docs/examples/injection-tokens.mts.html +0 -760
- package/coverage/docs/examples/request-scope-example.mts.html +0 -847
- package/coverage/docs/examples/service-lifecycle.mts.html +0 -1162
- package/coverage/lib/_tsup-dts-rollup.d.mts.html +0 -3445
- package/coverage/lib/index.d.mts.html +0 -313
- package/coverage/src/errors/errors.enum.mts.html +0 -118
- package/coverage/src/errors/factory-not-found.mts.html +0 -118
- package/coverage/src/errors/factory-token-not-resolved.mts.html +0 -118
- package/coverage/src/errors/instance-destroying.mts.html +0 -118
- package/coverage/src/errors/instance-expired.mts.html +0 -118
- package/coverage/src/errors/instance-not-found.mts.html +0 -118
- package/coverage/src/errors/unknown-error.mts.html +0 -118
- package/coverage/src/instance-resolver.mts.html +0 -1762
- package/coverage/src/registry.mts.html +0 -247
- package/coverage/src/service-invalidator.mts.html +0 -1372
- package/coverage/src/service-locator-manager.mts.html +0 -340
- package/coverage/src/token-processor.mts.html +0 -607
- package/coverage/src/utils/defer.mts.html +0 -118
- package/lib/container-Bi0huFQX.mjs.map +0 -1
- package/lib/container-CNiqesCL.d.mts.map +0 -1
- package/lib/container-D-0Ho3qL.d.cts.map +0 -1
- package/lib/container-pmGNCZL_.cjs.map +0 -1
package/coverage/src/{service-instantiator.mts.html → internal/core/service-initializer.mts.html}
RENAMED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for src/service-
|
|
6
|
+
<title>Code coverage report for src/internal/core/service-initializer.mts</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="
|
|
8
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<style type='text/css'>
|
|
13
13
|
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(
|
|
14
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
17
|
</head>
|
|
@@ -19,34 +19,34 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="
|
|
22
|
+
<h1><a href="../../../index.html">All files</a> / <a href="index.html">src/internal/core</a> service-initializer.mts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">72.72% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>40/55</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">63.33% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>19/30</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">88.88% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>8/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">73.58% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>39/53</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -221,46 +221,50 @@
|
|
|
221
221
|
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
222
|
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
223
|
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
225
251
|
<span class="cline-any cline-neutral"> </span>
|
|
226
252
|
<span class="cline-any cline-neutral"> </span>
|
|
227
253
|
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-yes">1x</span>
|
|
229
254
|
<span class="cline-any cline-neutral"> </span>
|
|
230
255
|
<span class="cline-any cline-neutral"> </span>
|
|
231
256
|
<span class="cline-any cline-neutral"> </span>
|
|
232
257
|
<span class="cline-any cline-neutral"> </span>
|
|
233
258
|
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-yes">1x</span>
|
|
235
|
-
<span class="cline-any cline-yes">1x</span>
|
|
236
259
|
<span class="cline-any cline-neutral"> </span>
|
|
237
260
|
<span class="cline-any cline-neutral"> </span>
|
|
238
261
|
<span class="cline-any cline-neutral"> </span>
|
|
239
262
|
<span class="cline-any cline-neutral"> </span>
|
|
240
263
|
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-yes">268x</span>
|
|
241
265
|
<span class="cline-any cline-neutral"> </span>
|
|
242
266
|
<span class="cline-any cline-neutral"> </span>
|
|
243
267
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-yes">1x</span>
|
|
245
|
-
<span class="cline-any cline-yes">308x</span>
|
|
246
|
-
<span class="cline-any cline-yes">308x</span>
|
|
247
|
-
<span class="cline-any cline-yes">308x</span>
|
|
248
|
-
<span class="cline-any cline-yes">308x</span>
|
|
249
|
-
<span class="cline-any cline-yes">308x</span>
|
|
250
|
-
<span class="cline-any cline-yes">308x</span>
|
|
251
|
-
<span class="cline-any cline-yes">308x</span>
|
|
252
|
-
<span class="cline-any cline-yes">271x</span>
|
|
253
|
-
<span class="cline-any cline-yes">308x</span>
|
|
254
|
-
<span class="cline-any cline-yes">36x</span>
|
|
255
|
-
<span class="cline-any cline-yes">308x</span>
|
|
256
|
-
<span class="cline-any cline-yes">1x</span>
|
|
257
|
-
<span class="cline-any cline-yes">1x</span>
|
|
258
|
-
<span class="cline-any cline-yes">1x</span>
|
|
259
|
-
<span class="cline-any cline-yes">308x</span>
|
|
260
|
-
<span class="cline-any cline-yes">308x</span>
|
|
261
|
-
<span class="cline-any cline-yes">1x</span>
|
|
262
|
-
<span class="cline-any cline-yes">1x</span>
|
|
263
|
-
<span class="cline-any cline-yes">308x</span>
|
|
264
268
|
<span class="cline-any cline-neutral"> </span>
|
|
265
269
|
<span class="cline-any cline-neutral"> </span>
|
|
266
270
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -269,59 +273,21 @@
|
|
|
269
273
|
<span class="cline-any cline-neutral"> </span>
|
|
270
274
|
<span class="cline-any cline-neutral"> </span>
|
|
271
275
|
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-yes">1x</span>
|
|
273
|
-
<span class="cline-any cline-yes">271x</span>
|
|
274
|
-
<span class="cline-any cline-yes">271x</span>
|
|
275
|
-
<span class="cline-any cline-yes">271x</span>
|
|
276
|
-
<span class="cline-any cline-yes">271x</span>
|
|
277
|
-
<span class="cline-any cline-yes">271x</span>
|
|
278
|
-
<span class="cline-any cline-yes">271x</span>
|
|
279
|
-
<span class="cline-any cline-yes">313x</span>
|
|
280
|
-
<span class="cline-any cline-yes">313x</span>
|
|
281
|
-
<span class="cline-any cline-yes">313x</span>
|
|
282
|
-
<span class="cline-any cline-yes">313x</span>
|
|
283
|
-
<span class="cline-any cline-yes">271x</span>
|
|
284
276
|
<span class="cline-any cline-neutral"> </span>
|
|
285
|
-
<span class="cline-any cline-yes">271x</span>
|
|
286
|
-
<span class="cline-any cline-yes">271x</span>
|
|
287
|
-
<span class="cline-any cline-yes">44x</span>
|
|
288
|
-
<span class="cline-any cline-yes">44x</span>
|
|
289
|
-
<span class="cline-any cline-yes">2x</span>
|
|
290
|
-
<span class="cline-any cline-yes">2x</span>
|
|
291
|
-
<span class="cline-any cline-yes">2x</span>
|
|
292
|
-
<span class="cline-any cline-yes">2x</span>
|
|
293
|
-
<span class="cline-any cline-yes">42x</span>
|
|
294
|
-
<span class="cline-any cline-yes">42x</span>
|
|
295
|
-
<span class="cline-any cline-yes">42x</span>
|
|
296
|
-
<span class="cline-any cline-yes">42x</span>
|
|
297
277
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
278
|
+
<span class="cline-any cline-yes">540x</span>
|
|
279
|
+
<span class="cline-any cline-yes">540x</span>
|
|
300
280
|
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-yes">513x</span>
|
|
301
282
|
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-yes">27x</span>
|
|
302
284
|
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-
|
|
304
|
-
<span class="cline-any cline-yes">1x</span>
|
|
305
|
-
<span class="cline-any cline-yes">1x</span>
|
|
306
|
-
<span class="cline-any cline-yes">1x</span>
|
|
307
|
-
<span class="cline-any cline-yes">1x</span>
|
|
285
|
+
<span class="cline-any cline-no"> </span>
|
|
308
286
|
<span class="cline-any cline-neutral"> </span>
|
|
309
287
|
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-yes">271x</span>
|
|
311
|
-
<span class="cline-any cline-yes">1x</span>
|
|
312
|
-
<span class="cline-any cline-yes">1x</span>
|
|
313
|
-
<span class="cline-any cline-yes">271x</span>
|
|
314
|
-
<span class="cline-any cline-yes">3x</span>
|
|
315
|
-
<span class="cline-any cline-yes">3x</span>
|
|
316
|
-
<span class="cline-any cline-yes">3x</span>
|
|
317
|
-
<span class="cline-any cline-yes">3x</span>
|
|
318
288
|
<span class="cline-any cline-neutral"> </span>
|
|
319
|
-
<span class="cline-any cline-yes">265x</span>
|
|
320
|
-
<span class="cline-any cline-yes">271x</span>
|
|
321
|
-
<span class="cline-any cline-yes">6x</span>
|
|
322
|
-
<span class="cline-any cline-yes">6x</span>
|
|
323
|
-
<span class="cline-any cline-yes">271x</span>
|
|
324
289
|
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-no"> </span>
|
|
325
291
|
<span class="cline-any cline-neutral"> </span>
|
|
326
292
|
<span class="cline-any cline-neutral"> </span>
|
|
327
293
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -329,67 +295,156 @@
|
|
|
329
295
|
<span class="cline-any cline-neutral"> </span>
|
|
330
296
|
<span class="cline-any cline-neutral"> </span>
|
|
331
297
|
<span class="cline-any cline-neutral"> </span>
|
|
332
|
-
<span class="cline-any cline-yes">1x</span>
|
|
333
|
-
<span class="cline-any cline-yes">36x</span>
|
|
334
|
-
<span class="cline-any cline-yes">36x</span>
|
|
335
|
-
<span class="cline-any cline-yes">36x</span>
|
|
336
|
-
<span class="cline-any cline-yes">36x</span>
|
|
337
|
-
<span class="cline-any cline-yes">36x</span>
|
|
338
|
-
<span class="cline-any cline-yes">36x</span>
|
|
339
|
-
<span class="cline-any cline-yes">38x</span>
|
|
340
|
-
<span class="cline-any cline-yes">38x</span>
|
|
341
|
-
<span class="cline-any cline-yes">38x</span>
|
|
342
|
-
<span class="cline-any cline-yes">38x</span>
|
|
343
|
-
<span class="cline-any cline-yes">36x</span>
|
|
344
|
-
<span class="cline-any cline-neutral"> </span>
|
|
345
|
-
<span class="cline-any cline-yes">36x</span>
|
|
346
|
-
<span class="cline-any cline-yes">36x</span>
|
|
347
|
-
<span class="cline-any cline-yes">3x</span>
|
|
348
|
-
<span class="cline-any cline-yes">3x</span>
|
|
349
|
-
<span class="cline-any cline-yes">1x</span>
|
|
350
|
-
<span class="cline-any cline-yes">1x</span>
|
|
351
|
-
<span class="cline-any cline-yes">1x</span>
|
|
352
|
-
<span class="cline-any cline-yes">1x</span>
|
|
353
|
-
<span class="cline-any cline-yes">2x</span>
|
|
354
|
-
<span class="cline-any cline-yes">2x</span>
|
|
355
|
-
<span class="cline-any cline-yes">2x</span>
|
|
356
|
-
<span class="cline-any cline-yes">2x</span>
|
|
357
298
|
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-yes">36x</span>
|
|
359
|
-
<span class="cline-any cline-yes">1x</span>
|
|
360
299
|
<span class="cline-any cline-neutral"> </span>
|
|
361
300
|
<span class="cline-any cline-neutral"> </span>
|
|
362
301
|
<span class="cline-any cline-neutral"> </span>
|
|
363
|
-
<span class="cline-any cline-yes">1x</span>
|
|
364
|
-
<span class="cline-any cline-yes">1x</span>
|
|
365
|
-
<span class="cline-any cline-yes">1x</span>
|
|
366
|
-
<span class="cline-any cline-yes">1x</span>
|
|
367
|
-
<span class="cline-any cline-yes">1x</span>
|
|
368
302
|
<span class="cline-any cline-neutral"> </span>
|
|
369
|
-
<span class="cline-any cline-
|
|
370
|
-
<span class="cline-any cline-
|
|
371
|
-
<span class="cline-any cline-
|
|
372
|
-
<span class="cline-any cline-
|
|
373
|
-
<span class="cline-any cline-
|
|
374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
310
|
+
<span class="cline-any cline-yes">513x</span>
|
|
311
|
+
<span class="cline-any cline-yes">513x</span>
|
|
312
|
+
<span class="cline-any cline-yes">651x</span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-yes">651x</span>
|
|
316
|
+
<span class="cline-any cline-yes">651x</span>
|
|
317
|
+
<span class="cline-any cline-yes">651x</span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-yes">513x</span>
|
|
321
|
+
<span class="cline-any cline-yes">513x</span>
|
|
322
|
+
<span class="cline-any cline-yes">138x</span>
|
|
323
|
+
<span class="cline-any cline-yes">140x</span>
|
|
324
|
+
<span class="cline-any cline-no"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-yes">138x</span>
|
|
330
|
+
<span class="cline-any cline-yes">138x</span>
|
|
331
|
+
<span class="cline-any cline-yes">138x</span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-yes">501x</span>
|
|
335
|
+
<span class="cline-any cline-no"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-no"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-yes">501x</span>
|
|
350
|
+
<span class="cline-any cline-yes">21x</span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-yes">497x</span>
|
|
376
353
|
<span class="cline-any cline-yes">32x</span>
|
|
377
|
-
<span class="cline-any cline-yes">
|
|
378
|
-
<span class="cline-any cline-
|
|
354
|
+
<span class="cline-any cline-yes">32x</span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-yes">497x</span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-yes">16x</span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
380
|
+
<span class="cline-any cline-yes">27x</span>
|
|
381
|
+
<span class="cline-any cline-yes">27x</span>
|
|
382
|
+
<span class="cline-any cline-yes">27x</span>
|
|
383
|
+
<span class="cline-any cline-yes">27x</span>
|
|
384
|
+
<span class="cline-any cline-yes">27x</span>
|
|
385
|
+
<span class="cline-any cline-yes">27x</span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
388
|
+
<span class="cline-any cline-yes">27x</span>
|
|
389
|
+
<span class="cline-any cline-yes">27x</span>
|
|
390
|
+
<span class="cline-any cline-no"> </span>
|
|
391
|
+
<span class="cline-any cline-no"> </span>
|
|
392
|
+
<span class="cline-any cline-no"> </span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-no"> </span>
|
|
398
|
+
<span class="cline-any cline-no"> </span>
|
|
399
|
+
<span class="cline-any cline-no"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
402
|
+
<span class="cline-any cline-yes">27x</span>
|
|
403
|
+
<span class="cline-any cline-no"> </span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
410
|
+
<span class="cline-any cline-no"> </span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
416
|
+
<span class="cline-any cline-yes">27x</span>
|
|
417
|
+
<span class="cline-any cline-no"> </span>
|
|
418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-neutral"> </span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
423
|
+
<span class="cline-any cline-yes">27x</span>
|
|
424
|
+
<span class="cline-any cline-yes">23x</span>
|
|
425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
426
|
<span class="cline-any cline-yes">4x</span>
|
|
380
|
-
<span class="cline-any cline-
|
|
381
|
-
<span class="cline-any cline-
|
|
382
|
-
<span class="cline-any cline-neutral"> </span
|
|
383
|
-
|
|
384
|
-
|
|
427
|
+
<span class="cline-any cline-neutral"> </span>
|
|
428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
429
|
+
<span class="cline-any cline-neutral"> </span>
|
|
430
|
+
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-neutral"> </span>
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
433
|
+
<span class="cline-any cline-neutral"> </span>
|
|
434
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { FactoryRecord } from '../../token/registry.mjs'
|
|
435
|
+
import type { Injectors } from '../../utils/index.mjs'
|
|
436
|
+
import type { ServiceInitializationContext } from '../context/service-initialization-context.mjs'
|
|
385
437
|
|
|
386
|
-
import { InjectableType } from '
|
|
438
|
+
import { InjectableType } from '../../enums/index.mjs'
|
|
439
|
+
import { DIError } from '../../errors/index.mjs'
|
|
387
440
|
|
|
388
441
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
442
|
+
* Creates service instances from registry records.
|
|
443
|
+
*
|
|
444
|
+
* Handles both class-based (@Injectable) and factory-based (@Factory) services,
|
|
445
|
+
* managing the instantiation lifecycle including lifecycle hook invocation.
|
|
391
446
|
*/
|
|
392
|
-
export class
|
|
447
|
+
export class ServiceInitializer {
|
|
393
448
|
constructor(private readonly injectors: Injectors) {}
|
|
394
449
|
|
|
395
450
|
/**
|
|
@@ -400,23 +455,27 @@ export class ServiceInstantiator {
|
|
|
400
455
|
* @returns Promise resolving to [undefined, instance] or [error]
|
|
401
456
|
*/
|
|
402
457
|
async instantiateService<T>(
|
|
403
|
-
ctx:
|
|
458
|
+
ctx: ServiceInitializationContext,
|
|
404
459
|
record: FactoryRecord<T, any>,
|
|
405
460
|
args: any = undefined,
|
|
406
|
-
): Promise<[undefined, T] | [
|
|
461
|
+
): Promise<[undefined, T] | [DIError]> {
|
|
407
462
|
try {
|
|
408
463
|
switch (record.type) {
|
|
409
464
|
case InjectableType.Class:
|
|
410
465
|
return this.instantiateClass(ctx, record, args)
|
|
411
466
|
case InjectableType.Factory:
|
|
412
467
|
return this.instantiateFactory(ctx, record, args)
|
|
413
|
-
default
|
|
414
|
-
throw
|
|
415
|
-
`[
|
|
468
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > default:</span>
|
|
469
|
+
<span class="cstat-no" title="statement not covered" > throw DIError.unknown(</span>
|
|
470
|
+
`[ServiceInitializer] Unknown service type: ${record.type}`,
|
|
416
471
|
)
|
|
417
472
|
}
|
|
418
473
|
} catch (error) {
|
|
419
|
-
|
|
474
|
+
<span class="cstat-no" title="statement not covered" > return [</span>
|
|
475
|
+
error instanceof DIError
|
|
476
|
+
? error
|
|
477
|
+
: DIError.initializationError(record.target.name, error as Error),
|
|
478
|
+
]
|
|
420
479
|
}
|
|
421
480
|
}
|
|
422
481
|
|
|
@@ -428,13 +487,15 @@ export class ServiceInstantiator {
|
|
|
428
487
|
* @returns Promise resolving to [undefined, instance] or [error]
|
|
429
488
|
*/
|
|
430
489
|
private async instantiateClass<T>(
|
|
431
|
-
ctx:
|
|
490
|
+
ctx: ServiceInitializationContext,
|
|
432
491
|
record: FactoryRecord<T, any>,
|
|
433
492
|
args: any,
|
|
434
|
-
): Promise<[undefined, T] | [
|
|
493
|
+
): Promise<[undefined, T] | [DIError]> {
|
|
435
494
|
try {
|
|
436
495
|
const tryLoad = this.injectors.wrapSyncInit(() => {
|
|
437
|
-
const original = this.injectors.provideFactoryContext(
|
|
496
|
+
const original = this.injectors.provideFactoryContext(
|
|
497
|
+
ctx as ServiceInitializationContext,
|
|
498
|
+
)
|
|
438
499
|
let result = new record.target(...(args ? [args] : []))
|
|
439
500
|
this.injectors.provideFactoryContext(original)
|
|
440
501
|
return result
|
|
@@ -443,9 +504,10 @@ export class ServiceInstantiator {
|
|
|
443
504
|
let [instance, promises, injectState] = tryLoad()
|
|
444
505
|
if (promises.length > 0) {
|
|
445
506
|
const results = await Promise.allSettled(promises)
|
|
446
|
-
if (results.some((result) => result.status === 'rejected')) {
|
|
447
|
-
throw
|
|
448
|
-
|
|
507
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (results.some((result) => result.status === 'rejected')) {
|
|
508
|
+
<span class="cstat-no" title="statement not covered" > throw DIError.initializationError(</span>
|
|
509
|
+
record.target.name,
|
|
510
|
+
new Error('Service cannot be instantiated'),
|
|
449
511
|
)
|
|
450
512
|
}
|
|
451
513
|
const newRes = tryLoad(injectState)
|
|
@@ -453,14 +515,17 @@ export class ServiceInstantiator {
|
|
|
453
515
|
promises = newRes[1]
|
|
454
516
|
}
|
|
455
517
|
|
|
456
|
-
if (promises.length > 0) {
|
|
457
|
-
|
|
518
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (promises.length > 0) {
|
|
519
|
+
<span class="cstat-no" title="statement not covered" > console.error(</span>
|
|
520
|
+
`[ServiceInitializer] ${record.target.name} has problem with it's definition.
|
|
458
521
|
|
|
459
|
-
One or more of the dependencies are registered as a InjectableScope.
|
|
522
|
+
One or more of the dependencies are registered as a InjectableScope.Transient and are used with inject.
|
|
460
523
|
|
|
461
|
-
Please use
|
|
462
|
-
|
|
463
|
-
|
|
524
|
+
Please use asyncInject instead of inject to load those dependencies.`,
|
|
525
|
+
)
|
|
526
|
+
<span class="cstat-no" title="statement not covered" > throw DIError.initializationError(</span>
|
|
527
|
+
record.target.name,
|
|
528
|
+
new Error('Service cannot be instantiated'),
|
|
464
529
|
)
|
|
465
530
|
}
|
|
466
531
|
|
|
@@ -476,7 +541,11 @@ export class ServiceInstantiator {
|
|
|
476
541
|
|
|
477
542
|
return [undefined, instance]
|
|
478
543
|
} catch (error) {
|
|
479
|
-
return [
|
|
544
|
+
return [
|
|
545
|
+
error instanceof DIError
|
|
546
|
+
? error
|
|
547
|
+
: DIError.initializationError(record.target.name, error as Error),
|
|
548
|
+
]
|
|
480
549
|
}
|
|
481
550
|
}
|
|
482
551
|
|
|
@@ -488,10 +557,10 @@ export class ServiceInstantiator {
|
|
|
488
557
|
* @returns Promise resolving to [undefined, instance] or [error]
|
|
489
558
|
*/
|
|
490
559
|
private async instantiateFactory<T>(
|
|
491
|
-
ctx:
|
|
560
|
+
ctx: ServiceInitializationContext,
|
|
492
561
|
record: FactoryRecord<T, any>,
|
|
493
562
|
args: any,
|
|
494
|
-
): Promise<[undefined, T] | [
|
|
563
|
+
): Promise<[undefined, T] | [DIError]> {
|
|
495
564
|
try {
|
|
496
565
|
const tryLoad = this.injectors.wrapSyncInit(() => {
|
|
497
566
|
const original = this.injectors.provideFactoryContext(ctx)
|
|
@@ -501,39 +570,48 @@ export class ServiceInstantiator {
|
|
|
501
570
|
})
|
|
502
571
|
|
|
503
572
|
let [builder, promises, injectState] = tryLoad()
|
|
504
|
-
if (promises.length > 0) {
|
|
505
|
-
const results = await Promise.allSettled(promises)
|
|
506
|
-
if (results.some((
|
|
507
|
-
throw
|
|
508
|
-
|
|
573
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (promises.length > 0) {
|
|
574
|
+
const results = <span class="cstat-no" title="statement not covered" >await Promise.allSettled(promises)</span>
|
|
575
|
+
<span class="cstat-no" title="statement not covered" > if (results.some(<span class="fstat-no" title="function not covered" >(r</span>esult) => <span class="cstat-no" title="statement not covered" >result.status === 'rejected')</span>) {</span>
|
|
576
|
+
<span class="cstat-no" title="statement not covered" > throw DIError.initializationError(</span>
|
|
577
|
+
record.target.name,
|
|
578
|
+
new Error('Service cannot be instantiated'),
|
|
509
579
|
)
|
|
510
580
|
}
|
|
511
|
-
const newRes = tryLoad(injectState)
|
|
512
|
-
builder = newRes[0]
|
|
513
|
-
promises = newRes[1]
|
|
581
|
+
const newRes = <span class="cstat-no" title="statement not covered" >tryLoad(injectState)</span>
|
|
582
|
+
<span class="cstat-no" title="statement not covered" > builder = newRes[0]</span>
|
|
583
|
+
<span class="cstat-no" title="statement not covered" > promises = newRes[1]</span>
|
|
514
584
|
}
|
|
515
585
|
|
|
516
|
-
if (promises.length > 0) {
|
|
517
|
-
|
|
586
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (promises.length > 0) {
|
|
587
|
+
<span class="cstat-no" title="statement not covered" > console.error(</span>
|
|
588
|
+
`[ServiceInitializer] ${record.target.name} has problem with it's definition.
|
|
518
589
|
|
|
519
|
-
One or more of the dependencies are registered as a InjectableScope.
|
|
590
|
+
One or more of the dependencies are registered as a InjectableScope.Transient and are used with inject.
|
|
520
591
|
|
|
521
|
-
Please use asyncInject instead of inject to load those dependencies
|
|
522
|
-
|
|
523
|
-
|
|
592
|
+
Please use asyncInject instead of inject to load those dependencies.`,
|
|
593
|
+
)
|
|
594
|
+
<span class="cstat-no" title="statement not covered" > throw DIError.initializationError(</span>
|
|
595
|
+
record.target.name,
|
|
596
|
+
new Error('Service cannot be instantiated'),
|
|
524
597
|
)
|
|
525
598
|
}
|
|
526
599
|
|
|
527
|
-
if (typeof builder.create !== 'function') {
|
|
528
|
-
throw
|
|
529
|
-
|
|
600
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof builder.create !== 'function') {
|
|
601
|
+
<span class="cstat-no" title="statement not covered" > throw DIError.initializationError(</span>
|
|
602
|
+
record.target.name,
|
|
603
|
+
new Error('Factory does not implement the create method'),
|
|
530
604
|
)
|
|
531
605
|
}
|
|
532
606
|
|
|
533
607
|
const instance = await builder.create(ctx, args)
|
|
534
608
|
return [undefined, instance]
|
|
535
609
|
} catch (error) {
|
|
536
|
-
return [
|
|
610
|
+
return [
|
|
611
|
+
error instanceof DIError
|
|
612
|
+
? <span class="branch-0 cbranch-no" title="branch not covered" >error</span>
|
|
613
|
+
: DIError.initializationError(record.target.name, error as Error),
|
|
614
|
+
]
|
|
537
615
|
}
|
|
538
616
|
}
|
|
539
617
|
}
|
|
@@ -544,16 +622,16 @@ export class ServiceInstantiator {
|
|
|
544
622
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
545
623
|
Code coverage generated by
|
|
546
624
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
547
|
-
at
|
|
625
|
+
at 2026-01-08T12:15:46.476Z
|
|
548
626
|
</div>
|
|
549
|
-
<script src="
|
|
627
|
+
<script src="../../../prettify.js"></script>
|
|
550
628
|
<script>
|
|
551
629
|
window.onload = function () {
|
|
552
630
|
prettyPrint();
|
|
553
631
|
};
|
|
554
632
|
</script>
|
|
555
|
-
<script src="
|
|
556
|
-
<script src="
|
|
633
|
+
<script src="../../../sorter.js"></script>
|
|
634
|
+
<script src="../../../block-navigation.js"></script>
|
|
557
635
|
</body>
|
|
558
636
|
</html>
|
|
559
637
|
|