27 lines
702 B
JavaScript
27 lines
702 B
JavaScript
'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
|
|
};
|