UNPKG

bogart-edge

Version:

Fast JSGI web framework taking inspiration from Sinatra

30 lines (24 loc) 688 B
var q = require('../q') , ForEachStream = require('../forEachStream') , parted = require('parted'); module.exports = function PartedMiddleware(opts) { return function partedMiddleware(req, next) { var fn = parted(opts) , deferred = q.defer() , oldBody = req.body , emitter; if (oldBody === undefined) { return next(req); } emitter = new ForEachStream(oldBody); req.on = emitter.on.bind(emitter); req.pipe = emitter.pipe.bind(emitter); delete req.body; fn(req, null, function () { q.when(next(), function (res) { deferred.resolve(res); }, deferred.reject); }); return deferred.promise; }; };