diff options
Diffstat (limited to 'utils/lib/hashp.js')
-rwxr-xr-x | utils/lib/hashp.js | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/utils/lib/hashp.js b/utils/lib/hashp.js deleted file mode 100755 index a125375..0000000 --- a/utils/lib/hashp.js +++ /dev/null @@ -1,65 +0,0 @@ -var Hash = require("hash").Hash; - -// HashP : Case Preserving hash, used for headers - -var HashP = exports.HashP = {}; - -HashP.get = function(hash, key) { - var ikey = _findKey(hash, key); - if (ikey !== null) - return hash[ikey]; - // not found - return undefined; -} - -HashP.set = function(hash, key, value) { - // do case insensitive search, and delete if present - var ikey = _findKey(hash, key); - if (ikey && ikey !== key) - delete hash[ikey]; - // set it, preserving key case - hash[key] = value; -} - -HashP.unset = function(hash, key) { - // do case insensitive search, and delete if present - var ikey = _findKey(hash, key), - value; - if (ikey) { - value = hash[ikey]; - delete hash[ikey]; - } - return value; -} - -HashP.includes = function(hash, key) { - return HashP.get(hash, key) !== undefined -} - -HashP.merge = function(hash, other) { - var merged = {}; - if (hash) HashP.update(merged, hash); - if (other) HashP.update(merged, other); - return merged; -} - -HashP.update = function(hash, other) { - for (var key in other) - HashP.set(hash, key, other[key]); - return hash; -} - -HashP.forEach = Hash.forEach; -HashP.map = Hash.map; - -var _findKey = function(hash, key) { - // optimization - if (hash[key] !== undefined) - return key; - // case insensitive search - var key = key.toLowerCase(); - for (var i in hash) - if (i.toLowerCase() === key) - return i; - return null; -} |