// an object as output from an array const fields = [ { type: 'text', title: 'Title', name: 'title', constraints: { required: { message: '^Title is required', allowEmpty: false } }, }, { type: 'text', title: 'Slug', name: 'slug', constraints: { required: { message: '^Slug is required', allowEmpty: false }, format: { pattern: '[a-z0-9_-]+', flags: 'i', message: '^Can only be a valid slug' } }, }, // etc. ]; const validationRules = fields.reduce( (rules, field) => Object.assign(rules, { [field.name]: field.constraints }), {} );