Skip to content

zhaoworks/scopes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

— @zhaoworks/scopes

Immutable, static & dynamic flagsets for permissions.

Installation

λ bun add @zhaoworks/scopes

Usage

import { FlagScope, DynamicScope } from '@zhaoworks/scopes';

// keys = name, values = indexer
const rules = {
  'post.read': 0,
  'post.write': 1,
}

// use `FlagScope` for bitflags
const scope = new FlagScope(rules);
const user = scope.create({ 'post.read': true }); // ← type-safe!

if (scope.can('post.read', user)) {
  console.log('(Post...)');
}

// use `DynamicScope` for set-based flags
const scope = new DynamicScope(rules); // ← both scopes shares the same interface (see ScopeInterface)
const user = scope.create({ 'post.read': true });

if (scope.can('post.read', user)) {
  console.log('(Post...)');
}

License

MIT

About

static and dynamic flagsets for permissions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors