1- import { injectable } from "inversify" ;
1+ import { inject , injectable } from "inversify" ;
2+ import { MAIN_TOKENS } from "../../di/tokens" ;
23import { logger } from "../../utils/logger" ;
34import { TypedEventEmitter } from "../../utils/typed-event-emitter" ;
5+ import type { DevFlagsService } from "../dev-flags/service" ;
46import {
57 DevNetworkEvent ,
68 type DevNetworkEvents ,
@@ -19,13 +21,24 @@ export class DevNetworkService extends TypedEventEmitter<DevNetworkEvents> {
1921 private sim : NetworkSim = { offline : false , slowDelayMs : 0 } ;
2022 private installed = false ;
2123
24+ constructor (
25+ @inject ( MAIN_TOKENS . DevFlagsService )
26+ private readonly flags : DevFlagsService ,
27+ ) {
28+ super ( ) ;
29+ }
30+
2231 install ( ) : void {
2332 if ( this . installed ) return ;
2433 this . installed = true ;
2534 this . wrapFetch ( ) ;
2635 log . info ( "Network instrumentation installed" ) ;
2736 }
2837
38+ private capturing ( ) : boolean {
39+ return this . installed && this . flags . getFlags ( ) . devMode ;
40+ }
41+
2942 getSnapshot ( ) : NetworkRequest [ ] {
3043 return [ ...this . requests ] ;
3144 }
@@ -60,6 +73,9 @@ export class DevNetworkService extends TypedEventEmitter<DevNetworkEvents> {
6073 input : RequestInfo | URL ,
6174 init ?: RequestInit ,
6275 ) : Promise < Response > => {
76+ if ( ! this . capturing ( ) ) {
77+ return original ( input , init ) ;
78+ }
6379 const startedAt = Date . now ( ) ;
6480 const start = performance . now ( ) ;
6581 const method = ( init ?. method ?? "GET" ) . toUpperCase ( ) ;
0 commit comments