flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
54 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const http = require("http");
class Server {
constructor() {
this._httpPort = 3000;
this._requestHandler = (request, response) => {
console.log(request.url);
response.end('Hello Node.js Server!');
};
console.log('creating server');
this._server = http.createServer(this._requestHandler);
console.log(this._server);
}
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.Server = Server;
//# sourceMappingURL=server.js.map