From 5a73b9cdfb909466ccf0e0f380de2411d2098923 Mon Sep 17 00:00:00 2001 From: haad Date: Fri, 16 Feb 2024 16:58:06 +0100 Subject: [PATCH] Add amount and reverse iterator options to storage iterators --- src/storage/composed.js | 5 +++-- src/storage/level.js | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/storage/composed.js b/src/storage/composed.js index bacd70d..91b9b8d 100644 --- a/src/storage/composed.js +++ b/src/storage/composed.js @@ -76,10 +76,11 @@ const ComposedStorage = async (storage1, storage2) => { * @memberof module:Storage.Storage-Composed * @instance */ - const iterator = async function * () { + const iterator = async function * ({ amount, reverse } = {}) { const keys = [] + const iteratorOptions = { amount: amount || -1, reverse: reverse || false } for (const storage of [storage1, storage2]) { - for await (const [key, value] of storage.iterator()) { + for await (const [key, value] of storage.iterator(iteratorOptions)) { if (!keys[key]) { keys[key] = true yield [key, value] diff --git a/src/storage/level.js b/src/storage/level.js index 02fe9c6..a279785 100644 --- a/src/storage/level.js +++ b/src/storage/level.js @@ -78,8 +78,9 @@ const LevelStorage = async ({ path, valueEncoding } = {}) => { * @memberof module:Storage.Storage-Level * @instance */ - const iterator = async function * () { - for await (const [key, value] of db.iterator()) { + const iterator = async function * ({ amount, reverse } = {}) { + const iteratorOptions = { limit: amount || -1, reverse: reverse || false } + for await (const [key, value] of db.iterator(iteratorOptions)) { yield [key, value] } }