diff options
author | Minteck <contact@minteck.org> | 2022-06-04 08:51:01 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-06-04 08:51:01 +0200 |
commit | 383285ecd5292bf9a825e05904955b937de84cc9 (patch) | |
tree | 0a53b6f02c1604b078044567c03dc1b6c944c8c2 /node_modules/body/index.js | |
download | equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.gz equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.bz2 equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.zip |
Initial commit
Diffstat (limited to 'node_modules/body/index.js')
-rw-r--r-- | node_modules/body/index.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/node_modules/body/index.js b/node_modules/body/index.js new file mode 100644 index 0000000..eda2511 --- /dev/null +++ b/node_modules/body/index.js @@ -0,0 +1,47 @@ +var rawBody = require("raw-body") +var cache = require("continuable-cache") + +var parseArguments = require("./parse-arguments.js") + +var ONE_MB = 1024 * 1024 +var THUNK_KEY = '__npm_body_thunk_cache__'; + +module.exports = body + +function parseBodyThunk(req, res, opts) { + return function thunk(callback) { + var limit = "limit" in opts ? opts.limit : ONE_MB + var contentLength = req.headers ? + Number(req.headers["content-length"]) : null; + + rawBody(req, { + limit: limit, + length: contentLength, + encoding: "encoding" in opts ? opts.encoding : true + }, callback); + }; +} + +function body(req, res, opts, callback) { + var args = parseArguments(req, res, opts, callback) + req = args.req + res = args.res + opts = args.opts + callback = args.callback + + var thunk; + + if (opts.cache) { + var thunk = req[THUNK_KEY] || + cache(parseBodyThunk(req, res, opts)); + req[THUNK_KEY] = thunk; + } else { + thunk = parseBodyThunk(req, res, opts); + } + + if (!callback) { + return thunk; + } + + thunk(callback); +} |