UNPKG

seyfert

Version:

The most advanced framework for discord bots

44 lines (43 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PermissionsBitField = void 0; const types_1 = require("../../types"); const BitField_1 = require("./BitField"); class PermissionsBitField extends BitField_1.BitField { Flags = types_1.PermissionFlagsBits; static All = Object.values(types_1.PermissionFlagsBits).reduce((acc, value) => acc | value, 0n); constructor(bitfields) { super(); if (bitfields) this.bit = this.resolve(bitfields); } has(bits) { return super.has(bits) || super.has(['Administrator']); } strictHas(bits) { return super.has(bits); } resolve(bits) { return (Array.isArray(bits) ? bits : [bits]).reduce((acc, cur) => acc | PermissionsBitField.resolve([cur]), BitField_1.BitField.None); } static resolve(bits) { let bitsResult = 0n; for (const bit of Array.isArray(bits) ? bits : [bits]) { switch (typeof bit) { case 'string': bitsResult |= PermissionsBitField.resolve(types_1.PermissionFlagsBits[bit]); break; case 'bigint': bitsResult |= bit; break; default: throw new TypeError(`Cannot resolve permission: ${typeof bit === 'symbol' ? String(bit) : bit}`); } } return bitsResult; } toString() { return this.bit.toString(); } } exports.PermissionsBitField = PermissionsBitField;