splatoon3.ink/app/screenshots/HttpServer.mjs
2024-03-16 22:31:20 -07:00

33 lines
632 B
JavaScript

import http from 'http';
import ecstatic from 'ecstatic';
export default class HttpServer
{
/** @member {http.Server} */
#server = null;
get port() {
return this.#server.address().port;
}
open() {
return new Promise((resolve, reject) => {
if (this.#server) {
return resolve();
}
const handler = ecstatic({ root: './dist' });
this.#server = http.createServer(handler);
this.#server.on('listening', () => resolve());
this.#server.listen();
});
}
async close() {
if (this.#server) {
await this.#server.close();
this.#server = null;
}
}
}