@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
JavaScript
;
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;