Version 1
[yaffs-website] / node_modules / parse-headers / parse-headers.js
diff --git a/node_modules/parse-headers/parse-headers.js b/node_modules/parse-headers/parse-headers.js
new file mode 100644 (file)
index 0000000..acc08e9
--- /dev/null
@@ -0,0 +1,31 @@
+var trim = require('trim')
+  , forEach = require('for-each')
+  , isArray = function(arg) {
+      return Object.prototype.toString.call(arg) === '[object Array]';
+    }
+
+module.exports = function (headers) {
+  if (!headers)
+    return {}
+
+  var result = {}
+
+  forEach(
+      trim(headers).split('\n')
+    , function (row) {
+        var index = row.indexOf(':')
+          , key = trim(row.slice(0, index)).toLowerCase()
+          , value = trim(row.slice(index + 1))
+
+        if (typeof(result[key]) === 'undefined') {
+          result[key] = value
+        } else if (isArray(result[key])) {
+          result[key].push(value)
+        } else {
+          result[key] = [ result[key], value ]
+        }
+      }
+  )
+
+  return result
+}
\ No newline at end of file