UNPKG

unix-permissions

Version:
40 lines (26 loc) 754 B
import{SPECIAL_PERMISSIONS}from"../../constants.js"; import{getNodesMap,NODES_MAP}from"../../nodes.js"; import{contractSpecial}from"./tokenize.js"; export const serialize=(nodes)=>{ const addedNodes=getAddedNodes({nodes}); const stat=Object.entries(NODES_MAP). map(([nodeKey,node])=>serializeNode({node,nodeKey,addedNodes})). join(""); const statA=contractSpecial(stat); return statA }; const getAddedNodes=({nodes})=>{ const nodesA=nodes.filter(hasAdd); return getNodesMap(nodesA) }; const hasAdd=({add})=>add===true; const serializeNode=({node:{permission},nodeKey,addedNodes})=>{ if(addedNodes[nodeKey]!==undefined){ return permission } if(SPECIAL_PERMISSIONS.has(permission)){ return"" } return NO_PERMISSION }; const NO_PERMISSION="-";