first-npm-package-nicule
Version:
This isi first npm package
17 lines (14 loc) • 713 B
text/typescript
import { Hypermedia, HypermediaAction } from 'first-npm-package-nicule/core';
export function moveFieldAfter(fieldName, afterFieldName): (hypermediaAction: HypermediaAction, hypermedia: Hypermedia) => HypermediaAction {
return (hypermediaAction: HypermediaAction) => {
const { fields: oldFields, ...rest } = hypermediaAction;
const field = oldFields.find(({ name }) => name === fieldName);
const fields = oldFields.filter(({ name }) => name !== fieldName);
const afterIndex = fields.findIndex(({ name }) => name === afterFieldName) + 1;
fields.splice(afterIndex, 0, field);
return {
...rest,
fields
};
};
}