Files
boc/vims-backend/node_modules/ioredis/built/ScanStream.js
T
Bernt 6de2455917 v1.2.0: Add Global Markets footer, translated to 9 languages
- Added GLOBAL_MARKETS_TITLE to all translation files
- Updated footer with 12 markets (4 active + 8 upcoming)
- Translated market section to: zh-cn, zh-tw, ja, ko, th, vi, id, ms, hi
- Built and deployed to production
- CloudFront invalidation: I3RTMXVFDJXWLG3SYX208OP1CC
2026-07-08 19:56:03 +00:00

52 lines
1.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
/**
* Convenient class to convert the process of scanning keys to a readable stream.
*/
class ScanStream extends stream_1.Readable {
constructor(opt) {
super(opt);
this.opt = opt;
this._redisCursor = "0";
this._redisDrained = false;
}
_read() {
if (this._redisDrained) {
this.push(null);
return;
}
const args = [this._redisCursor];
if (this.opt.key) {
args.unshift(this.opt.key);
}
if (this.opt.match) {
args.push("MATCH", this.opt.match);
}
if (this.opt.type) {
args.push("TYPE", this.opt.type);
}
if (this.opt.count) {
args.push("COUNT", String(this.opt.count));
}
if (this.opt.noValues) {
args.push("NOVALUES");
}
this.opt.redis[this.opt.command](args, (err, res) => {
if (err) {
this.emit("error", err);
return;
}
this._redisCursor = res[0] instanceof Buffer ? res[0].toString() : res[0];
if (this._redisCursor === "0") {
this._redisDrained = true;
}
this.push(res[1]);
});
}
close() {
this._redisDrained = true;
}
}
exports.default = ScanStream;