mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 18:27:29 -05:00
* Fix #2031 - Add pyscript.WebSocket to the mix * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Working on a test case anyone can run * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
34 lines
979 B
JavaScript
34 lines
979 B
JavaScript
import { serve, file } from 'bun';
|
|
|
|
import path, { dirname, join } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const dir = dirname(fileURLToPath(import.meta.url));
|
|
|
|
serve({
|
|
port: 5037,
|
|
fetch(req, server) {
|
|
if (server.upgrade(req)) return;
|
|
const url = new URL(req.url);
|
|
let { pathname } = url;
|
|
if (pathname === '/') pathname = '/index.html';
|
|
else if (/^\/dist\//.test(pathname)) pathname = `/../..${pathname}`;
|
|
else if (pathname === '/favicon.ico')
|
|
return new Response('Not Found', { status: 404 });
|
|
const response = new Response(file(`${dir}${pathname}`));
|
|
const { headers } = response;
|
|
headers.set('Cross-Origin-Opener-Policy', 'same-origin');
|
|
headers.set('Cross-Origin-Embedder-Policy', 'require-corp');
|
|
headers.set('Cross-Origin-Resource-Policy', 'cross-origin');
|
|
return response;
|
|
},
|
|
websocket: {
|
|
message(ws, message) {
|
|
ws.send(message);
|
|
},
|
|
close() {
|
|
process.exit(0);
|
|
}
|
|
},
|
|
});
|