Skip to content

Commit dc482f3

Browse files
committed
fix: attempt 2 to prevent internal infinity loop regarding injectors
1 parent b9e4f38 commit dc482f3

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

libs/angular-three/src/lib/di/run-in-context.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,18 @@ export function createRunInContext() {
1010
let tryFromNodeInjector = false;
1111
envInjector.get = (...args: Parameters<EnvironmentInjector['get']>) => {
1212
try {
13+
const fromEnvInjector = originalGet(...args);
14+
if (fromEnvInjector) return fromEnvInjector;
15+
if (fromEnvInjector === null && args[1] !== undefined && args[1] === null) return fromEnvInjector;
1316
if (!tryFromNodeInjector) {
1417
tryFromNodeInjector = true;
1518
const fromNodeInjector = nodeInjector.get(...(args as Parameters<Injector['get']>));
16-
if (fromNodeInjector) {
17-
tryFromNodeInjector = false;
18-
return fromNodeInjector;
19-
}
19+
tryFromNodeInjector = false;
20+
return fromNodeInjector;
2021
}
21-
return originalGet(...args);
22+
return null;
2223
} catch (e) {
2324
return originalGet(...args);
24-
} finally {
25-
tryFromNodeInjector = false;
2625
}
2726
};
2827

0 commit comments

Comments
 (0)