vk-bridge-level
Version:
Level abstraction for VK Bridge
41 lines (40 loc) • 1.85 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { AbstractIterator } from 'abstract-level';
export class VkBridgeIterator extends AbstractIterator {
constructor(db, options) {
super(db, options);
this.innerIterator = db.keys(options);
}
_next(callback) {
this.innerIterator.next().then((key) => __awaiter(this, void 0, void 0, function* () {
if (key !== undefined) {
const value = yield this.db.get(key);
if (value !== undefined) {
return this.db.nextTick(callback, null, key, value);
}
}
this.db.nextTick(callback, null);
}));
}
_nextv(size, options, callback) {
this.innerIterator.nextv(size, options).then((keys) => __awaiter(this, void 0, void 0, function* () {
const values = yield this.db.getMany(keys);
const results = keys.reduce((acc, key, index) => {
acc.push([key, values[index]]);
return acc;
}, []);
return this.db.nextTick(callback, null, results);
}));
}
_seek(target, options) {
this.innerIterator.seek(target, options);
}
}