1010from asset_manifest import HTML_CACHE_VERSION
1111from examples import PYTHON_VERSION
1212
13+ try :
14+ import asgi as worker_asgi
15+ except ImportError : # Allows editor tooling outside Workers, where the js module is unavailable.
16+ worker_asgi = None
17+
1318try :
1419 from js import Object , Request as JsRequest , caches
1520 from pyodide .ffi import create_once_callable , jsnull , to_js
@@ -125,8 +130,6 @@ async def not_found(path: str, request: Request):
125130
126131class Default (WorkerEntrypoint ):
127132 async def fetch (self , request ):
128- import asgi
129-
130133 global _CURRENT_WORKER_REQUEST
131134 _CURRENT_WORKER_REQUEST = request
132135
@@ -138,13 +141,13 @@ async def fetch(self, request):
138141 cached = await caches .default .match (cache_key )
139142 if cached :
140143 return cached
141- response = await asgi .fetch (app , request .js_object , self .env )
144+ response = await worker_asgi .fetch (app , request .js_object , self .env )
142145 if getattr (response , "status" , 200 ) == 200 :
143146 response .headers .set ("Cache-Control" , "public, max-age=300, stale-while-revalidate=86400" )
144147 await caches .default .put (cache_key , response .clone ())
145148 return response
146- response = await asgi .fetch (app , request .js_object , self .env )
149+ response = await worker_asgi .fetch (app , request .js_object , self .env )
147150 response .headers .set ("Cache-Control" , "no-store" )
148151 return response
149152
150- return await asgi .fetch (app , request .js_object , self .env )
153+ return await worker_asgi .fetch (app , request .js_object , self .env )
0 commit comments