@@ -3,7 +3,6 @@ import { randomUUID } from "node:crypto";
3
3
import events from "node:events" ;
4
4
import path from "node:path" ;
5
5
import { LogLevel , Miniflare , Mutex , Response } from "miniflare" ;
6
- import dedent from "ts-dedent" ;
7
6
import inspectorProxyWorkerPath from "worker:startDevWorker/InspectorProxyWorker" ;
8
7
import proxyWorkerPath from "worker:startDevWorker/ProxyWorker" ;
9
8
import WebSocket from "ws" ;
@@ -104,7 +103,7 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
104
103
// However, the proxy worker only makes outgoing requests to the user Worker Miniflare instance, which _should_ receive CF-Connecting-IP
105
104
stripCfConnectingIp : false ,
106
105
serviceBindings : {
107
- PROXY_CONTROLLER : async ( req : Request ) : Promise < Response > => {
106
+ PROXY_CONTROLLER : async ( req ) : Promise < Response > => {
108
107
const message =
109
108
( await req . json ( ) ) as ProxyWorkerOutgoingRequestBody ;
110
109
@@ -143,76 +142,43 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
143
142
} ;
144
143
145
144
if ( this . latestConfig . dev . inspector !== false && ! inVscodeJsDebugTerminal ) {
146
- proxyWorkerOptions . workers . push (
147
- {
148
- name : "InspectorProxyWorker" ,
149
- compatibilityDate : "2023-12-18" ,
150
- compatibilityFlags : [
151
- "nodejs_compat" ,
152
- "increase_websocket_message_size" ,
153
- ] ,
154
- modulesRoot : path . dirname ( inspectorProxyWorkerPath ) ,
155
- modules : [ { type : "ESModule" , path : inspectorProxyWorkerPath } ] ,
156
- durableObjects : {
157
- DURABLE_OBJECT : {
158
- className : "InspectorProxyWorker" ,
159
- unsafePreventEviction : true ,
160
- } ,
145
+ proxyWorkerOptions . workers . push ( {
146
+ name : "InspectorProxyWorker" ,
147
+ compatibilityDate : "2023-12-18" ,
148
+ compatibilityFlags : [
149
+ "nodejs_compat" ,
150
+ "increase_websocket_message_size" ,
151
+ ] ,
152
+ modulesRoot : path . dirname ( inspectorProxyWorkerPath ) ,
153
+ modules : [ { type : "ESModule" , path : inspectorProxyWorkerPath } ] ,
154
+ durableObjects : {
155
+ DURABLE_OBJECT : {
156
+ className : "InspectorProxyWorker" ,
157
+ unsafePreventEviction : true ,
161
158
} ,
162
- serviceBindings : {
163
- PROXY_CONTROLLER : async ( req : Request ) : Promise < Response > => {
164
- const body =
165
- ( await req . json ( ) ) as InspectorProxyWorkerOutgoingRequestBody ;
159
+ } ,
160
+ serviceBindings : {
161
+ PROXY_CONTROLLER : async ( req ) : Promise < Response > => {
162
+ const body =
163
+ ( await req . json ( ) ) as InspectorProxyWorkerOutgoingRequestBody ;
166
164
167
- return this . onInspectorProxyWorkerRequest ( body ) ;
168
- } ,
169
- } ,
170
- bindings : {
171
- PROXY_CONTROLLER_AUTH_SECRET : this . secret ,
165
+ return this . onInspectorProxyWorkerRequest ( body ) ;
172
166
} ,
173
-
174
- unsafeDirectSockets : [
175
- {
176
- host : this . latestConfig . dev ?. inspector ?. hostname ,
177
- port : this . latestConfig . dev ?. inspector ?. port ?? 0 ,
178
- } ,
179
- ] ,
180
- // no need to use file-system, so don't
181
- cache : false ,
182
- unsafeEphemeralDurableObjects : true ,
183
167
} ,
184
- {
185
- name : "DevtoolsProxyWorker" ,
186
- compatibilityDate : "2025-01-01" ,
187
- modules : [
188
- {
189
- type : "ESModule" ,
190
- contents : dedent /* javascript */ `
191
- export default {
192
- fetch(request) {
193
- const url = new URL(request.url);
194
- url.host = "devtools.devprod.cloudflare.dev"
195
- url.protocol = "https"
196
- url.port = 443
197
- return fetch(url.toString(), request)
198
- }
199
- }
200
- ` ,
201
- path : "index.js" ,
202
- } ,
203
- ] ,
204
- unsafeDirectSockets : [
205
- {
206
- host : this . latestConfig . dev ?. inspector ?. hostname ,
207
- port : 0 ,
208
- } ,
209
- ] ,
168
+ bindings : {
169
+ PROXY_CONTROLLER_AUTH_SECRET : this . secret ,
170
+ } ,
210
171
211
- // no need to use file-system, so don't
212
- cache : false ,
213
- unsafeEphemeralDurableObjects : true ,
214
- }
215
- ) ;
172
+ unsafeDirectSockets : [
173
+ {
174
+ host : this . latestConfig . dev ?. inspector ?. hostname ,
175
+ port : this . latestConfig . dev ?. inspector ?. port ?? 0 ,
176
+ } ,
177
+ ] ,
178
+ // no need to use file-system, so don't
179
+ cache : false ,
180
+ unsafeEphemeralDurableObjects : true ,
181
+ } ) ;
216
182
}
217
183
218
184
const proxyWorkerOptionsChanged = didMiniflareOptionsChange (
@@ -246,13 +212,10 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
246
212
this . latestConfig . dev . inspector === false || inVscodeJsDebugTerminal
247
213
? Promise . resolve ( undefined )
248
214
: proxyWorker . unsafeGetDirectURL ( "InspectorProxyWorker" ) ,
249
- this . latestConfig . dev . inspector === false || inVscodeJsDebugTerminal
250
- ? Promise . resolve ( undefined )
251
- : proxyWorker . unsafeGetDirectURL ( "DevtoolsProxyWorker" ) ,
252
215
] )
253
- . then ( ( [ url , inspectorUrl , devtoolsUrl ] ) => {
216
+ . then ( ( [ url , inspectorUrl ] ) => {
254
217
if ( ! inspectorUrl || inVscodeJsDebugTerminal ) {
255
- return [ url , undefined , undefined ] ;
218
+ return [ url , undefined ] ;
256
219
}
257
220
// Don't connect the inspector proxy worker until we have a valid ready Miniflare instance.
258
221
// Otherwise, tearing down the ProxyController immediately after setting it up
@@ -261,12 +224,11 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
261
224
return this . reconnectInspectorProxyWorker ( ) . then ( ( ) => [
262
225
url ,
263
226
inspectorUrl ,
264
- devtoolsUrl ,
265
227
] ) ;
266
228
} )
267
- . then ( ( [ url , inspectorUrl , devtoolsUrl ] ) => {
229
+ . then ( ( [ url , inspectorUrl ] ) => {
268
230
assert ( url ) ;
269
- this . emitReadyEvent ( proxyWorker , url , inspectorUrl , devtoolsUrl ) ;
231
+ this . emitReadyEvent ( proxyWorker , url , inspectorUrl ) ;
270
232
} )
271
233
. catch ( ( error ) => {
272
234
if ( this . _torndown ) {
@@ -613,15 +575,13 @@ export class ProxyController extends Controller<ProxyControllerEventMap> {
613
575
emitReadyEvent (
614
576
proxyWorker : Miniflare ,
615
577
url : URL ,
616
- inspectorUrl : URL | undefined ,
617
- devtoolsUrl : URL | undefined
578
+ inspectorUrl : URL | undefined
618
579
) {
619
580
const data : ReadyEvent = {
620
581
type : "ready" ,
621
582
proxyWorker,
622
583
url,
623
584
inspectorUrl,
624
- devtoolsUrl,
625
585
} ;
626
586
627
587
this . emit ( "ready" , data ) ;
0 commit comments