Socket
Socket
Sign inDemoInstall

express-router-api

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-router-api - npm Package Compare versions

Comparing version 1.0.4 to 1.1.0

23

index.js

@@ -25,2 +25,13 @@ 'use strict';

// coutesy of http://stackoverflow.com/a/9924463/403571
const ARGUMENT_NAMES = /([^\s,]+)/g;
var STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\\'|[^'\r\n])*')|("(?:\\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg;
function getParamNames(func) {
var fnStr = func.toString().replace(STRIP_COMMENTS, '');
var result = fnStr.slice(fnStr.indexOf('(')+1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);
if(result === null)
result = [];
return result;
}
class ExpressApiRouter extends express.Router {

@@ -92,9 +103,9 @@ constructor(_options) {

callbacks = callbacks.map((origHandler, index) => {
// return orig handler if it provides a callback
if(getParamNames(origHandler).length >= 3) {
return origHandler;
}
return (req, res, next) => {
let promiseChain = Promise.resolve().then(() => origHandler(req, res, next))
.tap((returnValue) => {
if(typeof returnValue === 'undefined' && index === callbacks.length - 1) {
throw new ExpressApiRouterError('Warning: Route for ' + path.toString() + ' did not return a promise - this happens when normal route handler is attached to express-router-api. Everything most likely works but you are advised to return API data through a promise.');
}
})
let promiseChain = Promise.resolve().then(() => origHandler(req, res))
.then(Promise.resolveDeep)

@@ -101,0 +112,0 @@ .then(this.options.successFormatter ? (data => this.options.successFormatter(data, req, res) ) : (data => data))

{
"name": "express-router-api",
"version": "1.0.4",
"version": "1.1.0",
"description": "Express router that lets you construct your API entirely on promises",

@@ -5,0 +5,0 @@ "main": "index.js",

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