{"library":"middleware-flow","title":"Middleware Flow Control","description":"middleware-flow is a JavaScript library providing enhanced control flow structures for Express-style middleware. It extends the basic sequential execution model by offering utilities for `series`, `parallel`, `parallelWait`, `each`, `or`, `and`, `if().then().else()`, `syncIf`, `asyncIf`, and `mwIf` operations. First published in 2015 and currently at version 0.8.0, it was developed primarily for CommonJS environments, common in older Node.js and Express applications, making it a useful tool for orchestrating complex middleware pipelines. Its key differentiator lies in its declarative API for non-sequential middleware execution, particularly for concurrent tasks or conditional branching, which are not natively provided by Express's core `app.use()` patterns. The project's development appears to be abandoned, with its last publish date being 11 years ago, and no further updates are expected.","language":"javascript","status":"abandoned","last_verified":"Wed Apr 22","install":{"commands":["npm install middleware-flow"],"cli":null},"imports":["const { series } = require('middleware-flow');","const { parallel } = require('middleware-flow');","const { 'if': ifFlow } = require('middleware-flow');"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const express = require('express');\nconst { 'if': ifFlow, series } = require('middleware-flow');\n\nconst app = express();\n\n// Dummy middlewares\nconst middlewareOne = (req, res, next) => {\n  console.log('Middleware One executed.');\n  next();\n};\nconst middlewareTwo = (req, res, next) => {\n  console.log('Middleware Two executed.');\n  next();\n};\nconst middlewareError = (req, res, next) => {\n  console.error('Error Middleware executed.');\n  res.status(500).send('An error occurred!');\n};\n\n// A synchronous function for ifFlow condition\nfunction nameQueryExists (req, res) {\n  return !!req.query.name;\n}\n\napp.use('/conditional', \n  ifFlow(nameQueryExists) // Checks if req.query.name exists\n    .then(middlewareOne, middlewareTwo) // If true, run these sequentially\n    .else(middlewareError) // If false, run the error middleware\n);\n\napp.use('/', series(middlewareOne, middlewareTwo, (req, res) => {\n  res.send('Hello from middleware-flow! Try /conditional?name=test or /conditional');\n}));\n\napp.listen(3000, () => {\n  console.log('Server listening on http://localhost:3000');\n});","lang":"javascript","description":"Demonstrates conditional middleware execution using `if().then().else()` and sequential execution with `series` in an Express application. The `/conditional` route varies its behavior based on a query parameter.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}