UNPKG

unix-permissions

Version:
44 lines (28 loc) 971 B
import{excludeKeys}from"filter-obj"; import{variableMap}from"../helpers.js"; import{mapValues}from"../utils.js"; const minMaxMap=(values,nodesMap,nodesMapA)=>{ const mergedNodes={...nodesMap,...nodesMapA}; const nodesMapB=mapValues(mergedNodes,(node,nodeKey)=> findNode({values,nodesMap,nodesMapA,nodeKey}) ); const nodesMapC=excludeKeys(nodesMapB,isUndefined); return nodesMapC }; const findNode=({values,nodesMap,nodesMapA,nodeKey})=>{ const[nodeB]=values. flatMap((value)=>[ [nodesMap[nodeKey],value], [nodesMapA[nodeKey],value]] ). find(hasValue); return nodeB }; const hasValue=([{add}={},value])=>add===value; const isUndefined=(key,value)=>value===undefined; const MIN_VALUES=[false,undefined,true]; const minMap=minMaxMap.bind(undefined,MIN_VALUES); export const min=variableMap.bind(undefined,minMap); const MAX_VALUES=[true,undefined,false]; const maxMap=minMaxMap.bind(undefined,MAX_VALUES); export const max=variableMap.bind(undefined,maxMap);