UNPKG

@camar/http

Version:

To use __superconductor__ you need to build sources by `yarn build`

39 lines (38 loc) 1.26 kB
"use strict"; 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;