unix-permissions
Version:
Swiss Army knife for Unix permissions
24 lines (17 loc) • 592 B
JavaScript
export const mapValues=(object,mapper)=>{
const pairs=Object.entries(object).map(([key,value])=>({
[key]:mapper(value,key,object)
}));
return Object.assign({},...pairs)
};
export const groupBy=(array,key)=>
array.reduce(groupByReducer.bind(undefined,key),{});
const groupByReducer=(key,groups,obj)=>{
const groupName=obj[key];
const{[groupName]:currentGroup=[]}=groups;
const newGroup=[...currentGroup,obj];
return{...groups,[groupName]:newGroup}
};
export const hasDuplicate=(array)=>array.some(isDuplicate);
const isDuplicate=(elem,index,elems)=>
elems.slice(index+1).includes(elem);