| 'use strict'; |
| |
| var _ = require('lodash'); |
| |
| /*----------------------------------------------------------------------------*/ |
| |
| /** |
| * Creates a hash object. If a `properties` object is provided, its own |
| * enumerable properties are assigned to the created object. |
| * |
| * @memberOf util |
| * @param {Object} [properties] The properties to assign to the object. |
| * @returns {Object} Returns the new hash object. |
| */ |
| function Hash(properties) { |
| return _.transform(properties, function(result, value, key) { |
| result[key] = (_.isPlainObject(value) && !(value instanceof Hash)) |
| ? new Hash(value) |
| : value; |
| }, this); |
| } |
| |
| Hash.prototype = Object.create(null); |
| |
| module.exports = { |
| 'Hash': Hash |
| }; |