first-npm-package-nicule
Version:
This isi first npm package
23 lines (20 loc) • 901 B
text/typescript
import { Hypermedia, HypermediaAction } from 'first-npm-package-nicule/core';
export function prefixFieldOptions(fieldName: string, prefix: string): (hypermediaAction: HypermediaAction, hypermedia: Hypermedia) => HypermediaAction {
return (hypermediaAction: HypermediaAction) => {
const { fields: oldFields, ...rest } = hypermediaAction;
const fields = [];
const groupedFields = [];
oldFields.forEach((oldField, index) => {
if (fieldName === oldField.name && oldField.options) {
const newOptions = oldField.options.map(({ name, ...option }) => ({ ...option, name: prefix + name }));
fields.push({ ...oldField, options: newOptions });
} else {
fields.push(oldField);
}
});
return {
...rest,
fields
};
};
}