]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - apps/tidep0084.git/blobdiff - prebuilt/iot-gateway/node_modules/engine.io/node_modules/negotiator/lib/mediaType.js
Updated Sensor To Cloud design to have an easy to use setup GUI on the
[apps/tidep0084.git] / prebuilt / iot-gateway / node_modules / engine.io / node_modules / negotiator / lib / mediaType.js
diff --git a/prebuilt/iot-gateway/node_modules/engine.io/node_modules/negotiator/lib/mediaType.js b/prebuilt/iot-gateway/node_modules/engine.io/node_modules/negotiator/lib/mediaType.js
deleted file mode 100644 (file)
index e413cad..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-module.exports = preferredMediaTypes;
-preferredMediaTypes.preferredMediaTypes = preferredMediaTypes;
-
-function parseAccept(accept) {
-  return accept.split(',').map(function(e, i) {
-    return parseMediaType(e.trim(), i);
-  }).filter(function(e) {
-    return e;
-  });
-};
-
-function parseMediaType(s, i) {
-  var match = s.match(/\s*(\S+?)\/([^;\s]+)\s*(?:;(.*))?/);
-  if (!match) return null;
-
-  var type = match[1],
-      subtype = match[2],
-      full = "" + type + "/" + subtype,
-      params = {},
-      q = 1;
-
-  if (match[3]) {
-    params = match[3].split(';').map(function(s) {
-      return s.trim().split('=');
-    }).reduce(function (set, p) {
-      set[p[0]] = p[1];
-      return set
-    }, params);
-
-    if (params.q != null) {
-      q = parseFloat(params.q);
-      delete params.q;
-    }
-  }
-
-  return {
-    type: type,
-    subtype: subtype,
-    params: params,
-    q: q,
-    i: i,
-    full: full
-  };
-}
-
-function getMediaTypePriority(type, accepted) {
-  return (accepted.map(function(a) {
-    return specify(type, a);
-  }).filter(Boolean).sort(function (a, b) {
-    if(a.s == b.s) {
-      return a.q > b.q ? -1 : 1;
-    } else {
-      return a.s > b.s ? -1 : 1;
-    }
-  })[0] || {s: 0, q: 0});
-}
-
-function specify(type, spec) {
-  var p = parseMediaType(type);
-  var s = 0;
-
-  if (!p) {
-    return null;
-  }
-
-  if(spec.type.toLowerCase() == p.type.toLowerCase()) {
-    s |= 4
-  } else if(spec.type != '*') {
-    return null;
-  }
-
-  if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
-    s |= 2
-  } else if(spec.subtype != '*') {
-    return null;
-  }
-
-  var keys = Object.keys(spec.params);
-  if (keys.length > 0) {
-    if (keys.every(function (k) {
-      return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase();
-    })) {
-      s |= 1
-    } else {
-      return null
-    }
-  }
-
-  return {
-    q: spec.q,
-    s: s,
-  }
-
-}
-
-function preferredMediaTypes(accept, provided) {
-  // RFC 2616 sec 14.2: no header = */*
-  accept = parseAccept(accept === undefined ? '*/*' : accept || '');
-  if (provided) {
-    return provided.map(function(type) {
-      return [type, getMediaTypePriority(type, accept)];
-    }).filter(function(pair) {
-      return pair[1].q > 0;
-    }).sort(function(a, b) {
-      var pa = a[1];
-      var pb = b[1];
-      return (pb.q - pa.q) || (pb.s - pa.s) || (pa.i - pb.i);
-    }).map(function(pair) {
-      return pair[0];
-    });
-
-  } else {
-    return accept.sort(function (a, b) {
-      // revsort
-      return (b.q - a.q) || (a.i - b.i);
-    }).filter(function(type) {
-      return type.q > 0;
-    }).map(function(type) {
-      return type.full;
-    });
-  }
-}