Format shit

This commit is contained in:
MotorTruck1221 2025-05-04 23:57:30 -06:00
parent a78ab8e1b2
commit 5f640d8e06
No known key found for this signature in database
GPG key ID: 08F417E2B8B61EA4
21 changed files with 338 additions and 298 deletions

View file

@ -1,8 +1,8 @@
import { defineConfig } from 'astro/config';
import type { Plugin } from 'vite';
import { defineConfig } from "astro/config";
import type { Plugin } from "vite";
import wisp from "wisp-server-node";
import node from '@astrojs/node';
import tailwindcss from '@tailwindcss/vite';
import node from "@astrojs/node";
import tailwindcss from "@tailwindcss/vite";
import icon from "astro-icon";
import { viteStaticCopy } from "vite-plugin-static-copy";
import playformCompress from "@playform/compress";
@ -15,14 +15,14 @@ import { baremuxPath } from "@mercuryworkshop/bare-mux/node";
const viteWispServer = (): Plugin => {
return {
name: 'vite-wisp-server',
name: "vite-wisp-server",
configureServer(server) {
server.httpServer?.on('upgrade', (req, socket, head) => {
req.url.startsWith('/wisp') ? wisp.routeRequest(req, socket, head) : undefined
})
}
server.httpServer?.on("upgrade", (req, socket, head) => {
req.url.startsWith("/wisp") ? wisp.routeRequest(req, socket, head) : undefined;
});
}
};
};
export default defineConfig({
vite: {
@ -35,10 +35,26 @@ export default defineConfig({
viteStaticCopy({
targets: [
{ src: `${uvPath}/**/*`.replace(/\\/g, "/"), dest: "vu", overwrite: false },
{ src: `${scramjetPath}/**/*`.replace(/\\/g, "/"), dest: "marcs", overwrite: false },
{ src: `${baremuxPath}/**/*`.replace(/\\/g, "/"), dest: "erab", overwrite: false },
{ src: `${epoxyPath}/**/*`.replace(/\\/g, "/"), dest: "epoxy", overwrite: false },
{ src: `${libcurlPath}/**/*`.replace(/\\/g, "/"), dest: "libcurl", overwrite: false }
{
src: `${scramjetPath}/**/*`.replace(/\\/g, "/"),
dest: "marcs",
overwrite: false
},
{
src: `${baremuxPath}/**/*`.replace(/\\/g, "/"),
dest: "erab",
overwrite: false
},
{
src: `${epoxyPath}/**/*`.replace(/\\/g, "/"),
dest: "epoxy",
overwrite: false
},
{
src: `${libcurlPath}/**/*`.replace(/\\/g, "/"),
dest: "libcurl",
overwrite: false
}
]
})
]
@ -53,8 +69,8 @@ export default defineConfig({
SVG: true
})
],
output: 'server',
output: "server",
adapter: node({
mode: 'middleware'
mode: "middleware"
})
});

View file

@ -12,7 +12,7 @@
"formatter": {
"enabled": true,
"indentStyle": "space",
"indendWidth": 4,
"indentWidth": 4,
"lineWidth": 100,
"ignore": ["pnpm-lock.yaml", "package.json"]
},
@ -24,7 +24,7 @@
},
"javascript": {
"formatter": {
"trailingCommas": "none"
"trailingCommas": "none",
"quoteStyle": "double",
"semicolons": "always"
}
@ -35,7 +35,6 @@
"allowTrailingCommas": true
},
"formatter": {
"indentSyle": "space",
"trailingCommas": "none"
}
}

View file

@ -15,11 +15,9 @@ self.addEventListener("fetch", function (event) {
await sj.loadConfig();
if (event.request.url.startsWith(location.origin + __uv$config.prefix)) {
return await uv.fetch(event);
}
else if (sj.route(event)) {
} else if (sj.route(event)) {
return await sj.fetch(event);
}
else {
} else {
return await fetch(event.request);
}
})()

View file

@ -1,20 +1,19 @@
import Fastify, { FastifyReply, FastifyRequest } from 'fastify';
import fastifyMiddie from '@fastify/middie';
import fastifyStatic from '@fastify/static';
import { fileURLToPath } from 'node:url';
import Fastify, { FastifyReply, FastifyRequest } from "fastify";
import fastifyMiddie from "@fastify/middie";
import fastifyStatic from "@fastify/static";
import { fileURLToPath } from "node:url";
//@ts-ignore this is created at runtime. No types associated w/it
import { handler as astroHandler } from "../dist/server/entry.mjs";
const app = Fastify({
logger: true,
ignoreDuplicateSlashes: true,
ignoreTrailingSlash: true,
ignoreTrailingSlash: true
});
await app.register(fastifyStatic, {
root: fileURLToPath(new URL('../dist/client', import.meta.url))
root: fileURLToPath(new URL("../dist/client", import.meta.url))
});
await app.register(fastifyMiddie);

View file

@ -1,10 +1,10 @@
---
import { Icon } from 'astro-icon/components';
import { Icon } from "astro-icon/components";
interface Props {
id: string;
text: string;
icon?: string
icon?: string;
}
const { id, text, icon } = Astro.props;
---

View file

@ -10,7 +10,7 @@ interface Props {
imageSrc: string;
text: string;
id: string;
};
}
const { imageSrc, text, id, link } = Astro.props;
---

View file

@ -8,11 +8,15 @@ import Header from "@components/Header.astro";
import "@styles/global.css";
import "@styles/default.css";
readdir(pathJoin(import.meta.dirname, '..', 'styles', 'themes'), { encoding: 'utf-8' }, (err, files) => {
readdir(
pathJoin(import.meta.dirname, "..", "styles", "themes"),
{ encoding: "utf-8" },
(err, files) => {
files.forEach(async (name) => {
await import(`../styles/themes/${name.replace('.css', '')}.css`)
});
await import(`../styles/themes/${name.replace(".css", "")}.css`);
});
}
);
---
<!doctype html>
<html lang="en">

View file

@ -8,12 +8,14 @@ import Input from "@components/ui/Input.astro";
import Button from "@components/ui/Button.astro";
import { type DropdownOptions } from "@utils/types";
const Themes: DropdownOptions[] = [{ name: 'Default', value: 'default' }];
const files = await readdir(pathJoin(import.meta.dirname, '..', '..', 'styles', 'themes'), { encoding: 'utf-8' });
const Themes: DropdownOptions[] = [{ name: "Default", value: "default" }];
const files = await readdir(pathJoin(import.meta.dirname, "..", "..", "styles", "themes"), {
encoding: "utf-8"
});
files.forEach((name) => {
Themes.push({
name: name.toLowerCase().charAt(0).toUpperCase() + name.slice(1).replace('.css', ''),
value: name.toLowerCase().replace('.css', '')
name: name.toLowerCase().charAt(0).toUpperCase() + name.slice(1).replace(".css", ""),
value: name.toLowerCase().replace(".css", "")
});
});
---

View file

@ -5,9 +5,9 @@ import Input from "@components/ui/Input.astro";
import Button from "@components/ui/Button.astro";
import { SearchEngines, type DropdownOptions } from "@utils/types";
const SearchEngineOptions: DropdownOptions[] = [];
Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push(
{ name: k, value: SearchEngines[k] }
));
Object.keys(SearchEngines).forEach((k) =>
SearchEngineOptions.push({ name: k, value: SearchEngines[k] })
);
---
<SettingsLayout active="proxy" title="Proxy">
<div class="w-full flex-grow">

View file

@ -1,17 +1,17 @@
---
import Layout from '@layouts/Layout.astro';
import { Icon } from 'astro-icon/components'
import Layout from "@layouts/Layout.astro";
import { Icon } from "astro-icon/components";
import splash from "@assets/splash.json";
const genSplash = (): String => {
const idx = Math.floor(Math.random() * splash.length);
return splash[idx].splash;
}
};
const randomSplash = genSplash();
const link = Astro.url.searchParams.get('redir');
const link = Astro.url.searchParams.get("redir");
---
<Layout>

View file

@ -1,7 +1,7 @@
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
@import "tailwindcss";
@theme {
--font-inter: "Inter", sans-serif
--font-inter: "Inter", sans-serif;
}

View file

@ -2,11 +2,11 @@ import { BareMuxConnection } from "@mercuryworkshop/bare-mux";
import { StoreManager } from "./storage";
const createScript = (src: string, defer?: boolean) => {
const script = document.createElement('script') as HTMLScriptElement;
const script = document.createElement("script") as HTMLScriptElement;
script.src = src;
if (defer) script.defer = defer;
return document.body.appendChild(script);
}
};
/**
* This class automatically sets up and handles lots of stuff for us.
@ -38,41 +38,59 @@ class SW {
}
#search(input: string, template: string) {
try { return new URL(input).toString() } catch (_) {};
try {
return new URL(input).toString();
} catch (_) {}
try {
const url = new URL(`http://${input}`);
if (url.hostname.includes(".")) return url.toString();
} catch (_) {};
} catch (_) {}
return template.replace("%s", encodeURIComponent(input));
}
encodeURL(string: string): string {
const proxy = this.#storageManager.getVal("proxy") as 'uv' | 'sj';
const input = this.#search(string, this.#storageManager.getVal('searchEngine'));
return proxy === 'uv' ? `${__uv$config.prefix}${__uv$config.encodeUrl!(input)}` : this.#scramjetController!.encodeUrl(input)
const proxy = this.#storageManager.getVal("proxy") as "uv" | "sj";
const input = this.#search(string, this.#storageManager.getVal("searchEngine"));
return proxy === "uv"
? `${__uv$config.prefix}${__uv$config.encodeUrl!(input)}`
: this.#scramjetController!.encodeUrl(input);
}
async setTransport(transport?: 'epoxy' | 'libcurl', get?: boolean) {
console.log('Setting transport');
if (get) return this.#storageManager.getVal('transport');
this.#storageManager.setVal("transport", transport || this.#storageManager.getVal("transport") || 'epoxy');
async setTransport(transport?: "epoxy" | "libcurl", get?: boolean) {
console.log("Setting transport");
if (get) return this.#storageManager.getVal("transport");
this.#storageManager.setVal(
"transport",
transport || this.#storageManager.getVal("transport") || "epoxy"
);
switch (transport) {
case 'epoxy': {
await this.#baremuxConn!.setTransport("/epoxy/index.mjs", [ { wisp: this.#storageManager.getVal('wispServer') }]);
case "epoxy": {
await this.#baremuxConn!.setTransport("/epoxy/index.mjs", [
{ wisp: this.#storageManager.getVal("wispServer") }
]);
}
case 'libcurl': {
await this.#baremuxConn!.setTransport("/libcurl/index.mjs", [ { wisp: this.#storageManager.getVal('wispServer') }]);
case "libcurl": {
await this.#baremuxConn!.setTransport("/libcurl/index.mjs", [
{ wisp: this.#storageManager.getVal("wispServer") }
]);
}
default: {
await this.#baremuxConn!.setTransport("/epoxy/index.mjs", [ { wisp: this.#storageManager.getVal('wispServer') }]);
await this.#baremuxConn!.setTransport("/epoxy/index.mjs", [
{ wisp: this.#storageManager.getVal("wispServer") }
]);
}
}
}
async wispServer(wispServer?: string, set?: true) {
this.#storageManager.setVal("wispServer", wispServer || this.#storageManager.getVal('wispServer') || (location.protocol === "https:" ? "wss://" : "ws://") + location.host + "/wisp/");
this.#storageManager.setVal(
"wispServer",
wispServer ||
this.#storageManager.getVal("wispServer") ||
(location.protocol === "https:" ? "wss://" : "ws://") + location.host + "/wisp/"
);
if (set) await this.setTransport();
}
@ -82,22 +100,25 @@ class SW {
const checkScripts = (): Promise<void> => {
return new Promise((resolve) => {
const t = setInterval(() => {
if (typeof __uv$config !== 'undefined' && typeof ScramjetController !== 'undefined') {
if (
typeof __uv$config !== "undefined" &&
typeof ScramjetController !== "undefined"
) {
clearInterval(t);
resolve();
}
});
});
};
createScript('/vu/uv.bundle.js', true);
createScript('/vu/uv.config.js', true);
createScript('/marcs/scramjet.controller.js', true);
createScript("/vu/uv.bundle.js", true);
createScript("/vu/uv.config.js", true);
createScript("/marcs/scramjet.controller.js", true);
checkScripts().then(async () => {
this.#baremuxConn = new BareMuxConnection("/erab/worker.js");
await this.setTransport();
this.#scramjetController = new ScramjetController({
prefix: '/~/scramjet/',
prefix: "/~/scramjet/",
files: {
wasm: "/marcs/scramjet.wasm.wasm",
worker: "/marcs/scramjet.worker.js",
@ -112,16 +133,17 @@ class SW {
if ("serviceWorker" in navigator) {
await this.#scramjetController.init();
navigator.serviceWorker.ready.then(async (reg) => {
console.log('SW ready to go!');
console.log("SW ready to go!");
this.#serviceWorker = reg;
});
navigator.serviceWorker.register("/sw.js", { scope: '/' });
}
else {
throw new Error('Your browser is not supported! This website uses Service Workers heavily.');
navigator.serviceWorker.register("/sw.js", { scope: "/" });
} else {
throw new Error(
"Your browser is not supported! This website uses Service Workers heavily."
);
}
});
};
}
}
export { SW };

View file

@ -47,8 +47,8 @@ class Settings {
resolve(true);
}
}, 100);
})
}
});
};
await ready();
return get().next().value! as Settings;
@ -66,22 +66,22 @@ class Settings {
* settings.theme('theme name') // A new theme based off of the class name
*/
theme(theme?: string) {
this.#storageManager.setVal('theme', theme || this.#storageManager.getVal('theme'));
theme === 'default'
? document.documentElement.className = 'default'
: document.documentElement.className = theme || this.#storageManager.getVal('theme');
this.#storageManager.setVal("theme", theme || this.#storageManager.getVal("theme"));
theme === "default"
? (document.documentElement.className = "default")
: (document.documentElement.className = theme || this.#storageManager.getVal("theme"));
}
proxy(prox?: 'uv' | 'sj') {
this.#storageManager.setVal('proxy', prox || 'uv');
proxy(prox?: "uv" | "sj") {
this.#storageManager.setVal("proxy", prox || "uv");
}
searchEngine(engine?: string) {
this.#storageManager.setVal('searchEngine', engine || SearchEngines.DuckDuckGo);
this.#storageManager.setVal("searchEngine", engine || SearchEngines.DuckDuckGo);
}
async *#init() {
yield this.theme(this.#storageManager.getVal('theme') || 'default');
yield this.theme(this.#storageManager.getVal("theme") || "default");
}
constructor() {
@ -93,4 +93,4 @@ class Settings {
}
}
export { Settings }
export { Settings };

View file

@ -14,4 +14,4 @@ class StoreManager<Prefix extends string> {
}
}
export { StoreManager }
export { StoreManager };

View file

@ -1,7 +1,7 @@
import type { Props } from "astro";
interface SettingsProps extends Props {
active: 'appearance' | 'credits' | 'links' | 'proxy';
active: "appearance" | "credits" | "links" | "proxy";
title: string;
}
@ -14,7 +14,7 @@ type DropdownOptions = {
const SearchEngines: Record<string, string> = {
DuckDuckGo: "https://duckduckgo.com/?q=%s",
Google: "https://google.com/search?q=%s",
Bing: "https://bing.com/search?q=%s",
Bing: "https://bing.com/search?q=%s"
};
export { type SettingsProps, type DropdownOptions, SearchEngines };