UNPKG

@exromany/lido-csm-sdk

Version:

[![GitHub license](https://img.shields.io/github/license/lidofinance/lido-csm-sdk?color=limegreen)](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [![Version npm](https://img.shields.io/npm/v/@lidofinance/lido-csm-sdk?label=version)](h

26 lines 1.1 kB
import { ROLES } from '../common/index.js'; const allRoles = [ROLES.REWARDS, ROLES.MANAGER]; export const appendNodeOperator = (list, { id, roles }) => { return mergeRoles(list, id, { [ROLES.MANAGER]: roles.includes(ROLES.MANAGER), [ROLES.REWARDS]: roles.includes(ROLES.REWARDS), }); }; export const mergeRoles = (_list, id, patch) => { const list = Array.from(_list); const index = list.findIndex((item) => item.id === id); const item = applyPatch(list[index] ?? { id, roles: [] }, patch); list.splice(index >= 0 ? index : list.length, 1, item); return list; }; export const isNotEmptyRoles = (item) => item.roles.length > 0; export const applyPatch = (item, patch) => ({ ...item, roles: modifyRoles(item.roles, patch), }); export const modifyRoles = (roles, patch) => packRoles({ [ROLES.MANAGER]: patch[ROLES.MANAGER] ?? roles.includes(ROLES.MANAGER), [ROLES.REWARDS]: patch[ROLES.REWARDS] ?? roles.includes(ROLES.REWARDS), }); export const packRoles = (roles) => allRoles.filter((role) => roles[role]); //# sourceMappingURL=merge.js.map