UNPKG

@silverwind/ioredis-mock

Version:

This library emulates ioredis by performing all operations in-memory.

19 lines (16 loc) 613 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getbit = getbit; const MAX_OFFSET = 2 ** 32 - 1; function getbit(key, offset) { if (offset > MAX_OFFSET) throw new Error('ERR bit offset is not an integer or out of range'); if (!this.data.has(key)) return 0; const current = this.data.get(key); if (offset > current.length * 8) return 0; const byteOffset = parseInt(offset / 8, 10); const shift = 7 - offset % 8; // redis store bit in reverse order (left to right) // eslint-disable-next-line no-bitwise return current.charCodeAt(byteOffset) >> shift & 1; }