aboutsummaryrefslogtreecommitdiffstats
path: root/dgbuilder/dgeflows/node_modules/body-parser/node_modules/type-is/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'dgbuilder/dgeflows/node_modules/body-parser/node_modules/type-is/index.js')
-rw-r--r--dgbuilder/dgeflows/node_modules/body-parser/node_modules/type-is/index.js228
1 files changed, 0 insertions, 228 deletions
diff --git a/dgbuilder/dgeflows/node_modules/body-parser/node_modules/type-is/index.js b/dgbuilder/dgeflows/node_modules/body-parser/node_modules/type-is/index.js
deleted file mode 100644
index 73e885ae..00000000
--- a/dgbuilder/dgeflows/node_modules/body-parser/node_modules/type-is/index.js
+++ /dev/null
@@ -1,228 +0,0 @@
-
-var typer = require('media-typer')
-var mime = require('mime-types')
-
-module.exports = typeofrequest;
-typeofrequest.is = typeis;
-typeofrequest.hasBody = hasbody;
-typeofrequest.normalize = normalize;
-typeofrequest.match = mimeMatch;
-
-/**
- * Compare a `value` content-type with `types`.
- * Each `type` can be an extension like `html`,
- * a special shortcut like `multipart` or `urlencoded`,
- * or a mime type.
- *
- * If no types match, `false` is returned.
- * Otherwise, the first `type` that matches is returned.
- *
- * @param {String} value
- * @param {Array} types
- * @return String
- */
-
-function typeis(value, types_) {
- var i
- var types = types_
-
- // remove parameters and normalize
- var val = typenormalize(value)
-
- // no type or invalid
- if (!val) {
- return false
- }
-
- // support flattened arguments
- if (types && !Array.isArray(types)) {
- types = new Array(arguments.length - 1)
- for (i = 0; i < types.length; i++) {
- types[i] = arguments[i + 1]
- }
- }
-
- // no types, return the content type
- if (!types || !types.length) {
- return val
- }
-
- var type
- for (i = 0; i < types.length; i++) {
- if (mimeMatch(normalize(type = types[i]), val)) {
- return type[0] === '+' || ~type.indexOf('*')
- ? val
- : type
- }
- }
-
- // no matches
- return false;
-}
-
-/**
- * Check if a request has a request body.
- * A request with a body __must__ either have `transfer-encoding`
- * or `content-length` headers set.
- * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3
- *
- * @param {Object} request
- * @return {Boolean}
- * @api public
- */
-
-function hasbody(req) {
- var headers = req.headers;
- if ('transfer-encoding' in headers) return true;
- return !isNaN(headers['content-length']);
-}
-
-/**
- * Check if the incoming request contains the "Content-Type"
- * header field, and it contains any of the give mime `type`s.
- * If there is no request body, `null` is returned.
- * If there is no content type, `false` is returned.
- * Otherwise, it returns the first `type` that matches.
- *
- * Examples:
- *
- * // With Content-Type: text/html; charset=utf-8
- * this.is('html'); // => 'html'
- * this.is('text/html'); // => 'text/html'
- * this.is('text/*', 'application/json'); // => 'text/html'
- *
- * // When Content-Type is application/json
- * this.is('json', 'urlencoded'); // => 'json'
- * this.is('application/json'); // => 'application/json'
- * this.is('html', 'application/*'); // => 'application/json'
- *
- * this.is('html'); // => false
- *
- * @param {String|Array} types...
- * @return {String|false|null}
- * @api public
- */
-
-function typeofrequest(req, types_) {
- var types = types_
-
- // no body
- if (!hasbody(req)) {
- return null
- }
-
- // support flattened arguments
- if (arguments.length > 2) {
- types = new Array(arguments.length - 1)
- for (var i = 0; i < types.length; i++) {
- types[i] = arguments[i + 1]
- }
- }
-
- // request content type
- var value = req.headers['content-type']
-
- return typeis(value, types);
-}
-
-/**
- * Normalize a mime type.
- * If it's a shorthand, expand it to a valid mime type.
- *
- * In general, you probably want:
- *
- * var type = is(req, ['urlencoded', 'json', 'multipart']);
- *
- * Then use the appropriate body parsers.
- * These three are the most common request body types
- * and are thus ensured to work.
- *
- * @param {String} type
- * @api private
- */
-
-function normalize(type) {
- switch (type) {
- case 'urlencoded': return 'application/x-www-form-urlencoded';
- case 'multipart':
- type = 'multipart/*';
- break;
- }
-
- return type[0] === '+' || ~type.indexOf('/')
- ? type
- : mime.lookup(type)
-}
-
-/**
- * Check if `exected` mime type
- * matches `actual` mime type with
- * wildcard and +suffix support.
- *
- * @param {String} expected
- * @param {String} actual
- * @return {Boolean}
- * @api private
- */
-
-function mimeMatch(expected, actual) {
- // invalid type
- if (expected === false) {
- return false
- }
-
- // exact match
- if (expected === actual) {
- return true
- }
-
- actual = actual.split('/');
-
- if (expected[0] === '+') {
- // support +suffix
- return Boolean(actual[1])
- && expected.length <= actual[1].length
- && expected === actual[1].substr(0 - expected.length)
- }
-
- if (!~expected.indexOf('*')) return false;
-
- expected = expected.split('/');
-
- if (expected[0] === '*') {
- // support */yyy
- return expected[1] === actual[1]
- }
-
- if (expected[1] === '*') {
- // support xxx/*
- return expected[0] === actual[0]
- }
-
- if (expected[1][0] === '*' && expected[1][1] === '+') {
- // support xxx/*+zzz
- return expected[0] === actual[0]
- && expected[1].length <= actual[1].length + 1
- && expected[1].substr(1) === actual[1].substr(1 - expected[1].length)
- }
-
- return false
-}
-
-/**
- * Normalize a type and remove parameters.
- *
- * @param {string} value
- * @return {string}
- * @api private
- */
-
-function typenormalize(value) {
- try {
- var type = typer.parse(value)
- delete type.parameters
- return typer.format(type)
- } catch (err) {
- return null
- }
-}