🐛 fix Permission BitField
This commit is contained in:
		
							parent
							
								
									0ab57bb6cd
								
							
						
					
					
						commit
						c058020a7c
					
				
							
								
								
									
										24
									
								
								dist/util/BitField.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								dist/util/BitField.js
									
									
									
									
										vendored
									
									
								
							| @ -7,19 +7,19 @@ exports.BitField = void 0; | ||||
| class BitField { | ||||
|     constructor(bits = 0) { | ||||
|         this.bitfield = BigInt(0); | ||||
|         this.bitfield = BitField.resolve(bits); | ||||
|         this.bitfield = BitField.resolve.call(this, bits); | ||||
|     } | ||||
|     /** | ||||
|      * Checks whether the bitfield has a bit, or any of multiple bits. | ||||
|      */ | ||||
|     any(bit) { | ||||
|         return (this.bitfield & BitField.resolve(bit)) !== 0n; | ||||
|         return (this.bitfield & BitField.resolve.call(this, bit)) !== 0n; | ||||
|     } | ||||
|     /** | ||||
|      * Checks if this bitfield equals another | ||||
|      */ | ||||
|     equals(bit) { | ||||
|         return this.bitfield === BitField.resolve(bit); | ||||
|         return this.bitfield === BitField.resolve.call(this, bit); | ||||
|     } | ||||
|     /** | ||||
|      * Checks whether the bitfield has a bit, or multiple bits. | ||||
| @ -27,7 +27,7 @@ class BitField { | ||||
|     has(bit) { | ||||
|         if (Array.isArray(bit)) | ||||
|             return bit.every((p) => this.has(p)); | ||||
|         const BIT = BitField.resolve(bit); | ||||
|         const BIT = BitField.resolve.call(this, bit); | ||||
|         return (this.bitfield & BIT) === BIT; | ||||
|     } | ||||
|     /** | ||||
| @ -52,7 +52,7 @@ class BitField { | ||||
|     add(...bits) { | ||||
|         let total = 0n; | ||||
|         for (const bit of bits) { | ||||
|             total |= BitField.resolve(bit); | ||||
|             total |= BitField.resolve.call(this, bit); | ||||
|         } | ||||
|         if (Object.isFrozen(this)) | ||||
|             return new BitField(this.bitfield | total); | ||||
| @ -66,7 +66,7 @@ class BitField { | ||||
|     remove(...bits) { | ||||
|         let total = 0n; | ||||
|         for (const bit of bits) { | ||||
|             total |= BitField.resolve(bit); | ||||
|             total |= BitField.resolve.call(this, bit); | ||||
|         } | ||||
|         if (Object.isFrozen(this)) | ||||
|             return new BitField(this.bitfield & ~total); | ||||
| @ -112,16 +112,22 @@ class BitField { | ||||
|      * @returns {number} | ||||
|      */ | ||||
|     static resolve(bit = 0n) { | ||||
|         // @ts-ignore
 | ||||
|         const FLAGS = this.FLAGS || this.constructor?.FLAGS; | ||||
|         if ((typeof bit === "number" || typeof bit === "bigint") && bit >= 0n) | ||||
|             return BigInt(bit); | ||||
|         if (bit instanceof BitField) | ||||
|             return bit.bitfield; | ||||
|         if (Array.isArray(bit)) | ||||
|             return bit.map((p) => this.resolve(p)).reduce((prev, p) => BigInt(prev) | BigInt(p), 0n); | ||||
|         if (typeof bit === "string" && typeof this.FLAGS[bit] !== "undefined") | ||||
|         if (Array.isArray(bit)) { | ||||
|             // @ts-ignore
 | ||||
|             const resolve = this.constructor?.resolve || this.resolve; | ||||
|             return bit.map((p) => resolve(p)).reduce((prev, p) => BigInt(prev) | BigInt(p), 0n); | ||||
|         } | ||||
|         if (typeof bit === "string" && typeof FLAGS[bit] !== "undefined") | ||||
|             return this.FLAGS[bit]; | ||||
|         throw new RangeError("BITFIELD_INVALID: " + bit); | ||||
|     } | ||||
| } | ||||
| exports.BitField = BitField; | ||||
| BitField.FLAGS = {}; | ||||
| //# sourceMappingURL=BitField.js.map
 | ||||
							
								
								
									
										2
									
								
								dist/util/BitField.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/util/BitField.js.map
									
									
									
									
										vendored
									
									
								
							| @ -1 +1 @@ | ||||
| {"version":3,"file":"BitField.js","sourceRoot":"","sources":["../../src/util/BitField.ts"],"names":[],"mappings":"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"} | ||||
| {"version":3,"file":"BitField.js","sourceRoot":"","sources":["../../src/util/BitField.ts"],"names":[],"mappings":"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"} | ||||
| @ -11,24 +11,24 @@ export type BitFieldResolvable = number | BigInt | BitField | string | BitFieldR | ||||
| export class BitField { | ||||
| 	public bitfield: bigint = BigInt(0); | ||||
| 
 | ||||
| 	public static FLAGS: Record<string, bigint>; | ||||
| 	public static FLAGS: Record<string, bigint> = {}; | ||||
| 
 | ||||
| 	constructor(bits: BitFieldResolvable = 0) { | ||||
| 		this.bitfield = BitField.resolve(bits); | ||||
| 		this.bitfield = BitField.resolve.call(this, bits); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks whether the bitfield has a bit, or any of multiple bits. | ||||
| 	 */ | ||||
| 	any(bit: BitFieldResolvable): boolean { | ||||
| 		return (this.bitfield & BitField.resolve(bit)) !== 0n; | ||||
| 		return (this.bitfield & BitField.resolve.call(this, bit)) !== 0n; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks if this bitfield equals another | ||||
| 	 */ | ||||
| 	equals(bit: BitFieldResolvable): boolean { | ||||
| 		return this.bitfield === BitField.resolve(bit); | ||||
| 		return this.bitfield === BitField.resolve.call(this, bit); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| @ -36,7 +36,7 @@ export class BitField { | ||||
| 	 */ | ||||
| 	has(bit: BitFieldResolvable): boolean { | ||||
| 		if (Array.isArray(bit)) return bit.every((p) => this.has(p)); | ||||
| 		const BIT = BitField.resolve(bit); | ||||
| 		const BIT = BitField.resolve.call(this, bit); | ||||
| 		return (this.bitfield & BIT) === BIT; | ||||
| 	} | ||||
| 
 | ||||
| @ -63,7 +63,7 @@ export class BitField { | ||||
| 	add(...bits: BitFieldResolvable[]): BitField { | ||||
| 		let total = 0n; | ||||
| 		for (const bit of bits) { | ||||
| 			total |= BitField.resolve(bit); | ||||
| 			total |= BitField.resolve.call(this, bit); | ||||
| 		} | ||||
| 		if (Object.isFrozen(this)) return new BitField(this.bitfield | total); | ||||
| 		this.bitfield |= total; | ||||
| @ -77,7 +77,7 @@ export class BitField { | ||||
| 	remove(...bits: BitFieldResolvable[]) { | ||||
| 		let total = 0n; | ||||
| 		for (const bit of bits) { | ||||
| 			total |= BitField.resolve(bit); | ||||
| 			total |= BitField.resolve.call(this, bit); | ||||
| 		} | ||||
| 		if (Object.isFrozen(this)) return new BitField(this.bitfield & ~total); | ||||
| 		this.bitfield &= ~total; | ||||
| @ -128,11 +128,16 @@ export class BitField { | ||||
| 	 * @returns {number} | ||||
| 	 */ | ||||
| 	static resolve(bit: BitFieldResolvable = 0n): bigint { | ||||
| 		// @ts-ignore
 | ||||
| 		const FLAGS = this.FLAGS || this.constructor?.FLAGS; | ||||
| 		if ((typeof bit === "number" || typeof bit === "bigint") && bit >= 0n) return BigInt(bit); | ||||
| 		if (bit instanceof BitField) return bit.bitfield; | ||||
| 		if (Array.isArray(bit)) | ||||
| 			return bit.map((p) => this.resolve(p)).reduce((prev, p) => BigInt(prev) | BigInt(p), 0n); | ||||
| 		if (typeof bit === "string" && typeof this.FLAGS[bit] !== "undefined") return this.FLAGS[bit]; | ||||
| 		if (Array.isArray(bit)) { | ||||
| 			// @ts-ignore
 | ||||
| 			const resolve = this.constructor?.resolve || this.resolve; | ||||
| 			return bit.map((p) => resolve(p)).reduce((prev, p) => BigInt(prev) | BigInt(p), 0n); | ||||
| 		} | ||||
| 		if (typeof bit === "string" && typeof FLAGS[bit] !== "undefined") return this.FLAGS[bit]; | ||||
| 		throw new RangeError("BITFIELD_INVALID: " + bit); | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Flam3rboy
						Flam3rboy