@@ -287,13 +287,21 @@ function __createContainer<
287
287
Container < TSyncDependencies , { } >
288
288
> ,
289
289
) : ContainerWithNewSyncDep < TName , TDependency > {
290
- return __createContainer (
291
- {
292
- ...syncDependencies ,
293
- [ name ] : dependency ,
294
- } ,
295
- asyncDependencies ,
296
- ) as ContainerWithNewSyncDep < TName , TDependency >
290
+ if ( name in syncDependencies ) {
291
+ return __createContainer (
292
+ {
293
+ ...syncDependencies ,
294
+ [ name ] : dependency ,
295
+ } ,
296
+ asyncDependencies ,
297
+ ) as ContainerWithNewSyncDep < TName , TDependency >
298
+ } else {
299
+ ; ( syncDependencies as Record < TName , unknown > ) [ name ] = dependency
300
+ return __createContainer (
301
+ syncDependencies ,
302
+ asyncDependencies ,
303
+ ) as ContainerWithNewSyncDep < TName , TDependency >
304
+ }
297
305
} ,
298
306
299
307
registerAsync < TName extends ContainerKey , TDependency > (
@@ -303,23 +311,39 @@ function __createContainer<
303
311
Container < TSyncDependencies , TAsyncDependencies >
304
312
> ,
305
313
) : ContainerWithNewAsyncDep < TName , TDependency > {
306
- return __createContainer ( syncDependencies , {
307
- ...asyncDependencies ,
308
- [ name ] : dependency ,
309
- } ) as ContainerWithNewAsyncDep < TName , TDependency >
314
+ if ( name in asyncDependencies ) {
315
+ return __createContainer ( syncDependencies , {
316
+ ...asyncDependencies ,
317
+ [ name ] : dependency ,
318
+ } ) as ContainerWithNewAsyncDep < TName , TDependency >
319
+ } else {
320
+ ; ( asyncDependencies as Record < TName , unknown > ) [ name ] = dependency
321
+ return __createContainer (
322
+ syncDependencies ,
323
+ asyncDependencies ,
324
+ ) as ContainerWithNewAsyncDep < TName , TDependency >
325
+ }
310
326
} ,
311
327
312
328
registerValue < TName extends ContainerKey , TDependency > (
313
329
name : TName ,
314
330
dependency : TDependency ,
315
331
) : ContainerWithNewSyncDep < TName , TDependency > {
316
- return __createContainer (
317
- {
318
- ...syncDependencies ,
319
- [ name ] : ( ) => dependency ,
320
- } ,
321
- asyncDependencies ,
322
- ) as ContainerWithNewSyncDep < TName , TDependency >
332
+ if ( name in syncDependencies ) {
333
+ return __createContainer (
334
+ {
335
+ ...syncDependencies ,
336
+ [ name ] : ( ) => dependency ,
337
+ } ,
338
+ asyncDependencies ,
339
+ ) as ContainerWithNewSyncDep < TName , TDependency >
340
+ } else {
341
+ ; ( syncDependencies as Record < TName , unknown > ) [ name ] = ( ) => dependency
342
+ return __createContainer (
343
+ syncDependencies ,
344
+ asyncDependencies ,
345
+ ) as ContainerWithNewSyncDep < TName , TDependency >
346
+ }
323
347
} ,
324
348
325
349
resolve < TName extends keyof TSyncDependencies > (
0 commit comments