grind-http
Version:
HTTP kernel for Grind, powered by Express
24 lines (17 loc) • 2.19 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.UpgradeDispatcher = UpgradeDispatcher;
const url = require('url');
function UpgradeDispatcher(upgraders, req, socket, ...args) {
req.pathname = url.parse(req.url).pathname; // Loop through registered handlers to find a matching upgrader
for (const [pathname, handler] of Object.entries(upgraders)) {
if (pathname !== req.pathname) {
continue;
}
return handler(req, socket, ...args);
} // If no paths matched, destroy
socket.destroy();
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0aW5nL1VwZ3JhZGVEaXNwYXRjaGVyLmpzIl0sIm5hbWVzIjpbInVybCIsInJlcXVpcmUiLCJVcGdyYWRlRGlzcGF0Y2hlciIsInVwZ3JhZGVycyIsInJlcSIsInNvY2tldCIsImFyZ3MiLCJwYXRobmFtZSIsInBhcnNlIiwiaGFuZGxlciIsIk9iamVjdCIsImVudHJpZXMiLCJkZXN0cm95Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFFTyxTQUFTQyxpQkFBVCxDQUEyQkMsU0FBM0IsRUFBc0NDLEdBQXRDLEVBQTJDQyxNQUEzQyxFQUFtRCxHQUFHQyxJQUF0RCxFQUE0RDtBQUNsRUYsRUFBQUEsR0FBRyxDQUFDRyxRQUFKLEdBQWVQLEdBQUcsQ0FBQ1EsS0FBSixDQUFVSixHQUFHLENBQUNKLEdBQWQsRUFBbUJPLFFBQWxDLENBRGtFLENBR2xFOztBQUNBLE9BQUssTUFBTSxDQUFDQSxRQUFELEVBQVdFLE9BQVgsQ0FBWCxJQUFrQ0MsTUFBTSxDQUFDQyxPQUFQLENBQWVSLFNBQWYsQ0FBbEMsRUFBNkQ7QUFDNUQsUUFBSUksUUFBUSxLQUFLSCxHQUFHLENBQUNHLFFBQXJCLEVBQStCO0FBQzlCO0FBQ0E7O0FBRUQsV0FBT0UsT0FBTyxDQUFDTCxHQUFELEVBQU1DLE1BQU4sRUFBYyxHQUFHQyxJQUFqQixDQUFkO0FBQ0EsR0FWaUUsQ0FZbEU7OztBQUNBRCxFQUFBQSxNQUFNLENBQUNPLE9BQVA7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHVybCA9IHJlcXVpcmUoJ3VybCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBVcGdyYWRlRGlzcGF0Y2hlcih1cGdyYWRlcnMsIHJlcSwgc29ja2V0LCAuLi5hcmdzKSB7XG5cdHJlcS5wYXRobmFtZSA9IHVybC5wYXJzZShyZXEudXJsKS5wYXRobmFtZVxuXG5cdC8vIExvb3AgdGhyb3VnaCByZWdpc3RlcmVkIGhhbmRsZXJzIHRvIGZpbmQgYSBtYXRjaGluZyB1cGdyYWRlclxuXHRmb3IgKGNvbnN0IFtwYXRobmFtZSwgaGFuZGxlcl0gb2YgT2JqZWN0LmVudHJpZXModXBncmFkZXJzKSkge1xuXHRcdGlmIChwYXRobmFtZSAhPT0gcmVxLnBhdGhuYW1lKSB7XG5cdFx0XHRjb250aW51ZVxuXHRcdH1cblxuXHRcdHJldHVybiBoYW5kbGVyKHJlcSwgc29ja2V0LCAuLi5hcmdzKVxuXHR9XG5cblx0Ly8gSWYgbm8gcGF0aHMgbWF0Y2hlZCwgZGVzdHJveVxuXHRzb2NrZXQuZGVzdHJveSgpXG59XG4iXX0=
;