Skip to content

Commit 715169e

Browse files
committed
WIP
1 parent 392a77d commit 715169e

File tree

4 files changed

+28
-24
lines changed

4 files changed

+28
-24
lines changed

src/DB.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -209,25 +209,25 @@ class DB {
209209
}
210210

211211
public iterator(
212-
dbLevel: DBLevel,
213212
options: AbstractIteratorOptions & { key: false; value: false },
213+
dbLevel: DBLevel,
214214
): DBIterator<undefined, undefined>;
215215
public iterator(
216-
dbLevel: DBLevel,
217216
options: AbstractIteratorOptions & { key: false },
217+
dbLevel: DBLevel,
218218
): DBIterator<undefined, Buffer>;
219219
public iterator(
220-
dbLevel: DBLevel,
221220
options: AbstractIteratorOptions & { value: false },
221+
dbLevel: DBLevel,
222222
): DBIterator<Buffer, undefined>;
223223
public iterator(
224-
dbLevel?: DBLevel,
225224
options?: AbstractIteratorOptions,
225+
dbLevel?: DBLevel,
226226
): DBIterator<Buffer, Buffer>;
227227
@ready(new errors.ErrorDBNotRunning())
228228
public iterator(
229-
dbLevel: DBLevel = this._dataDb,
230229
options?: AbstractIteratorOptions,
230+
dbLevel: DBLevel = this._dataDb,
231231
): DBIterator {
232232
const iterator = dbLevel.iterator(options);
233233
const next = iterator.next.bind(iterator);

src/DBTransaction.ts

+11-7
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,13 @@ class DBTransaction {
102102
}
103103

104104
@ready(new dbErrors.ErrorDBTransactionDestroyed())
105-
public async dump(): Promise<POJO> {
105+
public async dump(domain: DBDomain = []): Promise<POJO> {
106+
let transactionLevel = this.transactionDb;
107+
for (const d of domain) {
108+
transactionLevel = await this.db.level(d, transactionLevel);
109+
}
106110
const records = {};
107-
for await (const o of this.transactionDb.createReadStream()) {
111+
for await (const o of transactionLevel.createReadStream()) {
108112
const key = (o as any).key.toString();
109113
const data = (o as any).value as Buffer;
110114
const value = await this.db.deserializeDecrypt(data, false);
@@ -114,26 +118,26 @@ class DBTransaction {
114118
}
115119

116120
@ready(new dbErrors.ErrorDBTransactionDestroyed())
117-
public async count(domain: DBDomain): Promise<number> {
121+
public async count(domain: DBDomain = []): Promise<number> {
118122
let count = 0;
119-
for await (const _ of await this.iterator(domain)) {
123+
for await (const _ of await this.iterator(undefined, domain)) {
120124
count++;
121125
}
122126
return count;
123127
}
124128

125129
public async iterator(
126-
domain: DBDomain,
127130
options: AbstractIteratorOptions & { values: false },
131+
domain?: DBDomain,
128132
): Promise<DBIterator<Buffer, undefined>>;
129133
public async iterator(
130-
domain: DBDomain,
131134
options?: AbstractIteratorOptions,
135+
domain?: DBDomain,
132136
): Promise<DBIterator<Buffer, Buffer>>;
133137
@ready(new dbErrors.ErrorDBTransactionDestroyed())
134138
public async iterator(
135-
domain: DBDomain,
136139
options?: AbstractIteratorOptions,
140+
domain: DBDomain = [],
137141
): Promise<DBIterator> {
138142
let dataLevel = this.db.dataDb;
139143
for (const d of domain) {

tests/DB.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ describe(DB.name, () => {
426426
]);
427427
results = [];
428428
const level1 = await db.level('level1');
429-
for await (const [k, v] of db.iterator(level1)) {
429+
for await (const [k, v] of db.iterator(undefined, level1)) {
430430
results.push([k.toString(), JSON.parse(v.toString())]);
431431
}
432432
expect(results).toStrictEqual([

tests/DBTransaction.test.ts

+11-11
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ describe(DBTransaction.name, () => {
134134
let rows: Array<[string, string]>;
135135
await utils.withF([db.transaction()], async ([tran1]) => {
136136
rows = [];
137-
for await (const [k, v] of await tran1.iterator([])) {
137+
for await (const [k, v] of await tran1.iterator()) {
138138
rows.push([k.toString(), JSON.parse(v.toString())]);
139139
}
140140
expect(rows).toStrictEqual([
@@ -146,7 +146,7 @@ describe(DBTransaction.name, () => {
146146
await tran2.del([], '1');
147147
await tran2.put([], '4', '4');
148148
rows = [];
149-
for await (const [k, v] of await tran1.iterator([])) {
149+
for await (const [k, v] of await tran1.iterator()) {
150150
rows.push([k.toString(), JSON.parse(v.toString())]);
151151
}
152152
expect(rows).toStrictEqual([
@@ -156,7 +156,7 @@ describe(DBTransaction.name, () => {
156156
]);
157157
});
158158
rows = [];
159-
for await (const [k, v] of await tran1.iterator([])) {
159+
for await (const [k, v] of await tran1.iterator()) {
160160
rows.push([k.toString(), JSON.parse(v.toString())]);
161161
}
162162
expect(rows).toStrictEqual([
@@ -207,7 +207,7 @@ describe(DBTransaction.name, () => {
207207
await tran.put([], 'f', '6');
208208
await tran.put([], 'j', '10');
209209
await tran.put([], 'k', '11');
210-
const iterator = await tran.iterator([]);
210+
const iterator = await tran.iterator();
211211
for await (const [k, v] of iterator) {
212212
results.push([k.toString(), JSON.parse(v.toString())]);
213213
}
@@ -254,7 +254,7 @@ describe(DBTransaction.name, () => {
254254
await tran.put([], 'f', '6');
255255
await tran.put([], 'j', '10');
256256
await tran.put([], 'k', '11');
257-
const iterator = await tran.iterator([], { reverse: true });
257+
const iterator = await tran.iterator({ reverse: true });
258258
for await (const [k, v] of iterator) {
259259
results.push([k.toString(), JSON.parse(v.toString())]);
260260
}
@@ -300,7 +300,7 @@ describe(DBTransaction.name, () => {
300300
await tran.put([], 'e', '5');
301301
await tran.put([], 'f', '6');
302302
await tran.put([], 'j', '10');
303-
const iterator = await tran.iterator([]);
303+
const iterator = await tran.iterator();
304304
for await (const [k, v] of iterator) {
305305
results.push([k.toString(), JSON.parse(v.toString())]);
306306
}
@@ -343,7 +343,7 @@ describe(DBTransaction.name, () => {
343343
await tran.put([], 'e', '5');
344344
await tran.put([], 'f', '6');
345345
await tran.put([], 'j', '10');
346-
const iterator = await tran.iterator([], { reverse: true });
346+
const iterator = await tran.iterator({ reverse: true });
347347
for await (const [k, v] of iterator) {
348348
results.push([k.toString(), JSON.parse(v.toString())]);
349349
}
@@ -385,7 +385,7 @@ describe(DBTransaction.name, () => {
385385
await tran.put([], 'c', '3');
386386
await tran.put([], 'e', '5');
387387
await tran.put([], 'f', '6');
388-
const iterator = await tran.iterator([]);
388+
const iterator = await tran.iterator();
389389
for await (const [k, v] of iterator) {
390390
results.push([k.toString(), JSON.parse(v.toString())]);
391391
}
@@ -424,7 +424,7 @@ describe(DBTransaction.name, () => {
424424
await tran.put([], 'c', '3');
425425
await tran.put([], 'e', '5');
426426
await tran.put([], 'f', '6');
427-
const iterator = await tran.iterator([], { reverse: true });
427+
const iterator = await tran.iterator({ reverse: true });
428428
for await (const [k, v] of iterator) {
429429
results.push([k.toString(), JSON.parse(v.toString())]);
430430
}
@@ -471,7 +471,7 @@ describe(DBTransaction.name, () => {
471471
await tran.put([], 'f', '6');
472472
await tran.put([], 'j', '10');
473473
await tran.put([], 'k', '11');
474-
const iterator = await tran.iterator([], { values: false });
474+
const iterator = await tran.iterator({ values: false });
475475
for await (const [k, v] of iterator) {
476476
results.push([k.toString(), v]);
477477
}
@@ -517,7 +517,7 @@ describe(DBTransaction.name, () => {
517517
await tran.put([], 'f', '6');
518518
await tran.put([], 'j', '10');
519519
await tran.put([], 'k', '11');
520-
const iterator = await tran.iterator([]);
520+
const iterator = await tran.iterator();
521521
iterator.seek('a');
522522
expect(await iterator.next()).toStrictEqual([
523523
Buffer.from('a'),

0 commit comments

Comments
 (0)