34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
|
|
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`);
|
||
|
|
});
|