Socket
Socket
Sign inDemoInstall

router

Package Overview
Dependencies
Maintainers
2
Versions
66
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

router - npm Package Compare versions

Comparing version 0.4.6 to 0.4.8

67

index.js
var http = require('http');
var https = require('https');
var common = require('common');
var matcher = require('./matcher');

@@ -15,2 +14,3 @@

}
return require('fs').readFileSync(param);

@@ -21,7 +21,5 @@ };

var that = common.createEmitter();
options = options || {};
// TODO: maybe listen for # of request handlers on the server to decide whether to autoclose
if (options.router) {

@@ -50,5 +48,35 @@ return options.router;

}
return false;
};
var onrequest = function(request, response) {
that.emit('request', request, response);
that.route(request, response);
};
var onupgrade = function(request, connection, head) {
that.emit('upgrade', request, connection, head);
if (find(methods.upgrade, request, connection, head)) {
return;
}
if (that.listeners('upgrade').length || server.listeners('upgrade').length > 1) {
return;
}
connection.destroy();
};
that.from = function(server, options) {
if (options && typeof options === 'object' && typeof server === 'number') {
return that.from(https.createServer(options).listen(server));
}
if (typeof server === 'number' || typeof server === 'string') {
return that.from(http.createServer().listen(server));
}
server.on('request', onrequest);
server.on('upgrade', onupgrade);
return that;
};
that.route = function(request, response) {

@@ -65,22 +93,7 @@ if (find(methods[request.method.toLowerCase()], request, response) || !that.autoclose) {

}
response.writeHead(404);
response.end();
};
server.on('request', function(request, response) {
that.emit('request', request, response);
that.route(request, response);
});
server.on('upgrade', function(request, connection, head) {
that.emit('upgrade', request, connection, head);
if (find(methods.upgrade, request, connection, head)) {
return;
}
if (that.listeners('upgrade').length || server.listeners('upgrade').length > 1) {
return;
}
connection.destroy();
});
var router = function(methods) {

@@ -114,2 +127,3 @@ return function(pattern, rewrite, fn) {

}
return false;

@@ -121,3 +135,3 @@ });

var fns = ['get', 'put', 'del', 'post', 'head', 'options'];
fns.forEach(function(method) {

@@ -127,2 +141,4 @@ that[method] = router(methods[method.replace('del', 'delete')]);

that.upgrade = router(methods.upgrade);
that.all = function() {

@@ -134,6 +150,3 @@ var args = arguments;

});
};
that.upgrade = router(methods.upgrade);
};
that.close = function() {

@@ -152,5 +165,5 @@ server.close.apply(server, arguments);

return that;
return that.from(server);
};
exports.create = createRouter;
{
"name":"router",
"version":"0.4.6",
"version":"0.4.8",
"description":"A lean and mean web router",

@@ -5,0 +5,0 @@ "contributors": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc