move wisp to plugin, remove build rq for running api

This commit is contained in:
tgt 2025-02-18 10:46:01 -05:00
parent 77dbccfc7e
commit d70ff2f4cf
5 changed files with 101 additions and 77 deletions

View file

@ -5,18 +5,21 @@ import tailwind from "@astrojs/tailwind";
import { baremuxPath } from "@mercuryworkshop/bare-mux/node";
import { epoxyPath } from "@mercuryworkshop/epoxy-transport";
import { libcurlPath } from "@mercuryworkshop/libcurl-transport";
import { scramjetPath } from "@mercuryworkshop/scramjet";
import playformCompress from "@playform/compress";
import { uvPath } from "@titaniumnetwork-dev/ultraviolet";
import { scramjetPath } from "@mercuryworkshop/scramjet";
import icon from "astro-icon";
import { defineConfig, envField } from "astro/config";
import { viteStaticCopy } from "vite-plugin-static-copy";
import { version } from "./package.json";
import { parsedDoc } from "./server/config.js";
import { wispPlugin } from "./server/vite-plugin-wisp";
const workerwarePath = fileURLToPath(new URL("./workerware/src", import.meta.url));
export default defineConfig({
site: parsedDoc.seo.enabled ? parsedDoc.seo.domain || process.env.SITE : 'http://localhost:4321',
site: parsedDoc.seo.enabled
? parsedDoc.seo.domain || process.env.SITE
: "http://localhost:4321",
env: {
schema: {
VERSION: envField.string({
@ -90,7 +93,8 @@ export default defineConfig({
overwrite: false
}
]
})
}),
wispPlugin
],
server: {
proxy: {
@ -113,12 +117,6 @@ export default defineConfig({
target: "http://localhost:8080",
changeOrigin: true
},
"/wisp/": {
target: "ws://localhost:8080/wisp/",
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(/^\/wisp\//, "")
},
"/styles": {
target: "http://localhost:8080",
changeOrigin: true

View file

@ -32,9 +32,9 @@
"@mercuryworkshop/bare-mux": "^2.1.7",
"@mercuryworkshop/epoxy-transport": "^2.1.27",
"@mercuryworkshop/libcurl-transport": "^1.3.15",
"@mercuryworkshop/scramjet": "https://github.com/MercuryWorkshop/scramjet/releases/download/latest/mercuryworkshop-scramjet-1.0.2-dev.tgz",
"@playform/compress": "^0.1.6",
"@titaniumnetwork-dev/ultraviolet": "^3.2.10",
"@mercuryworkshop/scramjet": "https://github.com/MercuryWorkshop/scramjet/releases/download/latest/mercuryworkshop-scramjet-1.0.2-dev.tgz",
"@types/node": "^22.10.2",
"@types/sequelize": "^4.28.20",
"astro": "^5.1.1",
@ -62,5 +62,16 @@
"ora": "^8.1.1",
"sharp": "^0.33.5",
"tsx": "^4.19.2"
},
"packageManager": "pnpm@10.4.1+sha512.c753b6c3ad7afa13af388fa6d808035a008e30ea9993f58c6663e2bc5ff21679aa834db094987129aa4d488b86df57f7b634981b2f827cdcacc698cc0cfb88af",
"pnpm": {
"onlyBuiltDependencies": [
"@biomejs/biome",
"bufferutil",
"esbuild",
"sharp",
"sqlite3",
"utf-8-validate"
]
}
}

View file

@ -10,8 +10,6 @@ import fastifyStatic from "@fastify/static";
import chalk from "chalk";
import Fastify, { FastifyReply, FastifyRequest } from "fastify";
import gradient from "gradient-string";
//@ts-ignore WHY would I want this typechecked AT ALL
import { handler as ssrHandler } from "../dist/server/entry.mjs";
import { parsedDoc } from "./config.js";
import { setupDB } from "./dbSetup.js";
import { catalogAssets, marketplaceAPI } from "./marketplace.js";
@ -57,9 +55,11 @@ if (parsedDoc.marketplace.enabled) {
}
await app.register(fastifyMiddie);
app.use(ssrHandler);
if (process.env.NODE_ENV === "production") {
//@ts-ignore WHY would I want this typechecked AT ALL
const { handler: ssrHandler } = await import("../dist/server/entry.mjs")
app.use(ssrHandler);
}
const port: number =
parseInt(process.env.PORT as string) || parsedDoc.server.server.port || parseInt("8080");
const titleText = `

View file

@ -26,4 +26,4 @@ const serverFactory: FastifyServerFactory = (
return httpServer;
};
export { serverFactory };
export { serverFactory, wispOptions };

View file

@ -0,0 +1,15 @@
import { Socket } from "node:net";
import wisp from "wisp-server-node";
import { wispOptions } from "./serverFactory";
export const wispPlugin = {
name: "vite-plugin-wisp",
configureServer(server) {
server.wisp = wisp;
server.httpServer?.on("upgrade", (req, socket: Socket, head) =>
req.url?.endsWith("/wisp/")
? wisp.routeRequest(req, socket, head, wispOptions)
: undefined
);
}
};