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 {
encodeUrl, util: {
decodeUrl, isScramjetFile,
rewriteHeaders, BareClient
rewriteHtml, },
rewriteSrcset, url: {
rewriteJs, encodeUrl,
rewriteCss, decodeUrl,
rewriteWorkers, },
isScramjetFile, rewrite: {
BareClient rewriteCss,
rewriteHtml,
rewriteSrcset,
rewriteJs,
rewriteHeaders,
rewriteWorkers,
}
} = 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 = {
encodeUrl, util: {
decodeUrl, isScramjetFile,
rewriteCss, BareClient
rewriteHtml, },
rewriteSrcset, url: {
rewriteJs, encodeUrl,
rewriteHeaders, decodeUrl,
rewriteWorkers, },
isScramjetFile, rewrite: {
BareClient rewriteCss,
rewriteHtml,
rewriteSrcset,
rewriteJs,
rewriteHeaders,
rewriteWorkers,
}
} }

26
src/types.d.ts vendored
View file

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

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"))))