summaryrefslogtreecommitdiff
path: root/node_modules/superagent/lib/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/superagent/lib/utils.js')
-rw-r--r--node_modules/superagent/lib/utils.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/node_modules/superagent/lib/utils.js b/node_modules/superagent/lib/utils.js
new file mode 100644
index 0000000..9bf1285
--- /dev/null
+++ b/node_modules/superagent/lib/utils.js
@@ -0,0 +1,68 @@
+
+/**
+ * Return the mime type for the given `str`.
+ *
+ * @param {String} str
+ * @return {String}
+ * @api private
+ */
+
+exports.type = function(str){
+ return str.split(/ *; */).shift();
+};
+
+/**
+ * Return header field parameters.
+ *
+ * @param {String} str
+ * @return {Object}
+ * @api private
+ */
+
+exports.params = function(str){
+ return str.split(/ *; */).reduce(function(obj, str){
+ var parts = str.split(/ *= */);
+ var key = parts.shift();
+ var val = parts.shift();
+
+ if (key && val) obj[key] = val;
+ return obj;
+ }, {});
+};
+
+/**
+ * Parse Link header fields.
+ *
+ * @param {String} str
+ * @return {Object}
+ * @api private
+ */
+
+exports.parseLinks = function(str){
+ return str.split(/ *, */).reduce(function(obj, str){
+ var parts = str.split(/ *; */);
+ var url = parts[0].slice(1, -1);
+ var rel = parts[1].split(/ *= */)[1].slice(1, -1);
+ obj[rel] = url;
+ return obj;
+ }, {});
+};
+
+/**
+ * Strip content related fields from `header`.
+ *
+ * @param {Object} header
+ * @return {Object} header
+ * @api private
+ */
+
+exports.cleanHeader = function(header, shouldStripCookie){
+ delete header['content-type'];
+ delete header['content-length'];
+ delete header['transfer-encoding'];
+ delete header['host'];
+ if (shouldStripCookie) {
+ delete header['cookie'];
+ }
+ return header;
+}; \ No newline at end of file