New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

middleware-flow

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

middleware-flow - npm Package Compare versions

Comparing version 0.2.0 to 0.2.1

28

index.js

@@ -9,12 +9,21 @@ var createCount = require('callback-count');

step(middlewares.shift());
var error;
function step (mw) {
if (mw) {
mw(req, res, nextStep);
if (error) {
mw(error, req, res, nextStep);
}
else {
mw(req, res, nextStep);
}
}
else {
next(); // done
next(error); // done
}
}
function nextStep (err) {
if (err) return next(err);
if (err) {
error = err;
middlewares = middlewares.filter(lengthOf(4));
}
step(middlewares.shift()); // continue

@@ -96,2 +105,5 @@ }

if (err || !result) {
if (exists(err)) {
req.lastError = err;
}
flow.series.apply(null, conditional.else)(req, res, next);

@@ -137,2 +149,12 @@ }

return exec;
}
function exists (v) {
return v !== null && v !== undefined;
}
function lengthOf (i) {
return function (foo) {
return foo.length === i;
};
}

2

package.json
{
"name": "middleware-flow",
"version": "0.2.0",
"version": "0.2.1",
"description": "Middleware control flow library: series, parallel, or, and",

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

@@ -24,3 +24,3 @@ # middleware-flow [![Build Status](https://travis-ci.org/tjmehta/middleware-flow.png?branch=master)](https://travis-ci.org/tjmehta/middleware-flow)

```js
var flow = require('middleware-flow');
var parallel = require('middleware-flow').parallel;
var app = require('express')();

@@ -34,3 +34,3 @@ // runs the middlewares in 'parallel'

```js
var parallel = require('middleware-flow').parallel;
var or = require('middleware-flow').or;
var app = require('express')();

@@ -45,3 +45,77 @@ // runs the middlewares in series, until one passes (no next(err));

## if(value).then(middlewares...).else(middlewares...)
```js
var if = require('middleware-flow').if;
var app = require('express')();
app.use(
if(true)
.then(one, two, three)
.else(error)
);
```
## syncIf(fn).then(middlewares...).else(middlewares...)
```js
var syncIf = require('middleware-flow').syncIf;
var app = require('express')();
app.use(
syncIf(nameQueryExists) // accepts a sync function that returns a boolean
.then(one, two, three) // true -> then, false -> else
.else(error)
);
function nameQueryExists (req, res) {
return exists(req.query.name);
}
function exists (val) {
return val !== null && val !== undefined;
}
```
## asyncIf(fn).then(middlewares...).else(middlewares...)
```js
var asyncIf = require('middleware-flow').asyncIf;
var or = require('middleware-flow').or;
var fs = require('fs');
var app = require('express')();
app.use(
asyncIf(bodyFileExists) // expects boolean as the result argument
.then(one, two, three) // true -> then, false -> else, error -> else
.else(other)
);
function logExists (req, res, cb) {
fs.exists(req.body.file, function (exists) {
cb(null, exists);
});
}
```
## mwIf(middleware).then(middlewares...).else(middlewares...)
```js
var mwIf = require('middleware-flow').mwIf;
var or = require('middleware-flow').or;
var app = require('express')();
app.use(
mwIf(userIsModerator) // error here, just runs the else middlewares
.then(one, two, three) // no error -> then, error -> else
.else(other)
);
function userIsModerator (req, res, next) {
if (!req.user.isModerator) {
next(new Error('access denied'));
}
else {
next();
}
}
```
# License
### MIT

@@ -77,3 +77,11 @@ var createCount = require('callback-count');

)
.else(nextError(err))
.else(nextError(err)),
function (err, req, res, next) {
if (test === mwFailErr || test === asyncFail) {
if (!req.lastError) {
throw new Error('lastError was not set');
}
}
next();
}
);

@@ -80,0 +88,0 @@ });

var express = require('express');
var mw = require('../../index');
module.exports = function createAppWithMiddlewares (middleware) {
module.exports = function createAppWithMiddlewares (/* middlewares */) {
var middlewares = Array.prototype.slice.call(arguments);
console.log(middlewares.length);
var app = express();
app.use(express.json());
app.use(express.urlencoded());
app.use(middleware);
app.use(mw.series.apply(mw, middlewares));
app.use(app.router);

@@ -10,0 +12,0 @@ // app.use(express.errorHandler());

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