mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-02 21:16:09 +00:00
refactor: permissions (which fixes bug on last commit)
This commit is contained in:
parent
128649dbb8
commit
412ba2b28d
@ -13,7 +13,8 @@ export type PermissionResolvable =
|
|||||||
| bigint
|
| bigint
|
||||||
| PermissionString
|
| PermissionString
|
||||||
| PermissionString[]
|
| PermissionString[]
|
||||||
| BitwisePermissionFlags;
|
| BitwisePermissionFlags
|
||||||
|
| BitwisePermissionFlags[];
|
||||||
|
|
||||||
export class Permissions implements BitField<bigint> {
|
export class Permissions implements BitField<bigint> {
|
||||||
/** Stores a reference to BitwisePermissionFlags */
|
/** Stores a reference to BitwisePermissionFlags */
|
||||||
@ -71,7 +72,7 @@ export class Permissions implements BitField<bigint> {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (this.bitfield & bbit) !== bbit;
|
return (this.bitfield & bbit) === bbit;
|
||||||
}
|
}
|
||||||
|
|
||||||
any(bit: PermissionResolvable): boolean {
|
any(bit: PermissionResolvable): boolean {
|
||||||
@ -81,7 +82,7 @@ export class Permissions implements BitField<bigint> {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (this.bitfield & bbit) === 0n;
|
return (this.bitfield & bbit) !== Permissions.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
equals(bit: PermissionResolvable): boolean {
|
equals(bit: PermissionResolvable): boolean {
|
||||||
@ -113,13 +114,17 @@ export class Permissions implements BitField<bigint> {
|
|||||||
return Permissions.resolve(
|
return Permissions.resolve(
|
||||||
bit
|
bit
|
||||||
.map(p => BigInt(Permissions.Flags[p]))
|
.map(p => BigInt(Permissions.Flags[p]))
|
||||||
.reduce((acc, cur) => acc | cur, 0n)
|
.reduce((acc, cur) => acc | cur, Permissions.None)
|
||||||
);
|
);
|
||||||
default:
|
default:
|
||||||
throw new TypeError(`Cannot resolve permission: ${bit}`);
|
throw new TypeError(`Cannot resolve permission: ${bit}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static sum(permissions: Array<bigint | number>) {
|
||||||
|
return permissions.reduce((y, x) => BigInt(y) | BigInt(x), Permissions.None);
|
||||||
|
}
|
||||||
|
|
||||||
static reduce(permissions: PermissionResolvable[]): Permissions {
|
static reduce(permissions: PermissionResolvable[]): Permissions {
|
||||||
const solved = permissions.map(Permissions.resolve);
|
const solved = permissions.map(Permissions.resolve);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user