diff --git a/lib/mount.js b/lib/mount.js index b335fc0..287aa53 100644 --- a/lib/mount.js +++ b/lib/mount.js @@ -12,11 +12,12 @@ const { wrap } = require('./wrap') const { writeHTTP } = require('./writeHTTP') const { writeLambda } = require('./writeLambda') -const keepOriginal = curry((response, request) => merge(request, { - original: request, // legacy - request, - response -})) +const keepOriginal = res => req => { + req.original = req + req.request = req + req.response = res + return req +} exports.mount = (opts={}) => { const { diff --git a/lib/parseUrl.js b/lib/parseUrl.js index ef522d6..2cde11a 100644 --- a/lib/parseUrl.js +++ b/lib/parseUrl.js @@ -1,25 +1,23 @@ -const { assocWith } = require('@articulate/funky') const qs = require('qs') const url = require('url') -const { - converge, evolve, identity, merge, pick, pipe, prop -} = require('ramda') +const protocol = ({ headers, socket }) => + headers['x-forwarded-proto'] || + socket.encrypted ? 'https' : 'http' -const pathParts = - pipe( - prop('url'), - url.parse, - evolve({ query: qs.parse }), - pick(['pathname', 'query']) - ) +const pathParts = req => { + const { pathname, query } = url.parse(req.url) + return { + pathname, + query: qs.parse(query), + protocol: protocol(req), + } +} -const protocol = req => - req.headers['x-forwarded-proto'] || - req.socket.encrypted ? 'https' : 'http' - -exports.parseUrl = - pipe( - converge(merge, [ identity, pathParts ]), - assocWith('protocol', protocol) - ) +exports.parseUrl = req => { + const { pathname, query, protocol } = pathParts(req) + req.pathname = pathname + req.query = query + req.protocol = protocol + return req +} diff --git a/lib/passThruBody.js b/lib/passThruBody.js index 6a9b534..9c937a9 100644 --- a/lib/passThruBody.js +++ b/lib/passThruBody.js @@ -1,11 +1,8 @@ -const { assocWith } = require('@articulate/funky') const { PassThrough } = require('stream') -const passThru = ({ original }) => { +exports.passThruBody = req => { const body = new PassThrough() - original.pipe(body) - return body + req.original.pipe(body) + req.body = body + return req } - -exports.passThruBody = - assocWith('body', passThru)