UNPKG

first-npm-package-nicule

Version:

This isi first npm package

25 lines (20 loc) 965 B
import { Hypermedia, HypermediaAction } from 'first-npm-package-nicule/core'; type OptionSelectFunction = (option: { name: string; value: any; isDisabled: boolean; }, hypermedia: Hypermedia) => boolean; export function selectOption(fieldName: string, optionSelectFunction: OptionSelectFunction): (hypermediaAction: HypermediaAction, hypermedia: Hypermedia) => HypermediaAction { return ({ fields, ...rest }: HypermediaAction, hypermedia: Hypermedia) => { fields = fields.map(({ value, options, ...restField }) => { if (options) { options.forEach(fieldOption => { if (optionSelectFunction(fieldOption, hypermedia)) { value = fieldOption.value; } }); } return { value, options, ...restField }; }); return { ...rest, fields }; }; }