Files
discordeno/packages/utils/src/permissions.ts
T
Fleny 27c261fee2 formatter: Use semicolons (#4686)
I prefer semicolors, they also help avoiding certain pitfalls in JavaScript/TypeScript, such as the following code sample:
```js
const xyz = "test"
(something.else as string) = "another"
```
This results in a TypeError: "test" is not a function, this is because js thinks we are trying to call the string "test" as a function.
To fix this it requires a `;` somewhere before the `(`, such as `;(something ... ` which in my opinion is ugly and less clean overall.
2026-01-17 21:54:15 +01:00

23 lines
982 B
TypeScript

import type { PermissionStrings } from '@discordeno/types';
import { BitwisePermissionFlags } from '@discordeno/types';
/** This function converts a bitwise string to permission strings */
export function calculatePermissions(permissionBits: bigint): PermissionStrings[] {
return Object.keys(BitwisePermissionFlags).filter((permission) => {
// Since Object.keys() not only returns the permission names but also the bit values we need to return false if it is a Number
if (Number(permission)) return false;
// Check if permissionBits has this permission
return permissionBits & BitwisePermissionFlags[permission as PermissionStrings];
}) as PermissionStrings[];
}
/** This function converts an array of permissions into the bitwise string. */
export function calculateBits(permissions: PermissionStrings[]): string {
return permissions
.reduce((bits, perm) => {
bits |= BitwisePermissionFlags[perm];
return bits;
}, 0n)
.toString();
}