@camar/http
Version:
To use __superconductor__ you need to build sources by `yarn build`
39 lines (38 loc) • 1.26 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const http = require("http");
const router_1 = require("./router");
const layer_1 = require("./layer");
class Server {
constructor(context) {
this._router = new router_1.default();
this._currentContext = context;
this._defaultLayer = new layer_1.default(this._router, undefined, undefined, () => this._currentContext);
this._server = http.createServer((req, res) => this._router.handleRequest(req, res));
}
listen(port) {
return new Promise((resolve, reject) => {
this._server.once('error', reject)
.listen(port, () => {
resolve();
this._server.off('error', reject);
});
});
}
context(resolver) {
return this._defaultLayer.context(resolver);
}
middleware(middleware) {
return this._defaultLayer.middleware(middleware);
}
route(template, method) {
return this._defaultLayer.route(template, method);
}
get server() {
return this._server;
}
close() {
return new Promise((resolve, reject) => this._server.close(e => e ? reject(e) : resolve()));
}
}
exports.default = Server;
;