flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
48 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const http = require("http");
class WebServer {
constructor(requestHandler) {
this._httpPort = 3000;
this._server = http.createServer(requestHandler);
}
get isListening() {
return this._server.listening;
}
get httpPort() {
return this._httpPort;
}
set httpPort(value) {
this._httpPort = value;
}
listen(port) {
if (this.isListening) {
throw new Error('HTTP Server is already listening.');
}
return new Promise((resolve, reject) => {
if (typeof port != 'undefined' && port > 0) {
this._httpPort = Math.ceil(port);
}
this._server.listen(this._httpPort, (err) => {
if (err) {
return reject(`Could not listen on port ${this._httpPort}: ${err}`);
}
resolve();
});
});
}
close() {
return new Promise((resolve) => {
if (this.isListening) {
this._server.close(() => {
resolve();
});
}
else {
resolve();
}
});
}
}
exports.WebServer = WebServer;
//# sourceMappingURL=webserver.js.map