bitmask-permissions
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

bitmask-permissions

A Node.js package for managing permissions using bitwise operations.

npm version NPM Downloads NPM License

Description

bitmask-permissions is a lightweight library for managing permissions using bitmask values. It allows you to easily add, remove, and validate permissions with high performance and minimal memory usage.

Installation

Install the package using npm:

npm install bitmask-permissions

Or using yarn:

yarn add bitmask-permissions

Usage

Here's a basic example of how to use the bitmask-permissions library:

import { BitmaskPermission } from 'bitmask-permissions';
import { permissions } from './constants/permissions';

const bitmask = new BitmaskPermission(permissions);

const initialPermissions = 0;
const updatedPermissions = bitmask.assignPermission(initialPermissions, 'GET');
const hasGetPermission = bitmask.validatePermission(updatedPermissions, 'GET');

console.log(hasGetPermission); // true

API

BitmaskPermission

constructor(permissionsList: Array<Permissions>)

Creates a new instance of BitmaskPermission.

  • permissionsList: An array of permissions.

getPermissionsList(): Array<Permissions>

Returns the list of permissions.

validatePermission(permissions: number, permission: string): boolean

Validates if the permissions value contains the specified permission.

  • permissions: The permissions as a bitmask value.
  • permission: The name of the permission.

assignPermission(permissions: number, permission: string): number

Assigns a permission to the permissions value.

  • permissions: The permissions as a bitmask value.
  • permission: The name of the permission.

removePermission(permissions: number, permission: string): number

Removes a permission from the permissions value.

  • permissions: The permissions as a bitmask value.
  • permission: The name of the permission.

getPermissions(permissions: number): string[]

Gets an array of permission names from the permissions value.

  • permissions: The permissions as a bitmask value.

Examples

Assigning and Validating Permissions

import { BitmaskPermission } from 'bitmask-permissions';
import { permissions } from './constants/permissions';

const bitmask = new BitmaskPermission(permissions);

let permissionsValue = 0;
permissionsValue = bitmask.assignPermission(permissionsValue, 'GET');
permissionsValue = bitmask.assignPermission(permissionsValue, 'POST');

const hasGetPermission = bitmask.validatePermission(permissionsValue, 'GET');
console.log(hasGetPermission); // true

const hasPutPermission = bitmask.validatePermission(permissionsValue, 'PUT');
console.log(hasPutPermission); // false

Removing Permissions

import { BitmaskPermission } from 'bitmask-permissions';
import { permissions } from './constants/permissions';

const bitmask = new BitmaskPermission(permissions);

let permissionsValue = 1 | 2 | 4; // Assume 1 = GET, 2 = POST, 4 = PUT
permissionsValue = bitmask.removePermission(permissionsValue, 'GET');

const hasGetPermission = bitmask.validatePermission(permissionsValue, 'GET');
console.log(hasGetPermission); // false

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue on GitHub.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

Author: Felix Manuel Martinez Sosa
GitHub: Fmanuel809

Package Sidebar

Install

npm i bitmask-permissions

Weekly Downloads

2

Version

1.0.1

License

MIT

Unpacked Size

32.2 kB

Total Files

26

Last publish

Collaborators

  • fmanuel809