Contractless-Web3-Wallets/serve-tests.mjs

34 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

import { createReadStream } from "node:fs";
import { createServer } from "node:http";
import { fileURLToPath } from "node:url";
import { dirname, join } from "node:path";
const root = dirname(fileURLToPath(import.meta.url));
const port = Number(process.env.PORT ?? 8080);
const files = new Map([
["/", ["tests/tests.html", "text/html; charset=utf-8"]],
["/tests.html", ["tests/tests.html", "text/html; charset=utf-8"]],
["/sdk/contractless.js", ["sdk/contractless.js", "text/javascript; charset=utf-8"]]
]);
const server = createServer((request, response) => {
const pathname = new URL(request.url ?? "/", "http://127.0.0.1").pathname;
const target = files.get(pathname);
if (!target) {
response.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
response.end("Not found");
return;
}
response.writeHead(200, {
"Content-Type": target[1],
"Cache-Control": "no-store",
"X-Content-Type-Options": "nosniff"
});
createReadStream(join(root, target[0])).pipe(response);
});
server.listen(port, "127.0.0.1", () => {
console.log(`Contractless wallet test: http://127.0.0.1:${port}/tests.html`);
});