https://github.com/alii/permer
🔑 A basic abstraction for handling flags using bitwise
https://github.com/alii/permer
bitwise permissions
Last synced: 11 months ago
JSON representation
🔑 A basic abstraction for handling flags using bitwise
- Host: GitHub
- URL: https://github.com/alii/permer
- Owner: alii
- License: mit
- Created: 2020-11-19T15:30:19.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-23T16:55:59.000Z (about 4 years ago)
- Last Synced: 2025-06-24T07:42:58.471Z (about 1 year ago)
- Topics: bitwise, permissions
- Language: TypeScript
- Homepage: https://npmjs.com/package/permer
- Size: 880 KB
- Stars: 52
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Permer
### A basic abstraction for handling flags and permissions using bitwise
#### Install
`yarn add permer` or, with npm `npm i --save permer`
#### Example
```ts
import {Permer} from 'permer';
const permer = new Permer(['read', 'write', 'admin', 'owner', 'staff']);
const user = {
permissions: permer.calculate(['read', 'write', 'admin']),
username: 'alii',
};
// Get individual permissions
const isAdmin = permer.test(user.permissions, 'admin');
const isOwner = permer.test(user.permissions, 'owner');
const isStaff = permer.test(user.permissions, 'staff');
const canRead = permer.test(user.permissions, 'read');
const canWrite = permer.test(user.permissions, 'write');
console.log(`${user.username}'s permissions:`, {
isAdmin,
isOwner,
isStaff,
canRead,
canWrite,
});
// Get an array of all permissions
const availablePermissions = permer.list(user.permissions).join(', ');
console.log(`${user.username}'s permission list:`, availablePermissions);
```