@navios/di 0.3.0 → 0.4.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/README.md +67 -6
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +2659 -0
- package/coverage/coverage-final.json +46 -0
- package/coverage/docs/examples/basic-usage.mts.html +376 -0
- package/coverage/docs/examples/factory-pattern.mts.html +1039 -0
- package/coverage/docs/examples/index.html +176 -0
- package/coverage/docs/examples/injection-tokens.mts.html +760 -0
- package/coverage/docs/examples/request-scope-example.mts.html +847 -0
- package/coverage/docs/examples/service-lifecycle.mts.html +1162 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +236 -0
- package/coverage/lib/_tsup-dts-rollup.d.mts.html +2806 -0
- package/coverage/lib/index.d.mts.html +310 -0
- package/coverage/lib/index.html +131 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/src/container.mts.html +586 -0
- package/coverage/src/decorators/factory.decorator.mts.html +322 -0
- package/coverage/src/decorators/index.html +146 -0
- package/coverage/src/decorators/index.mts.html +91 -0
- package/coverage/src/decorators/injectable.decorator.mts.html +394 -0
- package/coverage/src/enums/index.html +146 -0
- package/coverage/src/enums/index.mts.html +91 -0
- package/coverage/src/enums/injectable-scope.enum.mts.html +127 -0
- package/coverage/src/enums/injectable-type.enum.mts.html +97 -0
- package/coverage/src/errors/errors.enum.mts.html +109 -0
- package/coverage/src/errors/factory-not-found.mts.html +109 -0
- package/coverage/src/errors/factory-token-not-resolved.mts.html +115 -0
- package/coverage/src/errors/index.html +221 -0
- package/coverage/src/errors/index.mts.html +106 -0
- package/coverage/src/errors/instance-destroying.mts.html +109 -0
- package/coverage/src/errors/instance-expired.mts.html +109 -0
- package/coverage/src/errors/instance-not-found.mts.html +109 -0
- package/coverage/src/errors/unknown-error.mts.html +130 -0
- package/coverage/src/event-emitter.mts.html +400 -0
- package/coverage/src/factory-context.mts.html +109 -0
- package/coverage/src/index.html +296 -0
- package/coverage/src/index.mts.html +139 -0
- package/coverage/src/injection-token.mts.html +571 -0
- package/coverage/src/injector.mts.html +133 -0
- package/coverage/src/interfaces/factory.interface.mts.html +121 -0
- package/coverage/src/interfaces/index.html +161 -0
- package/coverage/src/interfaces/index.mts.html +94 -0
- package/coverage/src/interfaces/on-service-destroy.interface.mts.html +94 -0
- package/coverage/src/interfaces/on-service-init.interface.mts.html +94 -0
- package/coverage/src/registry.mts.html +247 -0
- package/coverage/src/request-context-holder.mts.html +607 -0
- package/coverage/src/service-instantiator.mts.html +559 -0
- package/coverage/src/service-locator-event-bus.mts.html +289 -0
- package/coverage/src/service-locator-instance-holder.mts.html +307 -0
- package/coverage/src/service-locator-manager.mts.html +604 -0
- package/coverage/src/service-locator.mts.html +2911 -0
- package/coverage/src/symbols/index.html +131 -0
- package/coverage/src/symbols/index.mts.html +88 -0
- package/coverage/src/symbols/injectable-token.mts.html +88 -0
- package/coverage/src/utils/defer.mts.html +304 -0
- package/coverage/src/utils/get-injectable-token.mts.html +142 -0
- package/coverage/src/utils/get-injectors.mts.html +691 -0
- package/coverage/src/utils/index.html +176 -0
- package/coverage/src/utils/index.mts.html +97 -0
- package/coverage/src/utils/types.mts.html +241 -0
- package/docs/README.md +5 -2
- package/docs/api-reference.md +38 -0
- package/docs/container.md +75 -0
- package/docs/getting-started.md +4 -3
- package/docs/injectable.md +4 -3
- package/docs/migration.md +177 -0
- package/docs/request-contexts.md +364 -0
- package/lib/_tsup-dts-rollup.d.mts +180 -35
- package/lib/_tsup-dts-rollup.d.ts +180 -35
- package/lib/index.d.mts +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +485 -279
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +485 -280
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/defer.spec.mts +166 -0
- package/src/__tests__/errors.spec.mts +61 -0
- package/src/__tests__/event-emitter.spec.mts +163 -0
- package/src/__tests__/get-injectors.spec.mts +70 -0
- package/src/__tests__/registry.spec.mts +335 -0
- package/src/__tests__/request-scope.spec.mts +167 -4
- package/src/__tests__/service-instantiator.spec.mts +408 -0
- package/src/__tests__/service-locator-event-bus.spec.mts +242 -0
- package/src/__tests__/service-locator-manager.spec.mts +370 -0
- package/src/__tests__/unified-api.spec.mts +130 -0
- package/src/base-instance-holder-manager.mts +175 -0
- package/src/index.mts +1 -0
- package/src/request-context-holder.mts +85 -27
- package/src/service-locator-manager.mts +12 -70
- package/src/service-locator.mts +421 -226
|
@@ -0,0 +1,691 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/utils/get-injectors.mts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
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
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/utils</a> get-injectors.mts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">90.9% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>100/110</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">90.9% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>20/22</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">87.5% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>7/8</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">90.9% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>100/110</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</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>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-yes">1x</span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
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-neutral"> </span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </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-yes">1x</span>
|
|
341
|
+
<span class="cline-any cline-yes">14x</span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-yes">14x</span>
|
|
344
|
+
<span class="cline-any cline-yes">528x</span>
|
|
345
|
+
<span class="cline-any cline-yes">528x</span>
|
|
346
|
+
<span class="cline-any cline-yes">528x</span>
|
|
347
|
+
<span class="cline-any cline-yes">528x</span>
|
|
348
|
+
<span class="cline-any cline-yes">528x</span>
|
|
349
|
+
<span class="cline-any cline-yes">528x</span>
|
|
350
|
+
<span class="cline-any cline-yes">14x</span>
|
|
351
|
+
<span class="cline-any cline-yes">98x</span>
|
|
352
|
+
<span class="cline-any cline-yes">1x</span>
|
|
353
|
+
<span class="cline-any cline-yes">1x</span>
|
|
354
|
+
<span class="cline-any cline-yes">1x</span>
|
|
355
|
+
<span class="cline-any cline-yes">1x</span>
|
|
356
|
+
<span class="cline-any cline-yes">97x</span>
|
|
357
|
+
<span class="cline-any cline-yes">98x</span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
359
|
+
<span class="cline-any cline-yes">14x</span>
|
|
360
|
+
<span class="cline-any cline-yes">14x</span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-yes">14x</span>
|
|
363
|
+
<span class="cline-any cline-yes">12x</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-yes">12x</span>
|
|
369
|
+
<span class="cline-any cline-yes">12x</span>
|
|
370
|
+
<span class="cline-any cline-yes">12x</span>
|
|
371
|
+
<span class="cline-any cline-yes">1x</span>
|
|
372
|
+
<span class="cline-any cline-yes">1x</span>
|
|
373
|
+
<span class="cline-any cline-yes">1x</span>
|
|
374
|
+
<span class="cline-any cline-yes">1x</span>
|
|
375
|
+
<span class="cline-any cline-yes">11x</span>
|
|
376
|
+
<span class="cline-any cline-yes">1x</span>
|
|
377
|
+
<span class="cline-any cline-yes">1x</span>
|
|
378
|
+
<span class="cline-any cline-yes">1x</span>
|
|
379
|
+
<span class="cline-any cline-no"> </span>
|
|
380
|
+
<span class="cline-any cline-no"> </span>
|
|
381
|
+
<span class="cline-any cline-no"> </span>
|
|
382
|
+
<span class="cline-any cline-no"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">1x</span>
|
|
384
|
+
<span class="cline-any cline-yes">1x</span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-yes">10x</span>
|
|
387
|
+
<span class="cline-any cline-yes">10x</span>
|
|
388
|
+
<span class="cline-any cline-yes">10x</span>
|
|
389
|
+
<span class="cline-any cline-yes">10x</span>
|
|
390
|
+
<span class="cline-any cline-yes">10x</span>
|
|
391
|
+
<span class="cline-any cline-yes">10x</span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-yes">10x</span>
|
|
394
|
+
<span class="cline-any cline-yes">12x</span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-yes">14x</span>
|
|
397
|
+
<span class="cline-any cline-yes">239x</span>
|
|
398
|
+
<span class="cline-any cline-yes">265x</span>
|
|
399
|
+
<span class="cline-any cline-yes">265x</span>
|
|
400
|
+
<span class="cline-any cline-yes">265x</span>
|
|
401
|
+
<span class="cline-any cline-yes">265x</span>
|
|
402
|
+
<span class="cline-any cline-yes">26x</span>
|
|
403
|
+
<span class="cline-any cline-yes">26x</span>
|
|
404
|
+
<span class="cline-any cline-yes">26x</span>
|
|
405
|
+
<span class="cline-any cline-yes">26x</span>
|
|
406
|
+
<span class="cline-any cline-yes">239x</span>
|
|
407
|
+
<span class="cline-any cline-yes">239x</span>
|
|
408
|
+
<span class="cline-any cline-yes">239x</span>
|
|
409
|
+
<span class="cline-any cline-yes">239x</span>
|
|
410
|
+
<span class="cline-any cline-yes">239x</span>
|
|
411
|
+
<span class="cline-any cline-yes">265x</span>
|
|
412
|
+
<span class="cline-any cline-yes">27x</span>
|
|
413
|
+
<span class="cline-any cline-yes">27x</span>
|
|
414
|
+
<span class="cline-any cline-yes">265x</span>
|
|
415
|
+
<span class="cline-any cline-yes">265x</span>
|
|
416
|
+
<span class="cline-any cline-yes">265x</span>
|
|
417
|
+
<span class="cline-any cline-yes">265x</span>
|
|
418
|
+
<span class="cline-any cline-yes">265x</span>
|
|
419
|
+
<span class="cline-any cline-yes">265x</span>
|
|
420
|
+
<span class="cline-any cline-yes">265x</span>
|
|
421
|
+
<span class="cline-any cline-yes">265x</span>
|
|
422
|
+
<span class="cline-any cline-yes">265x</span>
|
|
423
|
+
<span class="cline-any cline-yes">239x</span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-yes">14x</span>
|
|
426
|
+
<span class="cline-any cline-neutral"> </span>
|
|
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-yes">61x</span>
|
|
433
|
+
<span class="cline-any cline-neutral"> </span>
|
|
434
|
+
<span class="cline-any cline-yes">61x</span>
|
|
435
|
+
<span class="cline-any cline-neutral"> </span>
|
|
436
|
+
<span class="cline-any cline-yes">61x</span>
|
|
437
|
+
<span class="cline-any cline-yes">61x</span>
|
|
438
|
+
<span class="cline-any cline-yes">61x</span>
|
|
439
|
+
<span class="cline-any cline-yes">61x</span>
|
|
440
|
+
<span class="cline-any cline-yes">61x</span>
|
|
441
|
+
<span class="cline-any cline-yes">27x</span>
|
|
442
|
+
<span class="cline-any cline-yes">27x</span>
|
|
443
|
+
<span class="cline-any cline-yes">27x</span>
|
|
444
|
+
<span class="cline-any cline-yes">27x</span>
|
|
445
|
+
<span class="cline-any cline-no"> </span>
|
|
446
|
+
<span class="cline-any cline-no"> </span>
|
|
447
|
+
<span class="cline-any cline-yes">27x</span>
|
|
448
|
+
<span class="cline-any cline-yes">27x</span>
|
|
449
|
+
<span class="cline-any cline-yes">27x</span>
|
|
450
|
+
<span class="cline-any cline-yes">27x</span>
|
|
451
|
+
<span class="cline-any cline-no"> </span>
|
|
452
|
+
<span class="cline-any cline-no"> </span>
|
|
453
|
+
<span class="cline-any cline-no"> </span>
|
|
454
|
+
<span class="cline-any cline-no"> </span>
|
|
455
|
+
<span class="cline-any cline-yes">27x</span>
|
|
456
|
+
<span class="cline-any cline-yes">27x</span>
|
|
457
|
+
<span class="cline-any cline-yes">27x</span>
|
|
458
|
+
<span class="cline-any cline-yes">32x</span>
|
|
459
|
+
<span class="cline-any cline-yes">61x</span>
|
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
461
|
+
<span class="cline-any cline-yes">14x</span>
|
|
462
|
+
<span class="cline-any cline-yes">14x</span>
|
|
463
|
+
<span class="cline-any cline-yes">14x</span>
|
|
464
|
+
<span class="cline-any cline-yes">14x</span>
|
|
465
|
+
<span class="cline-any cline-yes">14x</span>
|
|
466
|
+
<span class="cline-any cline-yes">14x</span>
|
|
467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
468
|
+
<span class="cline-any cline-yes">14x</span>
|
|
469
|
+
<span class="cline-any cline-yes">14x</span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { z, ZodObject, ZodType } from 'zod/v4'
|
|
471
|
+
|
|
472
|
+
import type { FactoryContext } from '../factory-context.mjs'
|
|
473
|
+
import type {
|
|
474
|
+
BoundInjectionToken,
|
|
475
|
+
ClassType,
|
|
476
|
+
FactoryInjectionToken,
|
|
477
|
+
InjectionToken,
|
|
478
|
+
InjectionTokenSchemaType,
|
|
479
|
+
} from '../injection-token.mjs'
|
|
480
|
+
import type { Factorable } from '../interfaces/factory.interface.mjs'
|
|
481
|
+
import type { InjectState, Join, UnionToArray } from './types.mjs'
|
|
482
|
+
|
|
483
|
+
import { InjectableTokenMeta } from '../symbols/index.mjs'
|
|
484
|
+
|
|
485
|
+
export interface Injectors {
|
|
486
|
+
// #1 Simple class
|
|
487
|
+
asyncInject<T extends ClassType>(
|
|
488
|
+
token: T,
|
|
489
|
+
): InstanceType<T> extends Factorable<infer R>
|
|
490
|
+
? Promise<R>
|
|
491
|
+
: Promise<InstanceType<T>>
|
|
492
|
+
// #2 Token with required Schema
|
|
493
|
+
asyncInject<T, S extends InjectionTokenSchemaType>(
|
|
494
|
+
token: InjectionToken<T, S>,
|
|
495
|
+
args: z.input<S>,
|
|
496
|
+
): Promise<T>
|
|
497
|
+
// #3 Token with optional Schema
|
|
498
|
+
asyncInject<T, S extends InjectionTokenSchemaType, R extends boolean>(
|
|
499
|
+
token: InjectionToken<T, S, R>,
|
|
500
|
+
): R extends false
|
|
501
|
+
? Promise<T>
|
|
502
|
+
: S extends ZodType<infer Type>
|
|
503
|
+
? `Error: Your token requires args: ${Join<
|
|
504
|
+
UnionToArray<keyof Type>,
|
|
505
|
+
', '
|
|
506
|
+
>}`
|
|
507
|
+
: 'Error: Your token requires args'
|
|
508
|
+
// #4 Token with no Schema
|
|
509
|
+
asyncInject<T>(token: InjectionToken<T, undefined>): Promise<T>
|
|
510
|
+
asyncInject<T>(token: BoundInjectionToken<T, any>): Promise<T>
|
|
511
|
+
asyncInject<T>(token: FactoryInjectionToken<T, any>): Promise<T>
|
|
512
|
+
|
|
513
|
+
inject<T extends ClassType>(
|
|
514
|
+
token: T,
|
|
515
|
+
): InstanceType<T> extends Factorable<infer R> ? R : InstanceType<T>
|
|
516
|
+
inject<T, S extends InjectionTokenSchemaType>(
|
|
517
|
+
token: InjectionToken<T, S>,
|
|
518
|
+
args: z.input<S>,
|
|
519
|
+
): T
|
|
520
|
+
// #3 Token with optional Schema
|
|
521
|
+
inject<T, S extends InjectionTokenSchemaType, R extends boolean>(
|
|
522
|
+
token: InjectionToken<T, S, R>,
|
|
523
|
+
): R extends false
|
|
524
|
+
? T
|
|
525
|
+
: S extends ZodType<infer Type>
|
|
526
|
+
? `Error: Your token requires args: ${Join<
|
|
527
|
+
UnionToArray<keyof Type>,
|
|
528
|
+
', '
|
|
529
|
+
>}`
|
|
530
|
+
: 'Error: Your token requires args'
|
|
531
|
+
inject<T>(token: InjectionToken<T, undefined>): T
|
|
532
|
+
inject<T>(token: BoundInjectionToken<T, any>): T
|
|
533
|
+
inject<T>(token: FactoryInjectionToken<T, any>): T
|
|
534
|
+
|
|
535
|
+
wrapSyncInit(
|
|
536
|
+
cb: () => any,
|
|
537
|
+
): (injectState?: InjectState) => [any, Promise<any>[], InjectState]
|
|
538
|
+
|
|
539
|
+
provideFactoryContext(context: FactoryContext | null): FactoryContext | null
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
export function getInjectors() {
|
|
543
|
+
let currentFactoryContext: FactoryContext | null = null
|
|
544
|
+
|
|
545
|
+
function provideFactoryContext(
|
|
546
|
+
context: FactoryContext,
|
|
547
|
+
): FactoryContext | null {
|
|
548
|
+
const original = currentFactoryContext
|
|
549
|
+
currentFactoryContext = context
|
|
550
|
+
return original
|
|
551
|
+
}
|
|
552
|
+
function getFactoryContext(): FactoryContext {
|
|
553
|
+
if (!currentFactoryContext) {
|
|
554
|
+
throw new Error(
|
|
555
|
+
'[Injector] Trying to access injection context outside of a injectable context',
|
|
556
|
+
)
|
|
557
|
+
}
|
|
558
|
+
return currentFactoryContext
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
let promiseCollector: null | ((promise: Promise<any>) => void) = null
|
|
562
|
+
let injectState: InjectState | null = null
|
|
563
|
+
|
|
564
|
+
function asyncInject(
|
|
565
|
+
token:
|
|
566
|
+
| ClassType
|
|
567
|
+
| InjectionToken<any>
|
|
568
|
+
| BoundInjectionToken<any, any>
|
|
569
|
+
| FactoryInjectionToken<any, any>,
|
|
570
|
+
args?: unknown,
|
|
571
|
+
) {
|
|
572
|
+
if (!injectState) {
|
|
573
|
+
throw new Error(
|
|
574
|
+
'[Injector] Trying to access inject outside of a injectable context',
|
|
575
|
+
)
|
|
576
|
+
}
|
|
577
|
+
if (injectState.isFrozen) {
|
|
578
|
+
const idx = injectState.currentIndex++
|
|
579
|
+
const request = injectState.requests[idx]
|
|
580
|
+
if (request.token !== token) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
581
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
582
|
+
<span class="cstat-no" title="statement not covered" > `[Injector] Wrong token order. Expected ${request.token.toString()} but got ${token.toString()}`,</span>
|
|
583
|
+
<span class="cstat-no" title="statement not covered" > )</span>
|
|
584
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
585
|
+
return request.promise
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
const promise = getFactoryContext().inject(token as any, args as any)
|
|
589
|
+
injectState.requests.push({
|
|
590
|
+
token,
|
|
591
|
+
promise,
|
|
592
|
+
})
|
|
593
|
+
injectState.currentIndex++
|
|
594
|
+
|
|
595
|
+
return promise
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
function wrapSyncInit(cb: () => any) {
|
|
599
|
+
return (previousState?: InjectState) => {
|
|
600
|
+
const promises: Promise<any>[] = []
|
|
601
|
+
const originalPromiseCollector = promiseCollector
|
|
602
|
+
const originalInjectState = injectState
|
|
603
|
+
injectState = previousState
|
|
604
|
+
? {
|
|
605
|
+
...previousState,
|
|
606
|
+
currentIndex: 0,
|
|
607
|
+
}
|
|
608
|
+
: {
|
|
609
|
+
currentIndex: 0,
|
|
610
|
+
isFrozen: false,
|
|
611
|
+
requests: [],
|
|
612
|
+
}
|
|
613
|
+
promiseCollector = (promise) => {
|
|
614
|
+
promises.push(promise)
|
|
615
|
+
}
|
|
616
|
+
const result = cb()
|
|
617
|
+
promiseCollector = originalPromiseCollector
|
|
618
|
+
const newInjectState = {
|
|
619
|
+
...injectState,
|
|
620
|
+
isFrozen: true,
|
|
621
|
+
}
|
|
622
|
+
injectState = originalInjectState
|
|
623
|
+
return [result, promises, newInjectState]
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
function inject<
|
|
628
|
+
T,
|
|
629
|
+
Token extends
|
|
630
|
+
| InjectionToken<T>
|
|
631
|
+
| BoundInjectionToken<T, any>
|
|
632
|
+
| FactoryInjectionToken<T, any>,
|
|
633
|
+
S extends ZodObject | unknown = Token['schema'],
|
|
634
|
+
>(token: Token, args?: S extends ZodObject ? z.input<S> : never): T {
|
|
635
|
+
// @ts-expect-error In case we have a class
|
|
636
|
+
const realToken = token[InjectableTokenMeta] ?? token
|
|
637
|
+
|
|
638
|
+
const instance = getFactoryContext().locator.getSyncInstance(
|
|
639
|
+
realToken,
|
|
640
|
+
args,
|
|
641
|
+
)
|
|
642
|
+
if (!instance) {
|
|
643
|
+
if (promiseCollector) {
|
|
644
|
+
const promise = getFactoryContext().inject(realToken, args)
|
|
645
|
+
promiseCollector(promise)
|
|
646
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > } else {</span>
|
|
647
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(`[Injector] Cannot initiate ${realToken.toString()}`)</span>
|
|
648
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
649
|
+
return new Proxy(
|
|
650
|
+
{},
|
|
651
|
+
{
|
|
652
|
+
<span class="fstat-no" title="function not covered" > get() {</span>
|
|
653
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
654
|
+
<span class="cstat-no" title="statement not covered" > `[Injector] Trying to access ${realToken.toString()} before it's initialized, please use asyncInject() instead of inject() or do not use the value outside of class methods`,</span>
|
|
655
|
+
<span class="cstat-no" title="statement not covered" > )</span>
|
|
656
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
657
|
+
},
|
|
658
|
+
) as unknown as T
|
|
659
|
+
}
|
|
660
|
+
return instance as unknown as T
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
const injectors: Injectors = {
|
|
664
|
+
asyncInject,
|
|
665
|
+
inject,
|
|
666
|
+
wrapSyncInit,
|
|
667
|
+
provideFactoryContext,
|
|
668
|
+
} as Injectors
|
|
669
|
+
|
|
670
|
+
return injectors
|
|
671
|
+
}
|
|
672
|
+
</pre></td></tr></table></pre>
|
|
673
|
+
|
|
674
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
675
|
+
</div><!-- /wrapper -->
|
|
676
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
677
|
+
Code coverage generated by
|
|
678
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
679
|
+
at 2025-09-19T12:38:51.382Z
|
|
680
|
+
</div>
|
|
681
|
+
<script src="../../prettify.js"></script>
|
|
682
|
+
<script>
|
|
683
|
+
window.onload = function () {
|
|
684
|
+
prettyPrint();
|
|
685
|
+
};
|
|
686
|
+
</script>
|
|
687
|
+
<script src="../../sorter.js"></script>
|
|
688
|
+
<script src="../../block-navigation.js"></script>
|
|
689
|
+
</body>
|
|
690
|
+
</html>
|
|
691
|
+
|