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 { export const {
util: {
isScramjetFile,
BareClient
},
url: {
encodeUrl, encodeUrl,
decodeUrl, decodeUrl,
rewriteHeaders, },
rewrite: {
rewriteCss,
rewriteHtml, rewriteHtml,
rewriteSrcset, rewriteSrcset,
rewriteJs, rewriteJs,
rewriteCss, rewriteHeaders,
rewriteWorkers, rewriteWorkers,
isScramjetFile, }
BareClient
} = self.$scramjet.shared; } = self.$scramjet.shared;

View file

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

6
src/types.d.ts vendored
View file

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

View file

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