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/any.js | |
download | equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.gz equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.tar.bz2 equestriadb-383285ecd5292bf9a825e05904955b937de84cc9.zip |
Initial commit
Diffstat (limited to 'node_modules/body/any.js')
-rw-r--r-- | node_modules/body/any.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/node_modules/body/any.js b/node_modules/body/any.js new file mode 100644 index 0000000..3b7314b --- /dev/null +++ b/node_modules/body/any.js @@ -0,0 +1,38 @@ +var TypedError = require("error/typed") + +var parseArguments = require("./parse-arguments.js") +var jsonBody = require("./json.js") +var formBody = require("./form.js") + +var jsonType = "application/json" +var formType = "application/x-www-form-urlencoded" +var INVALID_CONTENT_TYPE = TypedError({ + message: "Could not parse content type header: {contentType}", + type: "invalid.content.type", + statusCode: 415, + contentType: null +}) + +module.exports = anyBody + +function anyBody(req, res, opts, callback) { + var args = parseArguments(req, res, opts, callback) + req = args.req + res = args.res + opts = args.opts + callback = args.callback + + if (!callback) { + return anyBody.bind(null, req, res, opts) + } + + var contentType = req.headers["content-type"] || "" + + if (contentType.indexOf(jsonType) !== -1) { + jsonBody(req, res, opts, callback) + } else if (contentType.indexOf(formType) !== -1) { + formBody(req, res, opts, callback) + } else { + callback(INVALID_CONTENT_TYPE({contentType: contentType})) + } +} |