UNPKG

@gouvfr-anct/mednum

Version:

✨ Permet de transformer une source de données vers le schéma des lieux de mediation numerique

13 lines (12 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findGroupIdsToDelete = exports.mergeGroups = void 0; const onlyDefined = (canBeNull) => canBeNull != null; const mergeGroupIfLieuExist = (groupId, mergedIds, lieu) => (lieu == null ? undefined : { groupId, mergedIds, lieu }); const toMergeGroup = (merged) => ([groupId, mergedIds]) => mergeGroupIfLieuExist(groupId, mergedIds, merged.get(groupId)); const mergeGroups = (groups, merged) => Array.from(groups.mergeGroupsMap.entries()).map(toMergeGroup(merged)).filter(onlyDefined); exports.mergeGroups = mergeGroups; const hasMoreThanOneRemainingId = (mergedIds, groups) => mergedIds.length - mergedIds.filter((id) => groups.itemGroupMap.has(id)).length > 1; const toIdsToDelete = (groups) => (groupIdsToRemove, { mergedIds, groupId }) => hasMoreThanOneRemainingId(mergedIds, groups) ? groupIdsToRemove : [...groupIdsToRemove, groupId]; const findGroupIdsToDelete = (mergedGroups) => (groups) => mergedGroups.reduce(toIdsToDelete(groups), []); exports.findGroupIdsToDelete = findGroupIdsToDelete;