diff --git a/src/rewrite/rewrite.html.js b/src/rewrite/rewrite.html.js
index dcd94328..6300f2f7 100644
--- a/src/rewrite/rewrite.html.js
+++ b/src/rewrite/rewrite.html.js
@@ -209,16 +209,12 @@ export function injectHead(ctx) {
}
export function createJsInject(
- bareURL = '',
- bareData = {},
cookies = '',
referrer = ''
) {
return (
- `self.__uv$bareData = ${JSON.stringify(bareData)};` +
`self.__uv$cookies = ${JSON.stringify(cookies)};` +
- `self.__uv$referrer = ${JSON.stringify(referrer)};` +
- `self.__uv$bareURL = ${JSON.stringify(bareURL)}; `
+ `self.__uv$referrer = ${JSON.stringify(referrer)};`
);
}
@@ -227,8 +223,6 @@ export function createHtmlInject(
bundleScript,
clientScript,
configScript,
- bareURL,
- bareData,
cookies,
referrer
) {
@@ -239,7 +233,7 @@ export function createHtmlInject(
childNodes: [
{
nodeName: '#text',
- value: createJsInject(bareURL, bareData, cookies, referrer),
+ value: createJsInject(cookies, referrer),
},
],
attrs: [
diff --git a/src/sw.js b/src/sw.js
index 370e7a6f..7a1a45dd 100644
--- a/src/sw.js
+++ b/src/sw.js
@@ -14,7 +14,7 @@ const uv = new UVServiceWorker();
self.addEventListener('fetch', event => {
event.respondWith(
(async ()=>{
- if(event.request.url.startsWith(location.origin + __uv$config.prefix)) {
+ if (uv.route(event)) {
return await uv.fetch(event);
}
return await fetch(event.request);
diff --git a/src/uv.handler.js b/src/uv.handler.js
index 5f429732..21e56be7 100644
--- a/src/uv.handler.js
+++ b/src/uv.handler.js
@@ -13,15 +13,6 @@ const UVClient = self.UVClient;
*/
const __uv$config = self.__uv$config;
-/**
- * @type {import('@mercuryworkshop/bare-mux').BareManifest}
- */
-const __uv$bareData = self.__uv$bareData;
-
-/**
- * @type {string}
- */
-const __uv$bareURL = self.__uv$bareURL;
/**
* @type {string}
@@ -29,8 +20,6 @@ const __uv$bareURL = self.__uv$bareURL;
const __uv$cookies = self.__uv$cookies;
if (
- typeof __uv$bareData !== 'object' ||
- typeof __uv$bareURL !== 'string' ||
typeof __uv$cookies !== 'string'
)
throw new TypeError('Unable to load global UV data');
@@ -572,8 +561,6 @@ function __uvHook(window) {
__uv.bundleScript,
__uv.clientScript,
__uv.configScript,
- __uv$bareURL,
- __uv$bareData,
cookieStr,
window.location.href
),
@@ -780,8 +767,6 @@ function __uvHook(window) {
__uv.bundleScript,
__uv.clientScript,
__uv.configScript,
- __uv$bareURL,
- __uv$bareData,
cookieStr,
window.location.href
),
@@ -892,8 +877,6 @@ function __uvHook(window) {
__uv.bundleScript,
__uv.clientScript,
__uv.configScript,
- __uv$bareURL,
- __uv$bareData,
cookieStr,
window.location.href
),
diff --git a/src/uv.sw.js b/src/uv.sw.js
index 1bcd6e94..8aeedfad 100644
--- a/src/uv.sw.js
+++ b/src/uv.sw.js
@@ -30,18 +30,22 @@ const emptyMethods = ['GET', 'HEAD'];
class UVServiceWorker extends Ultraviolet.EventEmitter {
constructor(config = __uv$config) {
super();
- if (!config.bare) config.bare = '/bare/';
if (!config.prefix) config.prefix = '/service/';
this.config = config;
- const addresses = (
- Array.isArray(config.bare) ? config.bare : [config.bare]
- ).map((str) => new URL(str, location).toString());
- this.address = addresses[~~(Math.random() * addresses.length)];
/**
* @type {InstanceType}
*/
this.bareClient = new Ultraviolet.BareClient();
}
+ /**
+ *
+ * @param {Event & {request: Request}} param0
+ * @returns
+ */
+ route({ request }) {
+ if (request.url.startsWith(location.origin + this.config.prefix)) return true;
+ else return false;
+ }
/**
*
* @param {Event & {request: Request}} param0
@@ -57,7 +61,7 @@ class UVServiceWorker extends Ultraviolet.EventEmitter {
if (!request.url.startsWith(location.origin + this.config.prefix))
return await fetch(request);
- const ultraviolet = new Ultraviolet(this.config, this.address);
+ const ultraviolet = new Ultraviolet(this.config);
if (typeof this.config.construct === 'function') {
this.config.construct(ultraviolet, 'service');
@@ -72,7 +76,6 @@ class UVServiceWorker extends Ultraviolet.EventEmitter {
const requestCtx = new RequestContext(
request,
- this,
ultraviolet,
!emptyMethods.includes(request.method.toUpperCase())
? await request.blob()
@@ -130,10 +133,7 @@ class UVServiceWorker extends Ultraviolet.EventEmitter {
method: requestCtx.method,
body: requestCtx.body,
credentials: requestCtx.credentials,
- mode:
- location.origin !== requestCtx.address.origin
- ? 'cors'
- : requestCtx.mode,
+ mode: requestCtx.mode,
cache: requestCtx.cache,
redirect: requestCtx.redirect,
});
@@ -212,8 +212,6 @@ class UVServiceWorker extends Ultraviolet.EventEmitter {
.map((script) => JSON.stringify(script))
.join(',');
responseCtx.body = `if (!self.__uv && self.importScripts) { ${ultraviolet.createJsInject(
- this.address,
- this.bareClient.manifest,
ultraviolet.cookie.serialize(
cookies,
ultraviolet.meta,
@@ -248,8 +246,6 @@ class UVServiceWorker extends Ultraviolet.EventEmitter {
ultraviolet.bundleScript,
ultraviolet.clientScript,
ultraviolet.configScript,
- this.address,
- this.bareClient.manifest,
ultraviolet.cookie.serialize(
cookies,
ultraviolet.meta,
@@ -326,16 +322,14 @@ class RequestContext {
/**
*
* @param {Request} request
- * @param {UVServiceWorker} worker
* @param {Ultraviolet} ultraviolet
* @param {BodyInit} body
*/
- constructor(request, worker, ultraviolet, body = null) {
+ constructor(request, ultraviolet, body = null) {
this.ultraviolet = ultraviolet;
this.request = request;
this.headers = Object.fromEntries(request.headers.entries());
this.method = request.method;
- this.address = worker.address;
this.body = body || null;
this.cache = request.cache;
this.redirect = request.redirect;