make scramjet shared object cleaner

This commit is contained in:
Percs 2024-07-14 15:57:48 -05:00
parent c6f7c4ecbb
commit c4e90a50ab
4 changed files with 52 additions and 33 deletions

View file

@ -1,12 +1,18 @@
export const {
util: {
isScramjetFile,
BareClient
},
url: {
encodeUrl,
decodeUrl,
rewriteHeaders,
},
rewrite: {
rewriteCss,
rewriteHtml,
rewriteSrcset,
rewriteJs,
rewriteCss,
rewriteHeaders,
rewriteWorkers,
isScramjetFile,
BareClient
}
} = self.$scramjet.shared;

View file

@ -12,14 +12,20 @@ if (!self.$scramjet) {
self.$scramjet = {}
}
self.$scramjet.shared = {
util: {
isScramjetFile,
BareClient
},
url: {
encodeUrl,
decodeUrl,
},
rewrite: {
rewriteCss,
rewriteHtml,
rewriteSrcset,
rewriteJs,
rewriteHeaders,
rewriteWorkers,
isScramjetFile,
BareClient
}
}

6
src/types.d.ts vendored
View file

@ -12,17 +12,23 @@ declare global {
interface Window {
$scramjet: {
shared: {
url: {
encodeUrl: typeof encodeUrl,
decodeUrl: typeof decodeUrl,
}
rewrite: {
rewriteCss: typeof rewriteCss,
rewriteHtml: typeof rewriteHtml,
rewriteSrcset: typeof rewriteSrcset,
rewriteJs: typeof rewriteJs,
rewriteHeaders: typeof rewriteHeaders,
rewriteWorkers: typeof rewriteWorkers,
}
util: {
BareClient: typeof BareClient,
isScramjetFile: typeof isScramjetFile,
}
}
config: {
prefix: string;
codec: Codec

View file

@ -8,11 +8,11 @@ declare global {
}
self.ScramjetServiceWorker = class ScramjetServiceWorker {
client: typeof self.$scramjet.shared.BareClient.prototype;
client: typeof self.$scramjet.shared.util.BareClient.prototype;
config: typeof self.$scramjet.config;
constructor(config = self.$scramjet.config) {
this.client = new self.$scramjet.shared.BareClient();
this.client = new self.$scramjet.shared.util.BareClient();
if (!config.prefix) config.prefix = "/scramjet/";
this.config = config;
}
@ -24,7 +24,8 @@ self.ScramjetServiceWorker = class ScramjetServiceWorker {
async fetch({ request }: FetchEvent) {
const urlParam = new URLSearchParams(new URL(request.url).search);
const { encodeUrl, decodeUrl, rewriteHeaders, rewriteHtml, rewriteJs, rewriteCss, rewriteWorkers } = self.$scramjet.shared;
const { encodeUrl, decodeUrl } = self.$scramjet.shared.url;
const { rewriteHeaders, rewriteHtml, rewriteJs, rewriteCss, rewriteWorkers } = self.$scramjet.shared.rewrite;
if (urlParam.has("url")) {
return Response.redirect(encodeUrl(urlParam.get("url"), new URL(urlParam.get("url"))))