role-calc
library to work with roles, contains calculation of times for the session, validation of required roles
This library is ideal for working with redis-jwt
Installation
Npm
npm install role-calc --save
Yarn
yarn add role-calc
Usage
has
Evaluate if any of the required roles are met or all
; // Roles requiredlet required = 'Developer' 'Specialist' 'Technician' 'Director' 'Manager' 'Designer' 'Analyst' 'Administrator'; // Roles userlet candidates = 'Developer' 'Administrator' 'Designer'; // if it contains one; // -> true; // -> true; // -> false // must meet everyone '*'; // -> false; // -> true; // -> true
time
Gets the times of a list from an array of roles
; // Roles with timelet roles = role: 'Developer' ttl: '15 minutes' role: 'Specialist' ttl: '2 hours' role: 'Manager' ttl: '3 days' role: 'Administrator' ttl: '1 years' role: 'Director' ttl: '90 minutes' role: 'Designer' ttl: '55 hours' role: 'other' ; // Roles userlet candidates = 'Developer' 'Administrator' 'Designer'; ;/*->[ { role: 'Developer', ttl: '15 minutes' }, { role: 'Administrator', ttl: '1 years' }, { role: 'Designer', ttl: '55 hours' }]*/
calc
Calculate time of multiple roles assigned to a user
; // Roles with timelet roles = role: 'Developer' ttl: '15 minutes' role: 'Specialist' ttl: '2 hours' role: 'Manager' ttl: '3 days' role: 'Administrator' ttl: '1 years' role: 'Director' ttl: '90 minutes' role: 'Designer' ttl: '55 hours' role: 'other' ; /*time(roles, option, format) - roles: array- option: max, min, sum, average- format(optional): milliseconds, seconds, minutes, hours, days, weeks, months, years*/ ; // -> 533805 minutes; // -> 8766 hours; // -> 15 minutes; // -> 61.782986111111114 days
Development
Start
npm start
Compile
npm run compile
Test
npm test
License
MIT © Leonardo Rico