mirror of
https://github.com/misenhower/splatoon3.ink.git
synced 2026-03-21 17:54:13 -05:00
33 lines
632 B
JavaScript
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;
|
|
}
|
|
}
|
|
}
|