unix-permissions
Version:
Swiss Army knife for Unix permissions
29 lines (17 loc) • 542 B
JavaScript
import{CATEGORIES}from"../../constants.js";
export const joinCategories=(node,index,nodes)=>{
const sameNodes=nodes.filter((nodeA)=>canJoinNodes(node,nodeA));
if(sameNodes.length===1){
return node
}
const categories=sameNodes.map((nodeA)=>nodeA.category);
if(categories[0]!==node.category){
return[]
}
if(categories.length===CATEGORIES.length){
return{...node,category:"a"}
}
return{...node,category:categories.join("")}
};
const canJoinNodes=(nodeA,nodeB)=>
nodeA.operator===nodeB.operator&&nodeA.permissions===nodeB.permissions;