@@ -64,7 +64,9 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
6464
6565 const cert =
6666 this . latestConfig . dev ?. server ?. secure ||
67- this . latestConfig . dev ?. inspector ?. secure
67+ ( this . inspectorEnabled &&
68+ this . latestConfig . dev ?. inspector &&
69+ this . latestConfig . dev ?. inspector ?. secure )
6870 ? getHttpsOptions (
6971 this . latestConfig . dev . server ?. httpsKeyPath ,
7072 this . latestConfig . dev . server ?. httpsCertPath
@@ -108,44 +110,6 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
108110 PROXY_CONTROLLER_AUTH_SECRET : this . secret ,
109111 } ,
110112
111- // no need to use file-system, so don't
112- cache : false ,
113- unsafeEphemeralDurableObjects : true ,
114- } ,
115- {
116- name : "InspectorProxyWorker" ,
117- compatibilityDate : "2023-12-18" ,
118- compatibilityFlags : [
119- "nodejs_compat" ,
120- "increase_websocket_message_size" ,
121- ] ,
122- modulesRoot : path . dirname ( inspectorProxyWorkerPath ) ,
123- modules : [ { type : "ESModule" , path : inspectorProxyWorkerPath } ] ,
124- durableObjects : {
125- DURABLE_OBJECT : {
126- className : "InspectorProxyWorker" ,
127- unsafePreventEviction : true ,
128- } ,
129- } ,
130- serviceBindings : {
131- PROXY_CONTROLLER : async ( req ) : Promise < Response > => {
132- const body =
133- ( await req . json ( ) ) as InspectorProxyWorkerOutgoingRequestBody ;
134-
135- return this . onInspectorProxyWorkerRequest ( body ) ;
136- } ,
137- } ,
138- bindings : {
139- PROXY_CONTROLLER_AUTH_SECRET : this . secret ,
140- } ,
141-
142- unsafeDirectSockets : [
143- {
144- host : this . latestConfig . dev ?. inspector ?. hostname ,
145- port : this . latestConfig . dev ?. inspector ?. port ?? 0 ,
146- } ,
147- ] ,
148-
149113 // no need to use file-system, so don't
150114 cache : false ,
151115 unsafeEphemeralDurableObjects : true ,
@@ -165,6 +129,48 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
165129 liveReload : false ,
166130 } ;
167131
132+ if ( this . inspectorEnabled ) {
133+ assert ( this . latestConfig . dev ?. inspector ) ;
134+ proxyWorkerOptions . workers . push ( {
135+ name : "InspectorProxyWorker" ,
136+ compatibilityDate : "2023-12-18" ,
137+ compatibilityFlags : [
138+ "nodejs_compat" ,
139+ "increase_websocket_message_size" ,
140+ ] ,
141+ modulesRoot : path . dirname ( inspectorProxyWorkerPath ) ,
142+ modules : [ { type : "ESModule" , path : inspectorProxyWorkerPath } ] ,
143+ durableObjects : {
144+ DURABLE_OBJECT : {
145+ className : "InspectorProxyWorker" ,
146+ unsafePreventEviction : true ,
147+ } ,
148+ } ,
149+ serviceBindings : {
150+ PROXY_CONTROLLER : async ( req ) : Promise < Response > => {
151+ const body =
152+ ( await req . json ( ) ) as InspectorProxyWorkerOutgoingRequestBody ;
153+
154+ return this . onInspectorProxyWorkerRequest ( body ) ;
155+ } ,
156+ } ,
157+ bindings : {
158+ PROXY_CONTROLLER_AUTH_SECRET : this . secret ,
159+ } ,
160+
161+ unsafeDirectSockets : [
162+ {
163+ host : this . latestConfig . dev ?. inspector ?. hostname ,
164+ port : this . latestConfig . dev ?. inspector ?. port ?? 0 ,
165+ } ,
166+ ] ,
167+
168+ // no need to use file-system, so don't
169+ cache : false ,
170+ unsafeEphemeralDurableObjects : true ,
171+ } ) ;
172+ }
173+
168174 const proxyWorkerOptionsChanged = didMiniflareOptionsChange (
169175 this . proxyWorkerOptions ,
170176 proxyWorkerOptions
@@ -193,9 +199,14 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
193199 if ( willInstantiateMiniflareInstance ) {
194200 void Promise . all ( [
195201 proxyWorker . ready ,
196- proxyWorker . unsafeGetDirectURL ( "InspectorProxyWorker" ) ,
202+ ! this . inspectorEnabled
203+ ? Promise . resolve ( undefined )
204+ : proxyWorker . unsafeGetDirectURL ( "InspectorProxyWorker" ) ,
197205 ] )
198206 . then ( ( [ url , inspectorUrl ] ) => {
207+ if ( ! this . inspectorEnabled ) {
208+ return [ url , undefined ] ;
209+ }
199210 // Don't connect the inspector proxy worker until we have a valid ready Miniflare instance.
200211 // Otherwise, tearing down the ProxyController immediately after setting it up
201212 // will result in proxyWorker.ready throwing, but reconnectInspectorProxyWorker hanging for ever,
@@ -206,6 +217,7 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
206217 ] ) ;
207218 } )
208219 . then ( ( [ url , inspectorUrl ] ) => {
220+ assert ( url ) ;
209221 this . emitReadyEvent ( proxyWorker , url , inspectorUrl ) ;
210222 } )
211223 . catch ( ( error ) => {
@@ -367,6 +379,14 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
367379 }
368380 }
369381
382+ get inspectorEnabled ( ) {
383+ if ( this . latestConfig ?. dev . remote ) {
384+ // In `wrangler dev --remote`, only enable the inspector if the `--x-tail-logs` flag is disabled
385+ return ! this . latestConfig ?. experimental ?. tailLogs ;
386+ }
387+ return true ;
388+ }
389+
370390 // ******************
371391 // Event Handlers
372392 // ******************
@@ -386,7 +406,9 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
386406 this . latestConfig = data . config ;
387407
388408 void this . sendMessageToProxyWorker ( { type : "pause" } ) ;
389- void this . sendMessageToInspectorProxyWorker ( { type : "reloadStart" } ) ;
409+ if ( this . inspectorEnabled ) {
410+ void this . sendMessageToInspectorProxyWorker ( { type : "reloadStart" } ) ;
411+ }
390412 }
391413 onReloadComplete ( data : ReloadCompleteEvent ) {
392414 this . latestConfig = data . config ;
@@ -397,10 +419,12 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
397419 proxyData : data . proxyData ,
398420 } ) ;
399421
400- void this . sendMessageToInspectorProxyWorker ( {
401- type : "reloadComplete" ,
402- proxyData : data . proxyData ,
403- } ) ;
422+ if ( this . inspectorEnabled ) {
423+ void this . sendMessageToInspectorProxyWorker ( {
424+ type : "reloadComplete" ,
425+ proxyData : data . proxyData ,
426+ } ) ;
427+ }
404428 }
405429 onProxyWorkerMessage ( message : ProxyWorkerOutgoingRequestBody ) {
406430 switch ( message . type ) {
@@ -522,7 +546,11 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
522546 // Event Dispatchers
523547 // *********************
524548
525- emitReadyEvent ( proxyWorker : Miniflare , url : URL , inspectorUrl : URL ) {
549+ emitReadyEvent (
550+ proxyWorker : Miniflare ,
551+ url : URL ,
552+ inspectorUrl : URL | undefined
553+ ) {
526554 const data : ReadyEvent = {
527555 type : "ready" ,
528556 proxyWorker,
0 commit comments