const _ = require('lodash') const permissions = [] const permissionDescriptions = {} const register = (perm, description) => { if (!permissions.includes(perm)) { permissions.push(perm) permissions.sort() } if (description) { permissionDescriptions[perm] = description } } const list = async (req, res) => { res.status(200).send( _.chain(await getPermissions()) .sort() .map(key => ({ key, description: permissionDescriptions[key] })) .value() ) } const getPermissions = async () => { if (module.exports.generatePermissions) { console.log('findme') await module.exports.generatePermissions(register) } return permissions } module.exports = { register, list, getPermissions }