@navios/di 0.4.1 → 0.5.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 +211 -1
- package/coverage/clover.xml +1912 -1277
- package/coverage/coverage-final.json +37 -28
- package/coverage/docs/examples/basic-usage.mts.html +1 -1
- package/coverage/docs/examples/factory-pattern.mts.html +1 -1
- package/coverage/docs/examples/index.html +1 -1
- package/coverage/docs/examples/injection-tokens.mts.html +1 -1
- package/coverage/docs/examples/request-scope-example.mts.html +1 -1
- package/coverage/docs/examples/service-lifecycle.mts.html +1 -1
- package/coverage/index.html +71 -41
- package/coverage/lib/_tsup-dts-rollup.d.mts.html +682 -43
- package/coverage/lib/index.d.mts.html +7 -4
- package/coverage/lib/index.html +5 -5
- package/coverage/lib/testing/index.d.mts.html +91 -0
- package/coverage/lib/testing/index.html +116 -0
- package/coverage/src/base-instance-holder-manager.mts.html +589 -0
- package/coverage/src/container.mts.html +257 -74
- package/coverage/src/decorators/factory.decorator.mts.html +1 -1
- package/coverage/src/decorators/index.html +1 -1
- package/coverage/src/decorators/index.mts.html +1 -1
- package/coverage/src/decorators/injectable.decorator.mts.html +20 -20
- package/coverage/src/enums/index.html +1 -1
- package/coverage/src/enums/index.mts.html +1 -1
- package/coverage/src/enums/injectable-scope.enum.mts.html +1 -1
- package/coverage/src/enums/injectable-type.enum.mts.html +1 -1
- package/coverage/src/errors/di-error.mts.html +292 -0
- package/coverage/src/errors/errors.enum.mts.html +30 -21
- package/coverage/src/errors/factory-not-found.mts.html +31 -22
- package/coverage/src/errors/factory-token-not-resolved.mts.html +29 -26
- package/coverage/src/errors/index.html +56 -41
- package/coverage/src/errors/index.mts.html +15 -9
- package/coverage/src/errors/instance-destroying.mts.html +31 -22
- package/coverage/src/errors/instance-expired.mts.html +31 -22
- package/coverage/src/errors/instance-not-found.mts.html +31 -22
- package/coverage/src/errors/unknown-error.mts.html +31 -43
- package/coverage/src/event-emitter.mts.html +14 -14
- package/coverage/src/factory-context.mts.html +1 -1
- package/coverage/src/index.html +121 -46
- package/coverage/src/index.mts.html +7 -4
- package/coverage/src/injection-token.mts.html +28 -28
- package/coverage/src/injector.mts.html +1 -1
- package/coverage/src/instance-resolver.mts.html +1762 -0
- package/coverage/src/interfaces/factory.interface.mts.html +1 -1
- package/coverage/src/interfaces/index.html +1 -1
- package/coverage/src/interfaces/index.mts.html +1 -1
- 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/registry.mts.html +28 -28
- package/coverage/src/request-context-holder.mts.html +183 -102
- package/coverage/src/request-context-manager.mts.html +532 -0
- package/coverage/src/service-instantiator.mts.html +49 -49
- package/coverage/src/service-invalidator.mts.html +1372 -0
- package/coverage/src/service-locator-event-bus.mts.html +48 -48
- package/coverage/src/service-locator-instance-holder.mts.html +2 -14
- package/coverage/src/service-locator-manager.mts.html +71 -335
- package/coverage/src/service-locator.mts.html +240 -2328
- package/coverage/src/symbols/index.html +1 -1
- package/coverage/src/symbols/index.mts.html +1 -1
- package/coverage/src/symbols/injectable-token.mts.html +1 -1
- package/coverage/src/testing/index.html +131 -0
- package/coverage/src/testing/index.mts.html +88 -0
- package/coverage/src/testing/test-container.mts.html +445 -0
- package/coverage/src/token-processor.mts.html +607 -0
- package/coverage/src/utils/defer.mts.html +28 -214
- package/coverage/src/utils/get-injectable-token.mts.html +7 -7
- package/coverage/src/utils/get-injectors.mts.html +99 -99
- package/coverage/src/utils/index.html +15 -15
- package/coverage/src/utils/index.mts.html +4 -7
- package/coverage/src/utils/types.mts.html +1 -1
- package/docs/injectable.md +51 -11
- package/docs/scopes.md +63 -29
- package/lib/_tsup-dts-rollup.d.mts +447 -212
- package/lib/_tsup-dts-rollup.d.ts +447 -212
- package/lib/chunk-44F3LXW5.mjs +2043 -0
- package/lib/chunk-44F3LXW5.mjs.map +1 -0
- package/lib/index.d.mts +6 -4
- package/lib/index.d.ts +6 -4
- package/lib/index.js +1199 -773
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +4 -1599
- package/lib/index.mjs.map +1 -1
- package/lib/testing/index.d.mts +2 -0
- package/lib/testing/index.d.ts +2 -0
- package/lib/testing/index.js +2060 -0
- package/lib/testing/index.js.map +1 -0
- package/lib/testing/index.mjs +73 -0
- package/lib/testing/index.mjs.map +1 -0
- package/package.json +11 -1
- package/src/__tests__/container.spec.mts +47 -13
- package/src/__tests__/errors.spec.mts +53 -27
- package/src/__tests__/injectable.spec.mts +73 -0
- package/src/__tests__/request-scope.spec.mts +0 -2
- package/src/__tests__/service-locator-manager.spec.mts +12 -82
- package/src/__tests__/service-locator.spec.mts +1009 -1
- package/src/__type-tests__/inject.spec-d.mts +30 -7
- package/src/__type-tests__/injectable.spec-d.mts +76 -37
- package/src/base-instance-holder-manager.mts +2 -9
- package/src/container.mts +70 -10
- package/src/decorators/injectable.decorator.mts +29 -5
- package/src/errors/di-error.mts +69 -0
- package/src/errors/index.mts +9 -7
- package/src/injection-token.mts +1 -0
- package/src/injector.mts +2 -0
- package/src/instance-resolver.mts +559 -0
- package/src/request-context-holder.mts +0 -2
- package/src/request-context-manager.mts +149 -0
- package/src/service-invalidator.mts +429 -0
- package/src/service-locator-instance-holder.mts +0 -4
- package/src/service-locator-manager.mts +10 -40
- package/src/service-locator.mts +86 -782
- package/src/testing/README.md +80 -0
- package/src/testing/__tests__/test-container.spec.mts +173 -0
- package/src/testing/index.mts +1 -0
- package/src/testing/test-container.mts +120 -0
- package/src/token-processor.mts +174 -0
- package/src/utils/get-injectors.mts +161 -24
- package/src/utils/index.mts +0 -1
- package/src/utils/types.mts +12 -8
- package/tsup.config.mts +1 -1
- package/src/__tests__/defer.spec.mts +0 -166
- package/src/errors/errors.enum.mts +0 -8
- package/src/errors/factory-not-found.mts +0 -8
- package/src/errors/factory-token-not-resolved.mts +0 -10
- package/src/errors/instance-destroying.mts +0 -8
- package/src/errors/instance-expired.mts +0 -8
- package/src/errors/instance-not-found.mts +0 -8
- package/src/errors/unknown-error.mts +0 -15
- package/src/utils/defer.mts +0 -73
|
@@ -970,7 +970,433 @@
|
|
|
970
970
|
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
971
|
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
972
|
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
-
<a name='L908'></a><a href='#L908'>908</a
|
|
973
|
+
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
+
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
+
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
+
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
+
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
+
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
+
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
+
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
+
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
+
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
+
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
+
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
+
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
+
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
+
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
+
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
+
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
+
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
+
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
+
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
+
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
+
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
+
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
+
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
+
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
+
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
+
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
+
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
+
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
+
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
+
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
+
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
+
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
+
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
+
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
+
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
+
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
+
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
+
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
+
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
+
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
+
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
+
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
+
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
+
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
+
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
+
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
+
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
+
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
+
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
+
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
+
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
+
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
+
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
+
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
+
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
+
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
+
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
+
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
+
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
+
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
+
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
+
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
+
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
+
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
+
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
+
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
+
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
+
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
+
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
+
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
+
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
+
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
+
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
+
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
+
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
+
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
+
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
+
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
+
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
+
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
+
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
+
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
+
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
+
<a name='L992'></a><a href='#L992'>992</a>
|
|
1058
|
+
<a name='L993'></a><a href='#L993'>993</a>
|
|
1059
|
+
<a name='L994'></a><a href='#L994'>994</a>
|
|
1060
|
+
<a name='L995'></a><a href='#L995'>995</a>
|
|
1061
|
+
<a name='L996'></a><a href='#L996'>996</a>
|
|
1062
|
+
<a name='L997'></a><a href='#L997'>997</a>
|
|
1063
|
+
<a name='L998'></a><a href='#L998'>998</a>
|
|
1064
|
+
<a name='L999'></a><a href='#L999'>999</a>
|
|
1065
|
+
<a name='L1000'></a><a href='#L1000'>1000</a>
|
|
1066
|
+
<a name='L1001'></a><a href='#L1001'>1001</a>
|
|
1067
|
+
<a name='L1002'></a><a href='#L1002'>1002</a>
|
|
1068
|
+
<a name='L1003'></a><a href='#L1003'>1003</a>
|
|
1069
|
+
<a name='L1004'></a><a href='#L1004'>1004</a>
|
|
1070
|
+
<a name='L1005'></a><a href='#L1005'>1005</a>
|
|
1071
|
+
<a name='L1006'></a><a href='#L1006'>1006</a>
|
|
1072
|
+
<a name='L1007'></a><a href='#L1007'>1007</a>
|
|
1073
|
+
<a name='L1008'></a><a href='#L1008'>1008</a>
|
|
1074
|
+
<a name='L1009'></a><a href='#L1009'>1009</a>
|
|
1075
|
+
<a name='L1010'></a><a href='#L1010'>1010</a>
|
|
1076
|
+
<a name='L1011'></a><a href='#L1011'>1011</a>
|
|
1077
|
+
<a name='L1012'></a><a href='#L1012'>1012</a>
|
|
1078
|
+
<a name='L1013'></a><a href='#L1013'>1013</a>
|
|
1079
|
+
<a name='L1014'></a><a href='#L1014'>1014</a>
|
|
1080
|
+
<a name='L1015'></a><a href='#L1015'>1015</a>
|
|
1081
|
+
<a name='L1016'></a><a href='#L1016'>1016</a>
|
|
1082
|
+
<a name='L1017'></a><a href='#L1017'>1017</a>
|
|
1083
|
+
<a name='L1018'></a><a href='#L1018'>1018</a>
|
|
1084
|
+
<a name='L1019'></a><a href='#L1019'>1019</a>
|
|
1085
|
+
<a name='L1020'></a><a href='#L1020'>1020</a>
|
|
1086
|
+
<a name='L1021'></a><a href='#L1021'>1021</a>
|
|
1087
|
+
<a name='L1022'></a><a href='#L1022'>1022</a>
|
|
1088
|
+
<a name='L1023'></a><a href='#L1023'>1023</a>
|
|
1089
|
+
<a name='L1024'></a><a href='#L1024'>1024</a>
|
|
1090
|
+
<a name='L1025'></a><a href='#L1025'>1025</a>
|
|
1091
|
+
<a name='L1026'></a><a href='#L1026'>1026</a>
|
|
1092
|
+
<a name='L1027'></a><a href='#L1027'>1027</a>
|
|
1093
|
+
<a name='L1028'></a><a href='#L1028'>1028</a>
|
|
1094
|
+
<a name='L1029'></a><a href='#L1029'>1029</a>
|
|
1095
|
+
<a name='L1030'></a><a href='#L1030'>1030</a>
|
|
1096
|
+
<a name='L1031'></a><a href='#L1031'>1031</a>
|
|
1097
|
+
<a name='L1032'></a><a href='#L1032'>1032</a>
|
|
1098
|
+
<a name='L1033'></a><a href='#L1033'>1033</a>
|
|
1099
|
+
<a name='L1034'></a><a href='#L1034'>1034</a>
|
|
1100
|
+
<a name='L1035'></a><a href='#L1035'>1035</a>
|
|
1101
|
+
<a name='L1036'></a><a href='#L1036'>1036</a>
|
|
1102
|
+
<a name='L1037'></a><a href='#L1037'>1037</a>
|
|
1103
|
+
<a name='L1038'></a><a href='#L1038'>1038</a>
|
|
1104
|
+
<a name='L1039'></a><a href='#L1039'>1039</a>
|
|
1105
|
+
<a name='L1040'></a><a href='#L1040'>1040</a>
|
|
1106
|
+
<a name='L1041'></a><a href='#L1041'>1041</a>
|
|
1107
|
+
<a name='L1042'></a><a href='#L1042'>1042</a>
|
|
1108
|
+
<a name='L1043'></a><a href='#L1043'>1043</a>
|
|
1109
|
+
<a name='L1044'></a><a href='#L1044'>1044</a>
|
|
1110
|
+
<a name='L1045'></a><a href='#L1045'>1045</a>
|
|
1111
|
+
<a name='L1046'></a><a href='#L1046'>1046</a>
|
|
1112
|
+
<a name='L1047'></a><a href='#L1047'>1047</a>
|
|
1113
|
+
<a name='L1048'></a><a href='#L1048'>1048</a>
|
|
1114
|
+
<a name='L1049'></a><a href='#L1049'>1049</a>
|
|
1115
|
+
<a name='L1050'></a><a href='#L1050'>1050</a>
|
|
1116
|
+
<a name='L1051'></a><a href='#L1051'>1051</a>
|
|
1117
|
+
<a name='L1052'></a><a href='#L1052'>1052</a>
|
|
1118
|
+
<a name='L1053'></a><a href='#L1053'>1053</a>
|
|
1119
|
+
<a name='L1054'></a><a href='#L1054'>1054</a>
|
|
1120
|
+
<a name='L1055'></a><a href='#L1055'>1055</a>
|
|
1121
|
+
<a name='L1056'></a><a href='#L1056'>1056</a>
|
|
1122
|
+
<a name='L1057'></a><a href='#L1057'>1057</a>
|
|
1123
|
+
<a name='L1058'></a><a href='#L1058'>1058</a>
|
|
1124
|
+
<a name='L1059'></a><a href='#L1059'>1059</a>
|
|
1125
|
+
<a name='L1060'></a><a href='#L1060'>1060</a>
|
|
1126
|
+
<a name='L1061'></a><a href='#L1061'>1061</a>
|
|
1127
|
+
<a name='L1062'></a><a href='#L1062'>1062</a>
|
|
1128
|
+
<a name='L1063'></a><a href='#L1063'>1063</a>
|
|
1129
|
+
<a name='L1064'></a><a href='#L1064'>1064</a>
|
|
1130
|
+
<a name='L1065'></a><a href='#L1065'>1065</a>
|
|
1131
|
+
<a name='L1066'></a><a href='#L1066'>1066</a>
|
|
1132
|
+
<a name='L1067'></a><a href='#L1067'>1067</a>
|
|
1133
|
+
<a name='L1068'></a><a href='#L1068'>1068</a>
|
|
1134
|
+
<a name='L1069'></a><a href='#L1069'>1069</a>
|
|
1135
|
+
<a name='L1070'></a><a href='#L1070'>1070</a>
|
|
1136
|
+
<a name='L1071'></a><a href='#L1071'>1071</a>
|
|
1137
|
+
<a name='L1072'></a><a href='#L1072'>1072</a>
|
|
1138
|
+
<a name='L1073'></a><a href='#L1073'>1073</a>
|
|
1139
|
+
<a name='L1074'></a><a href='#L1074'>1074</a>
|
|
1140
|
+
<a name='L1075'></a><a href='#L1075'>1075</a>
|
|
1141
|
+
<a name='L1076'></a><a href='#L1076'>1076</a>
|
|
1142
|
+
<a name='L1077'></a><a href='#L1077'>1077</a>
|
|
1143
|
+
<a name='L1078'></a><a href='#L1078'>1078</a>
|
|
1144
|
+
<a name='L1079'></a><a href='#L1079'>1079</a>
|
|
1145
|
+
<a name='L1080'></a><a href='#L1080'>1080</a>
|
|
1146
|
+
<a name='L1081'></a><a href='#L1081'>1081</a>
|
|
1147
|
+
<a name='L1082'></a><a href='#L1082'>1082</a>
|
|
1148
|
+
<a name='L1083'></a><a href='#L1083'>1083</a>
|
|
1149
|
+
<a name='L1084'></a><a href='#L1084'>1084</a>
|
|
1150
|
+
<a name='L1085'></a><a href='#L1085'>1085</a>
|
|
1151
|
+
<a name='L1086'></a><a href='#L1086'>1086</a>
|
|
1152
|
+
<a name='L1087'></a><a href='#L1087'>1087</a>
|
|
1153
|
+
<a name='L1088'></a><a href='#L1088'>1088</a>
|
|
1154
|
+
<a name='L1089'></a><a href='#L1089'>1089</a>
|
|
1155
|
+
<a name='L1090'></a><a href='#L1090'>1090</a>
|
|
1156
|
+
<a name='L1091'></a><a href='#L1091'>1091</a>
|
|
1157
|
+
<a name='L1092'></a><a href='#L1092'>1092</a>
|
|
1158
|
+
<a name='L1093'></a><a href='#L1093'>1093</a>
|
|
1159
|
+
<a name='L1094'></a><a href='#L1094'>1094</a>
|
|
1160
|
+
<a name='L1095'></a><a href='#L1095'>1095</a>
|
|
1161
|
+
<a name='L1096'></a><a href='#L1096'>1096</a>
|
|
1162
|
+
<a name='L1097'></a><a href='#L1097'>1097</a>
|
|
1163
|
+
<a name='L1098'></a><a href='#L1098'>1098</a>
|
|
1164
|
+
<a name='L1099'></a><a href='#L1099'>1099</a>
|
|
1165
|
+
<a name='L1100'></a><a href='#L1100'>1100</a>
|
|
1166
|
+
<a name='L1101'></a><a href='#L1101'>1101</a>
|
|
1167
|
+
<a name='L1102'></a><a href='#L1102'>1102</a>
|
|
1168
|
+
<a name='L1103'></a><a href='#L1103'>1103</a>
|
|
1169
|
+
<a name='L1104'></a><a href='#L1104'>1104</a>
|
|
1170
|
+
<a name='L1105'></a><a href='#L1105'>1105</a>
|
|
1171
|
+
<a name='L1106'></a><a href='#L1106'>1106</a>
|
|
1172
|
+
<a name='L1107'></a><a href='#L1107'>1107</a>
|
|
1173
|
+
<a name='L1108'></a><a href='#L1108'>1108</a>
|
|
1174
|
+
<a name='L1109'></a><a href='#L1109'>1109</a>
|
|
1175
|
+
<a name='L1110'></a><a href='#L1110'>1110</a>
|
|
1176
|
+
<a name='L1111'></a><a href='#L1111'>1111</a>
|
|
1177
|
+
<a name='L1112'></a><a href='#L1112'>1112</a>
|
|
1178
|
+
<a name='L1113'></a><a href='#L1113'>1113</a>
|
|
1179
|
+
<a name='L1114'></a><a href='#L1114'>1114</a>
|
|
1180
|
+
<a name='L1115'></a><a href='#L1115'>1115</a>
|
|
1181
|
+
<a name='L1116'></a><a href='#L1116'>1116</a>
|
|
1182
|
+
<a name='L1117'></a><a href='#L1117'>1117</a>
|
|
1183
|
+
<a name='L1118'></a><a href='#L1118'>1118</a>
|
|
1184
|
+
<a name='L1119'></a><a href='#L1119'>1119</a>
|
|
1185
|
+
<a name='L1120'></a><a href='#L1120'>1120</a>
|
|
1186
|
+
<a name='L1121'></a><a href='#L1121'>1121</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
1187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1204
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1205
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1206
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1208
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1214
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1216
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1218
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1220
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1228
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1383
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
974
1400
|
<span class="cline-any cline-neutral"> </span>
|
|
975
1401
|
<span class="cline-any cline-neutral"> </span>
|
|
976
1402
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1895,6 +2321,93 @@ declare type BaseInjectionTokenSchemaType = ZodObject | ZodRecord;
|
|
|
1895
2321
|
export { BaseInjectionTokenSchemaType }
|
|
1896
2322
|
export { BaseInjectionTokenSchemaType as BaseInjectionTokenSchemaType_alias_1 }
|
|
1897
2323
|
|
|
2324
|
+
/**
|
|
2325
|
+
* Abstract base class that provides common functionality for managing ServiceLocatorInstanceHolder objects.
|
|
2326
|
+
* This class contains shared patterns used by both RequestContextHolder and ServiceLocatorManager.
|
|
2327
|
+
*/
|
|
2328
|
+
declare abstract class BaseInstanceHolderManager {
|
|
2329
|
+
protected readonly logger: Console | null;
|
|
2330
|
+
protected readonly _holders: Map<string, ServiceLocatorInstanceHolder>;
|
|
2331
|
+
constructor(logger?: Console | null);
|
|
2332
|
+
/**
|
|
2333
|
+
* Protected getter for accessing the holders map from subclasses.
|
|
2334
|
+
*/
|
|
2335
|
+
protected get holders(): Map<string, ServiceLocatorInstanceHolder>;
|
|
2336
|
+
/**
|
|
2337
|
+
* Abstract method to get a holder by name. Each implementation defines its own return type
|
|
2338
|
+
* based on their specific error handling and validation needs.
|
|
2339
|
+
*/
|
|
2340
|
+
abstract get(name: string): any;
|
|
2341
|
+
/**
|
|
2342
|
+
* Abstract method to set a holder by name. Each implementation may have different validation logic.
|
|
2343
|
+
*/
|
|
2344
|
+
abstract set(name: string, holder: ServiceLocatorInstanceHolder): void;
|
|
2345
|
+
/**
|
|
2346
|
+
* Abstract method to check if a holder exists. Each implementation may have different validation logic.
|
|
2347
|
+
*/
|
|
2348
|
+
abstract has(name: string): any;
|
|
2349
|
+
/**
|
|
2350
|
+
* Deletes a holder by name.
|
|
2351
|
+
* @param name The name of the holder to delete
|
|
2352
|
+
* @returns true if the holder was deleted, false if it didn't exist
|
|
2353
|
+
*/
|
|
2354
|
+
delete(name: string): boolean;
|
|
2355
|
+
/**
|
|
2356
|
+
* Filters holders based on a predicate function.
|
|
2357
|
+
* @param predicate Function to test each holder
|
|
2358
|
+
* @returns A new Map containing only the holders that match the predicate
|
|
2359
|
+
*/
|
|
2360
|
+
filter(predicate: (value: ServiceLocatorInstanceHolder<any>, key: string) => boolean): Map<string, ServiceLocatorInstanceHolder>;
|
|
2361
|
+
/**
|
|
2362
|
+
* Clears all holders from this manager.
|
|
2363
|
+
*/
|
|
2364
|
+
clear(): void;
|
|
2365
|
+
/**
|
|
2366
|
+
* Gets the number of holders currently managed.
|
|
2367
|
+
*/
|
|
2368
|
+
size(): number;
|
|
2369
|
+
/**
|
|
2370
|
+
* Creates a new holder with Creating status and a deferred creation promise.
|
|
2371
|
+
* This is useful for creating placeholder holders that can be fulfilled later.
|
|
2372
|
+
* @param name The name of the instance
|
|
2373
|
+
* @param type The injectable type
|
|
2374
|
+
* @param scope The injectable scope
|
|
2375
|
+
* @param deps Optional set of dependencies
|
|
2376
|
+
* @param ttl Optional time-to-live in milliseconds (defaults to Infinity)
|
|
2377
|
+
* @returns A tuple containing the deferred promise and the holder
|
|
2378
|
+
*/
|
|
2379
|
+
createCreatingHolder<Instance>(name: string, type: InjectableType, scope: InjectableScope, deps?: Set<string>, ttl?: number): [
|
|
2380
|
+
ReturnType<typeof createDeferred<[undefined, Instance]>>,
|
|
2381
|
+
ServiceLocatorInstanceHolder<Instance>
|
|
2382
|
+
];
|
|
2383
|
+
/**
|
|
2384
|
+
* Creates a new holder with Created status and an actual instance.
|
|
2385
|
+
* This is useful for creating holders that already have their instance ready.
|
|
2386
|
+
* @param name The name of the instance
|
|
2387
|
+
* @param instance The actual instance to store
|
|
2388
|
+
* @param type The injectable type
|
|
2389
|
+
* @param scope The injectable scope
|
|
2390
|
+
* @param deps Optional set of dependencies
|
|
2391
|
+
* @param ttl Optional time-to-live in milliseconds (defaults to Infinity)
|
|
2392
|
+
* @returns The created holder
|
|
2393
|
+
*/
|
|
2394
|
+
protected createCreatedHolder<Instance>(name: string, instance: Instance, type: InjectableType, scope: InjectableScope, deps?: Set<string>, ttl?: number): ServiceLocatorInstanceHolder<Instance>;
|
|
2395
|
+
/**
|
|
2396
|
+
* Gets all holder names currently managed.
|
|
2397
|
+
*/
|
|
2398
|
+
getAllNames(): string[];
|
|
2399
|
+
/**
|
|
2400
|
+
* Gets all holders currently managed.
|
|
2401
|
+
*/
|
|
2402
|
+
getAllHolders(): ServiceLocatorInstanceHolder[];
|
|
2403
|
+
/**
|
|
2404
|
+
* Checks if this manager has any holders.
|
|
2405
|
+
*/
|
|
2406
|
+
isEmpty(): boolean;
|
|
2407
|
+
}
|
|
2408
|
+
export { BaseInstanceHolderManager }
|
|
2409
|
+
export { BaseInstanceHolderManager as BaseInstanceHolderManager_alias_1 }
|
|
2410
|
+
|
|
1898
2411
|
declare class BoundInjectionToken<T, S extends InjectionTokenSchemaType> {
|
|
1899
2412
|
readonly token: InjectionToken<T, S>;
|
|
1900
2413
|
readonly value: z.input<S>;
|
|
@@ -1942,6 +2455,9 @@ export { ClassTypeWithOptionalArgument as ClassTypeWithOptionalArgument_alias_1
|
|
|
1942
2455
|
* It wraps a ServiceLocator instance and provides convenient methods for getting instances.
|
|
1943
2456
|
*/
|
|
1944
2457
|
declare class Container {
|
|
2458
|
+
protected readonly registry: Registry;
|
|
2459
|
+
protected readonly logger: Console | null;
|
|
2460
|
+
protected readonly injectors: Injectors;
|
|
1945
2461
|
private readonly serviceLocator;
|
|
1946
2462
|
constructor(registry?: Registry, logger?: Console | null, injectors?: Injectors);
|
|
1947
2463
|
private registerSelf;
|
|
@@ -1990,6 +2506,11 @@ declare class Container {
|
|
|
1990
2506
|
* @param requestId The request ID to set as current
|
|
1991
2507
|
*/
|
|
1992
2508
|
setCurrentRequestContext(requestId: string): void;
|
|
2509
|
+
/**
|
|
2510
|
+
* Clears all instances and bindings from the container.
|
|
2511
|
+
* This is useful for testing or resetting the container state.
|
|
2512
|
+
*/
|
|
2513
|
+
clear(): void;
|
|
1993
2514
|
}
|
|
1994
2515
|
export { Container }
|
|
1995
2516
|
export { Container as Container_alias_1 }
|
|
@@ -2017,18 +2538,29 @@ export { defaultInjectors as defaultInjectors_alias_1 }
|
|
|
2017
2538
|
/**
|
|
2018
2539
|
* Default implementation of RequestContextHolder.
|
|
2019
2540
|
*/
|
|
2020
|
-
declare class DefaultRequestContextHolder implements RequestContextHolder {
|
|
2541
|
+
declare class DefaultRequestContextHolder extends BaseInstanceHolderManager implements RequestContextHolder {
|
|
2021
2542
|
readonly requestId: string;
|
|
2022
2543
|
readonly priority: number;
|
|
2023
|
-
readonly instances: Map<string, any>;
|
|
2024
|
-
readonly holders: Map<string, ServiceLocatorInstanceHolder>;
|
|
2025
2544
|
readonly metadata: Map<string, any>;
|
|
2026
2545
|
readonly createdAt: number;
|
|
2027
2546
|
constructor(requestId: string, priority?: number, initialMetadata?: Record<string, any>);
|
|
2547
|
+
/**
|
|
2548
|
+
* Public getter for holders to maintain interface compatibility.
|
|
2549
|
+
*/
|
|
2550
|
+
get holders(): Map<string, ServiceLocatorInstanceHolder>;
|
|
2551
|
+
/**
|
|
2552
|
+
* Gets a holder by name. For RequestContextHolder, this is a simple lookup.
|
|
2553
|
+
*/
|
|
2554
|
+
get(name: string): ServiceLocatorInstanceHolder | undefined;
|
|
2555
|
+
/**
|
|
2556
|
+
* Sets a holder by name.
|
|
2557
|
+
*/
|
|
2558
|
+
set(name: string, holder: ServiceLocatorInstanceHolder): void;
|
|
2559
|
+
/**
|
|
2560
|
+
* Checks if a holder exists by name.
|
|
2561
|
+
*/
|
|
2562
|
+
has(name: string): boolean;
|
|
2028
2563
|
addInstance(instanceName: string | InjectionToken<any, undefined>, instance: any, holder?: ServiceLocatorInstanceHolder): void;
|
|
2029
|
-
getInstance(instanceName: string): any | undefined;
|
|
2030
|
-
getHolder(instanceName: string): ServiceLocatorInstanceHolder | undefined;
|
|
2031
|
-
hasInstance(instanceName: string): boolean;
|
|
2032
2564
|
clear(): void;
|
|
2033
2565
|
getMetadata(key: string): any | undefined;
|
|
2034
2566
|
setMetadata(key: string, value: any): void;
|
|
@@ -2090,17 +2622,17 @@ export { ErrorsEnum as ErrorsEnum_alias_2 }
|
|
|
2090
2622
|
|
|
2091
2623
|
declare class EventEmitter<Events extends EventsConfig = {}> implements EventEmitterInterface<Events> {
|
|
2092
2624
|
private listeners;
|
|
2093
|
-
on<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void): () => void;
|
|
2094
|
-
off<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void): void;
|
|
2095
|
-
once<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void): () => void;
|
|
2625
|
+
on<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void | Promise<void>): () => void;
|
|
2626
|
+
off<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void | Promise<void>): void;
|
|
2627
|
+
once<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void | Promise<void>): () => void;
|
|
2096
2628
|
emit<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, ...args: Args): Promise<any>;
|
|
2097
2629
|
}
|
|
2098
2630
|
export { EventEmitter }
|
|
2099
2631
|
export { EventEmitter as EventEmitter_alias_1 }
|
|
2100
2632
|
|
|
2101
2633
|
declare interface EventEmitterInterface<Events extends EventsConfig> {
|
|
2102
|
-
on<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void): () => void;
|
|
2103
|
-
emit<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, ...args: Args): void;
|
|
2634
|
+
on<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, listener: (...args: Args) => void | Promise<void>): () => void;
|
|
2635
|
+
emit<E extends EventsNames<Events>, Args extends EventsArgs<Events, E>>(event: E, ...args: Args): void | Promise<void>;
|
|
2104
2636
|
}
|
|
2105
2637
|
export { EventEmitterInterface }
|
|
2106
2638
|
export { EventEmitterInterface as EventEmitterInterface_alias_1 }
|
|
@@ -2434,10 +2966,6 @@ declare interface RequestContextHolder {
|
|
|
2434
2966
|
* Unique identifier for this request context.
|
|
2435
2967
|
*/
|
|
2436
2968
|
readonly requestId: string;
|
|
2437
|
-
/**
|
|
2438
|
-
* Pre-prepared instances for this request, keyed by instance name.
|
|
2439
|
-
*/
|
|
2440
|
-
readonly instances: Map<string, any>;
|
|
2441
2969
|
/**
|
|
2442
2970
|
* Instance holders for request-scoped services.
|
|
2443
2971
|
*/
|
|
@@ -2463,18 +2991,14 @@ declare interface RequestContextHolder {
|
|
|
2463
2991
|
* Adds a pre-prepared instance to this context.
|
|
2464
2992
|
*/
|
|
2465
2993
|
addInstance(token: InjectionToken<any, undefined>, instance: any): void;
|
|
2466
|
-
/**
|
|
2467
|
-
* Gets a pre-prepared instance from this context.
|
|
2468
|
-
*/
|
|
2469
|
-
getInstance(instanceName: string): any | undefined;
|
|
2470
2994
|
/**
|
|
2471
2995
|
* Gets an instance holder from this context.
|
|
2472
2996
|
*/
|
|
2473
|
-
|
|
2997
|
+
get(instanceName: string): ServiceLocatorInstanceHolder | undefined;
|
|
2474
2998
|
/**
|
|
2475
2999
|
* Checks if this context has a pre-prepared instance.
|
|
2476
3000
|
*/
|
|
2477
|
-
|
|
3001
|
+
has(instanceName: string): boolean;
|
|
2478
3002
|
/**
|
|
2479
3003
|
* Clears all instances and holders from this context.
|
|
2480
3004
|
*/
|
|
@@ -2487,6 +3011,22 @@ declare interface RequestContextHolder {
|
|
|
2487
3011
|
* Sets metadata value by key.
|
|
2488
3012
|
*/
|
|
2489
3013
|
setMetadata(key: string, value: any): void;
|
|
3014
|
+
/**
|
|
3015
|
+
* Filters holders based on a predicate function.
|
|
3016
|
+
*/
|
|
3017
|
+
filter(predicate: (value: ServiceLocatorInstanceHolder<any>, key: string) => boolean): Map<string, ServiceLocatorInstanceHolder>;
|
|
3018
|
+
/**
|
|
3019
|
+
* Deletes a holder by name.
|
|
3020
|
+
*/
|
|
3021
|
+
delete(name: string): boolean;
|
|
3022
|
+
/**
|
|
3023
|
+
* Gets the number of holders currently managed.
|
|
3024
|
+
*/
|
|
3025
|
+
size(): number;
|
|
3026
|
+
/**
|
|
3027
|
+
* Checks if this manager has any holders.
|
|
3028
|
+
*/
|
|
3029
|
+
isEmpty(): boolean;
|
|
2490
3030
|
}
|
|
2491
3031
|
export { RequestContextHolder }
|
|
2492
3032
|
export { RequestContextHolder as RequestContextHolder_alias_1 }
|
|
@@ -2547,7 +3087,19 @@ declare class ServiceLocator {
|
|
|
2547
3087
|
getOrThrowInstance<Instance>(token: AnyInjectableType, args: any): Promise<Instance>;
|
|
2548
3088
|
getSyncInstance<Instance, Schema extends InjectionTokenSchemaType | undefined>(token: AnyInjectableType, args: Schema extends ZodObject ? z.input<Schema> : Schema extends ZodOptional<ZodObject> ? z.input<Schema> | undefined : undefined): Instance | null;
|
|
2549
3089
|
invalidate(service: string, round?: number): Promise<any>;
|
|
2550
|
-
|
|
3090
|
+
/**
|
|
3091
|
+
* Invalidates a single holder based on its current status.
|
|
3092
|
+
*/
|
|
3093
|
+
private invalidateHolder;
|
|
3094
|
+
/**
|
|
3095
|
+
* Destroys a holder and cleans up its resources.
|
|
3096
|
+
*/
|
|
3097
|
+
private destroyHolder;
|
|
3098
|
+
ready(): Promise<void>;
|
|
3099
|
+
/**
|
|
3100
|
+
* Waits for a holder to settle (either created, destroyed, or error state).
|
|
3101
|
+
*/
|
|
3102
|
+
private waitForHolderToSettle;
|
|
2551
3103
|
/**
|
|
2552
3104
|
* Begins a new request context with the given parameters.
|
|
2553
3105
|
* @param requestId Unique identifier for this request
|
|
@@ -2584,6 +3136,23 @@ declare class ServiceLocator {
|
|
|
2584
3136
|
* Gets an instance by its instance name, handling all the logic after instance name creation.
|
|
2585
3137
|
*/
|
|
2586
3138
|
private retrieveOrCreateInstanceByInstanceName;
|
|
3139
|
+
/**
|
|
3140
|
+
* Attempts to retrieve an existing instance, handling request-scoped and singleton instances.
|
|
3141
|
+
* Returns null if no instance exists and a new one should be created.
|
|
3142
|
+
*/
|
|
3143
|
+
private tryGetExistingInstance;
|
|
3144
|
+
/**
|
|
3145
|
+
* Attempts to get a request-scoped instance if applicable.
|
|
3146
|
+
*/
|
|
3147
|
+
private tryGetRequestScopedInstance;
|
|
3148
|
+
/**
|
|
3149
|
+
* Attempts to get a singleton instance from the manager.
|
|
3150
|
+
*/
|
|
3151
|
+
private tryGetSingletonInstance;
|
|
3152
|
+
/**
|
|
3153
|
+
* Waits for an instance holder to be ready and returns the appropriate result.
|
|
3154
|
+
*/
|
|
3155
|
+
private waitForInstanceReady;
|
|
2587
3156
|
/**
|
|
2588
3157
|
* Emits events to listeners for instance lifecycle events.
|
|
2589
3158
|
*/
|
|
@@ -2596,6 +3165,26 @@ declare class ServiceLocator {
|
|
|
2596
3165
|
* Instantiates a service from the registry using the service instantiator.
|
|
2597
3166
|
*/
|
|
2598
3167
|
private instantiateServiceFromRegistry;
|
|
3168
|
+
/**
|
|
3169
|
+
* Handles the result of service instantiation.
|
|
3170
|
+
*/
|
|
3171
|
+
private handleInstantiationResult;
|
|
3172
|
+
/**
|
|
3173
|
+
* Handles successful service instantiation.
|
|
3174
|
+
*/
|
|
3175
|
+
private handleInstantiationSuccess;
|
|
3176
|
+
/**
|
|
3177
|
+
* Handles service instantiation errors.
|
|
3178
|
+
*/
|
|
3179
|
+
private handleInstantiationError;
|
|
3180
|
+
/**
|
|
3181
|
+
* Stores an instance holder based on its scope.
|
|
3182
|
+
*/
|
|
3183
|
+
private storeInstanceByScope;
|
|
3184
|
+
/**
|
|
3185
|
+
* Tries to get a pre-prepared instance from request contexts.
|
|
3186
|
+
*/
|
|
3187
|
+
private tryGetPrePreparedInstance;
|
|
2599
3188
|
/**
|
|
2600
3189
|
* Creates a factory context for dependency injection during service instantiation.
|
|
2601
3190
|
* @param contextHolder Optional request context holder for priority-based resolution
|
|
@@ -2605,6 +3194,10 @@ declare class ServiceLocator {
|
|
|
2605
3194
|
* Generates a unique instance name based on token and arguments.
|
|
2606
3195
|
*/
|
|
2607
3196
|
private generateInstanceName;
|
|
3197
|
+
/**
|
|
3198
|
+
* Formats a single argument value for instance name generation.
|
|
3199
|
+
*/
|
|
3200
|
+
private formatArgValue;
|
|
2608
3201
|
}
|
|
2609
3202
|
export { ServiceLocator }
|
|
2610
3203
|
export { ServiceLocator as ServiceLocator_alias_1 }
|
|
@@ -2704,29 +3297,11 @@ declare enum ServiceLocatorInstanceHolderStatus {
|
|
|
2704
3297
|
export { ServiceLocatorInstanceHolderStatus }
|
|
2705
3298
|
export { ServiceLocatorInstanceHolderStatus as ServiceLocatorInstanceHolderStatus_alias_1 }
|
|
2706
3299
|
|
|
2707
|
-
declare class ServiceLocatorManager {
|
|
2708
|
-
private readonly logger;
|
|
2709
|
-
private readonly instancesHolders;
|
|
3300
|
+
declare class ServiceLocatorManager extends BaseInstanceHolderManager {
|
|
2710
3301
|
constructor(logger?: Console | null);
|
|
2711
3302
|
get(name: string): [InstanceExpired | InstanceDestroying, ServiceLocatorInstanceHolder] | [InstanceNotFound] | [undefined, ServiceLocatorInstanceHolder];
|
|
2712
3303
|
set(name: string, holder: ServiceLocatorInstanceHolder): void;
|
|
2713
3304
|
has(name: string): [InstanceExpired | InstanceDestroying] | [undefined, boolean];
|
|
2714
|
-
delete(name: string): boolean;
|
|
2715
|
-
filter(predicate: (value: ServiceLocatorInstanceHolder<any>, key: string) => boolean): Map<string, ServiceLocatorInstanceHolder>;
|
|
2716
|
-
/**
|
|
2717
|
-
* Creates a new holder with Creating status and a deferred creation promise.
|
|
2718
|
-
* This is useful for creating placeholder holders that can be fulfilled later.
|
|
2719
|
-
* @param name The name of the instance
|
|
2720
|
-
* @param type The injectable type
|
|
2721
|
-
* @param scope The injectable scope
|
|
2722
|
-
* @param deps Optional set of dependencies
|
|
2723
|
-
* @param ttl Optional time-to-live in milliseconds (defaults to Infinity)
|
|
2724
|
-
* @returns A tuple containing the deferred promise and the holder
|
|
2725
|
-
*/
|
|
2726
|
-
createCreatingHolder<Instance>(name: string, type: InjectableType, scope: InjectableScope, deps?: Set<string>, ttl?: number): [
|
|
2727
|
-
ReturnType<typeof createDeferred<[undefined, Instance]>>,
|
|
2728
|
-
ServiceLocatorInstanceHolder<Instance>
|
|
2729
|
-
];
|
|
2730
3305
|
/**
|
|
2731
3306
|
* Creates a new holder with Created status and an actual instance.
|
|
2732
3307
|
* This is useful for creating holders that already have their instance ready.
|
|
@@ -2755,6 +3330,70 @@ export declare const test4: {
|
|
|
2755
3330
|
|
|
2756
3331
|
export declare const test5: object;
|
|
2757
3332
|
|
|
3333
|
+
/**
|
|
3334
|
+
* A binding builder for the TestContainer that allows chaining binding operations.
|
|
3335
|
+
*/
|
|
3336
|
+
declare class TestBindingBuilder<T> {
|
|
3337
|
+
private readonly container;
|
|
3338
|
+
private readonly token;
|
|
3339
|
+
constructor(container: TestContainer, token: InjectionToken<T, any>);
|
|
3340
|
+
/**
|
|
3341
|
+
* Binds the token to a specific value.
|
|
3342
|
+
* This is useful for testing with mock values or constants.
|
|
3343
|
+
* @param value The value to bind to the token
|
|
3344
|
+
*/
|
|
3345
|
+
toValue(value: T): TestContainer;
|
|
3346
|
+
/**
|
|
3347
|
+
* Binds the token to a class constructor.
|
|
3348
|
+
* @param target The class constructor to bind to
|
|
3349
|
+
*/
|
|
3350
|
+
toClass(target: ClassType): TestContainer;
|
|
3351
|
+
}
|
|
3352
|
+
export { TestBindingBuilder }
|
|
3353
|
+
export { TestBindingBuilder as TestBindingBuilder_alias_1 }
|
|
3354
|
+
|
|
3355
|
+
/**
|
|
3356
|
+
* TestContainer extends the base Container with additional methods useful for testing.
|
|
3357
|
+
* It provides a simplified API for binding values and classes during test setup.
|
|
3358
|
+
*/
|
|
3359
|
+
declare class TestContainer extends Container {
|
|
3360
|
+
constructor(registry?: Registry, logger?: Console | null, injectors?: Injectors);
|
|
3361
|
+
/**
|
|
3362
|
+
* Creates a binding builder for the given token.
|
|
3363
|
+
* This allows chaining binding operations like bind(Token).toValue(value).
|
|
3364
|
+
* @param token The injection token to bind
|
|
3365
|
+
* @returns A TestBindingBuilder for chaining binding operations
|
|
3366
|
+
*/
|
|
3367
|
+
bind<T>(token: ClassType): TestBindingBuilder<T>;
|
|
3368
|
+
bind<T>(token: InjectionToken<T, any>): TestBindingBuilder<T>;
|
|
3369
|
+
/**
|
|
3370
|
+
* Binds a value directly to a token.
|
|
3371
|
+
* This is a convenience method equivalent to bind(token).toValue(value).
|
|
3372
|
+
* @param token The injection token to bind
|
|
3373
|
+
* @param value The value to bind to the token
|
|
3374
|
+
* @returns The TestContainer instance for chaining
|
|
3375
|
+
*/
|
|
3376
|
+
bindValue<T>(token: ClassType, value: T): TestContainer;
|
|
3377
|
+
bindValue<T>(token: InjectionToken<T, any>, value: T): TestContainer;
|
|
3378
|
+
/**
|
|
3379
|
+
* Binds a class to a token.
|
|
3380
|
+
* This is a convenience method equivalent to bind(token).toClass(target).
|
|
3381
|
+
* @param token The injection token to bind
|
|
3382
|
+
* @param target The class constructor to bind to
|
|
3383
|
+
* @returns The TestContainer instance for chaining
|
|
3384
|
+
*/
|
|
3385
|
+
bindClass(token: ClassType, target: ClassType): TestContainer;
|
|
3386
|
+
bindClass<T>(token: InjectionToken<T, any>, target: ClassType): TestContainer;
|
|
3387
|
+
/**
|
|
3388
|
+
* Creates a new TestContainer instance with the same configuration.
|
|
3389
|
+
* This is useful for creating isolated test containers.
|
|
3390
|
+
* @returns A new TestContainer instance
|
|
3391
|
+
*/
|
|
3392
|
+
createChild(): TestContainer;
|
|
3393
|
+
}
|
|
3394
|
+
export { TestContainer }
|
|
3395
|
+
export { TestContainer as TestContainer_alias_1 }
|
|
3396
|
+
|
|
2758
3397
|
declare type UnionToArray<T, A extends unknown[] = []> = IsUnion<T> extends true ? UnionToArray<Exclude<T, PopUnion<T>>, [PopUnion<T>, ...A]> : [T, ...A];
|
|
2759
3398
|
export { UnionToArray }
|
|
2760
3399
|
export { UnionToArray as UnionToArray_alias_1 }
|
|
@@ -2791,7 +3430,7 @@ export { }
|
|
|
2791
3430
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2792
3431
|
Code coverage generated by
|
|
2793
3432
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2794
|
-
at 2025-09-
|
|
3433
|
+
at 2025-09-21T17:47:07.632Z
|
|
2795
3434
|
</div>
|
|
2796
3435
|
<script src="../prettify.js"></script>
|
|
2797
3436
|
<script>
|