UNPKG

grind-http

Version:
24 lines (17 loc) 2.19 kB
"use strict"; 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=