throwback
TypeScript icon, indicating that this package has built-in type declarations

4.1.0 • Public • Published

Throwback

NPM version NPM downloads Build status Test coverage

Simple asynchronous middleware pattern.

Installation

npm install throwback --save

Usage

Compose asynchronous (promise-returning) functions.

const { compose } = require("throwback");
 
const fn = compose([
  async function(ctx, next) {
    console.log(1);
 
    try {
      await next();
    } catch (err) {
      console.log("throwback", err);
    }
 
    console.log(4);
  },
  async function(ctx, next) {
    console.log(2);
 
    return next();
  }
]);
 
// Callback runs at the end of the stack, before
// the middleware bubbles back to the beginning.
fn({}, function(ctx) {
  console.log(3);
 
  ctx.status = 404;
});

Tip: In development (NODE_ENV !== "production"), compose will throw errors when you do something unexpected. In production, the faster non-error code paths are used.

Example

Build a micro HTTP server!

const { createServer } = require("http");
const finalhandler = require("finalhandler"); // Example only, not compatible with single `ctx` arg.
const { compose } = require("throwback");
 
const app = compose([
  function({ req, res }, next) {
    res.end("Hello world!");
  }
]);
 
createServer(function(req, res) {
  return app({ req, res }, finalhandler());
}).listen(3000);

Use Cases

Inspiration

Built for servie and inspired by koa-compose.

License

MIT

Package Sidebar

Install

npm i throwback

Weekly Downloads

83,626

Version

4.1.0

License

MIT

Unpacked Size

26.9 kB

Total Files

9

Last publish

Collaborators

  • blakeembrey