Opal-Estate-Pro/node_modules/body/any.js
2019-09-13 11:27:52 +07:00

39 lines
1.0 KiB
JavaScript

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}))
}
}