src/components/meta/Property/Type.js
function(value, params, property, fields, object) {
            var that = this;

            if (!_.isSimpleObject(value)) {
                throw new Error('Value of property "' +
                    [property].concat(fields).join('.') +'" must be a simple object!');
            }

            if ('keys' in params) {
                _.each(params.keys, function(key) {
                    if (-1 === params.keys.indexOf(key)) {
                        throw new Error('Unsupported hash key "' + key +
                            '" for property "' + [property].concat(fields).join('.') + '"!');
                    }
                });
            }
            if ('element' in params) {
                _.each(value, function(key) {
                    value[key] = that.apply(value[key], params.element, property, fields.concat(key), object);
                }) ;
            }

            return value;
        }
function(value, params, property, fields, object) {
            var that = this;

            if (!_.isSimpleObject(value)) {
                throw new Error('Value of property "' +
                    [property].concat(fields).join('.') +'" must be a simple object!');
            }

            if ('keys' in params) {
                _.each(params.keys, function(key) {
                    if (-1 === params.keys.indexOf(key)) {
                        throw new Error('Unsupported hash key "' + key +
                            '" for property "' + [property].concat(fields).join('.') + '"!');
                    }
                });
            }
            if ('element' in params) {
                _.each(value, function(key) {
                    value[key] = that.apply(value[key], params.element, property, fields.concat(key), object);
                }) ;
            }

            return value;
        }
function ( value , params , property , fields , object ) { var that = this ; if ( ! _ . isSimpleObject ( value ) ) { throw new Error ( 'Value of property "' + [ property ] . concat ( fields ) . join ( '.' ) + '" must be a simple object!' ) ; } if ( 'keys' in params ) { _ . each ( params . keys , function ( key ) { if ( - 1 === params . keys . indexOf ( key ) ) { throw new Error ( 'Unsupported hash key "' + key + '" for property "' + [ property ] . concat ( fields ) . join ( '.' ) + '"!' ) ; } } ) ; } if ( 'element' in params ) { _ . each ( value , function ( key ) { value [ key ] = that . apply ( value [ key ] , params . element , property , fields . concat ( key ) , object ) ; } ) ; } return value ; }
Hash property type
Check 'simple object' type of value, applies 'keys' and 'element' parameters

@param {*}      value    Property value
@param {object} params   Property parameters
@param {string} property Property name
@param {array}  fields   Property fields
@param {object} object   Object to which property belongs

@throws {Error} if property value does not a simple object
@throws {Error} if hash has unsupported keys

@returns {object} Processed property value

@this {metaProcessor}
Hash property type Check simple object type of value applies keys and element parameters