js-safe worker injection

This commit is contained in:
David Reed 2022-11-23 14:37:37 -05:00
parent ed867b9f48
commit f34bb3d640
No known key found for this signature in database
GPG key ID: 2211691D8A1EE72F

View file

@ -174,10 +174,21 @@ class UVServiceWorker extends Ultraviolet.EventEmitter {
switch (request.destination) { switch (request.destination) {
case 'script': case 'script':
case 'worker': case 'worker':
responseCtx.body = `if (!self.__uv && self.importScripts) importScripts('${ultraviolet.bundleScript}', '${ultraviolet.clientScript}', '${ultraviolet.configScript}', '${ultraviolet.handlerScript}');\n`; {
responseCtx.body += ultraviolet.js.rewrite( // craft a JS-safe list of arguments
await response.text() const scripts = [
); ultraviolet.bundleScript,
ultraviolet.clientScript,
ultraviolet.configScript,
ultraviolet.handlerScript,
]
.map((script) => JSON.stringify(script))
.join(',');
responseCtx.body = `if (!self.__uv && self.importScripts) importScripts(${scripts});\n`;
responseCtx.body += ultraviolet.js.rewrite(
await response.text()
);
}
break; break;
case 'style': case 'style':
responseCtx.body = ultraviolet.rewriteCSS( responseCtx.body = ultraviolet.rewriteCSS(