This commit is contained in:
parent
874905b96b
commit
d67aeebd85
51
src/build.ts
51
src/build.ts
|
@ -1,11 +1,29 @@
|
|||
import * as esbuild from "esbuild"
|
||||
import {watch, cpSync, rmdirSync, createReadStream, readFileSync, ReadStream} from "node:fs"
|
||||
import {watch, cpSync, rmdirSync, readFileSync, ReadStream} from "node:fs"
|
||||
import { serve } from 'micro';
|
||||
import {Server} from "node:http"
|
||||
import handler from "serve-handler"
|
||||
import { Readable } from "node:stream";
|
||||
import { WebSocketServer } from 'ws';
|
||||
|
||||
const script = `let t;function rr() {console.log("connecting to dev server")
|
||||
let a = new WebSocket("ws://localhost:8081");
|
||||
a.addEventListener("message", g => {
|
||||
if(g.data == "refresh"){
|
||||
location.reload()
|
||||
}
|
||||
});
|
||||
a.addEventListener("open", () => {
|
||||
console.log("connected")
|
||||
})
|
||||
a.addEventListener("close", () => {
|
||||
console.log("socket closed, restarting in 1s")
|
||||
clearInterval(t)
|
||||
t = setTimeout(()=>{
|
||||
rr()
|
||||
},1000)
|
||||
})};rr();`;
|
||||
|
||||
const argv = process.argv.slice(2)
|
||||
|
||||
async function buildTs() {
|
||||
|
@ -25,8 +43,6 @@ if(argv[0] == "--build") {
|
|||
}
|
||||
|
||||
if(argv[0] == "--dev") {
|
||||
const scriptName = Math.random().toFixed(10).replace("0.","")
|
||||
|
||||
const wss = new WebSocketServer({ port: 8081 });
|
||||
let allConnections = new Map<number, WebSocket>();
|
||||
wss.on('connection', function connection(ws) {
|
||||
|
@ -40,31 +56,6 @@ if(argv[0] == "--dev") {
|
|||
});
|
||||
const server = new Server(
|
||||
serve(async (req, res) => {
|
||||
if(req.url == `/${scriptName}.js`) {
|
||||
const body = `let t;function rr() {console.log("connecting to dev server")
|
||||
let a = new WebSocket("ws://localhost:8081");
|
||||
a.addEventListener("message", g => {
|
||||
if(g.data == "refresh"){
|
||||
location.reload()
|
||||
}
|
||||
});
|
||||
a.addEventListener("open", () => {
|
||||
console.log("connected")
|
||||
})
|
||||
a.addEventListener("close", () => {
|
||||
console.log("socket closed, restarting in 1s")
|
||||
clearInterval(t)
|
||||
t = setTimeout(()=>{
|
||||
rr()
|
||||
},1000)
|
||||
})};rr();`;
|
||||
res
|
||||
.writeHead(200, {
|
||||
'Content-Length': Buffer.byteLength(body),
|
||||
'Content-Type': 'text/plain',
|
||||
})
|
||||
.end(body);
|
||||
}
|
||||
if(req.url == "/" || req.url?.endsWith(".html")) {
|
||||
await handler(req, res, {
|
||||
directoryListing: false,
|
||||
|
@ -72,7 +63,7 @@ if(argv[0] == "--dev") {
|
|||
}, {
|
||||
createReadStream(path, options) {
|
||||
let sx = readFileSync(path).toString("utf8");
|
||||
sx = sx.replaceAll("</head>", `<script src="/${scriptName}.js"></script></head>`)
|
||||
sx = sx.replaceAll("</head>", `<script>${script}</script></head>`)
|
||||
return Readable.from([sx]) as ReadStream
|
||||
},
|
||||
});
|
||||
|
@ -86,7 +77,7 @@ if(argv[0] == "--dev") {
|
|||
)
|
||||
server.listen(8080)
|
||||
console.log('[http] Listening HTTP on 8080.')
|
||||
const watcher = watch("./src/web", {
|
||||
watch("./src/web", {
|
||||
recursive: true,
|
||||
}, async (e,f) => {
|
||||
if(f == "dist.js") return;
|
||||
|
|
Loading…
Reference in a new issue