import { Hypermedia, HypermediaAction } from 'first-npm-package-nicule/core';

export function hideField(fieldName: string): (hypermediaAction: HypermediaAction, hypermedia: Hypermedia) => HypermediaAction {
    return ({ fields, ...rest }: HypermediaAction) => {
        fields = fields.map(({ name, type, ...restField }) => {
            if (name === fieldName) {
                type = 'hidden';
            }

            return {
                name, type,
                ...restField
            };
        });

        return { ...rest, fields };
    };
}
