@fireproof/core 0.20.0-dev-preview-05 → 0.20.0-dev-preview-06
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/index.cjs +25 -25
- package/index.cjs.map +1 -1
- package/index.d.cts +17 -17
- package/index.d.ts +17 -17
- package/index.js +25 -25
- package/index.js.map +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/package.json +3 -3
- package/react/index.cjs +22 -22
- package/react/index.cjs.map +1 -1
- package/react/index.d.cts +7 -7
- package/react/index.d.ts +7 -7
- package/react/index.js +22 -22
- package/react/index.js.map +1 -1
- package/react/metafile-cjs.json +1 -1
- package/react/metafile-esm.json +1 -1
- package/tests/fireproof/all-gateway.test.ts +7 -7
- package/tests/fireproof/crdt.test.ts +10 -10
- package/tests/fireproof/{ledger.test.ts → database.test.ts} +31 -31
- package/tests/fireproof/fireproof.test.ts +34 -34
- package/tests/fireproof/hello.test.ts +6 -6
- package/tests/fireproof/indexer.test.ts +18 -18
- package/tests/fireproof/{multiple-ledger.test.ts → multiple-database.test.ts} +2 -2
- package/tests/react/useFireproof.test.tsx +2 -2
- package/tests/www/gallery.html +2 -2
- package/tests/www/todo-aws.html +1 -1
- package/tests/www/todo-ipfs.html +1 -1
- package/tests/www/todo-local.html +1 -1
- package/tests/www/todo.html +1 -1
package/react/metafile-esm.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"inputs":{"src/react/useFireproof.ts":{"bytes":
|
1
|
+
{"inputs":{"src/react/useFireproof.ts":{"bytes":11390,"imports":[{"path":"@fireproof/core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/react/useDocument.ts":{"bytes":1680,"imports":[{"path":"@fireproof/core","kind":"import-statement","external":true},{"path":"src/react/useFireproof.ts","kind":"import-statement","original":"./useFireproof.js"}],"format":"esm"},"src/react/useLiveQuery.ts":{"bytes":1409,"imports":[{"path":"@fireproof/core","kind":"import-statement","external":true},{"path":"src/react/useFireproof.ts","kind":"import-statement","original":"./useFireproof.js"}],"format":"esm"},"src/react/useAllDocs.ts":{"bytes":1146,"imports":[{"path":"@fireproof/core","kind":"import-statement","external":true},{"path":"src/react/useFireproof.ts","kind":"import-statement","original":"./useFireproof.js"}],"format":"esm"},"src/react/useChanges.ts":{"bytes":1191,"imports":[{"path":"@fireproof/core","kind":"import-statement","external":true},{"path":"src/react/useFireproof.ts","kind":"import-statement","original":"./useFireproof.js"}],"format":"esm"},"src/react/index.ts":{"bytes":971,"imports":[{"path":"src/react/useDocument.ts","kind":"import-statement","original":"./useDocument.js"},{"path":"src/react/useFireproof.ts","kind":"import-statement","original":"./useFireproof.js"},{"path":"src/react/useLiveQuery.ts","kind":"import-statement","original":"./useLiveQuery.js"},{"path":"src/react/useAllDocs.ts","kind":"import-statement","original":"./useAllDocs.js"},{"path":"src/react/useChanges.ts","kind":"import-statement","original":"./useChanges.js"}],"format":"esm"}},"outputs":{"dist/fireproof-core/react/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":21510},"dist/fireproof-core/react/index.js":{"imports":[{"path":"@fireproof/core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["FireproofCtx","useAllDocs","useChanges","useDocument","useFireproof","useLiveQuery"],"entryPoint":"src/react/index.ts","inputs":{"src/react/useFireproof.ts":{"bytesInOutput":3889},"src/react/useDocument.ts":{"bytesInOutput":222},"src/react/index.ts":{"bytesInOutput":0},"src/react/useLiveQuery.ts":{"bytesInOutput":229},"src/react/useAllDocs.ts":{"bytesInOutput":215},"src/react/useChanges.ts":{"bytesInOutput":215}},"bytes":5016}}}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Database, DatabaseFactory, PARAM, bs, ensureSuperThis } from "@fireproof/core";
|
2
2
|
|
3
3
|
import { fileContent } from "./cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.js";
|
4
4
|
import { simpleCID } from "../helpers.js";
|
@@ -30,7 +30,7 @@ import { simpleCID } from "../helpers.js";
|
|
30
30
|
// }
|
31
31
|
|
32
32
|
describe("noop Gateway", function () {
|
33
|
-
let db:
|
33
|
+
let db: Database;
|
34
34
|
let carStore: bs.DataStore;
|
35
35
|
let metaStore: bs.MetaStore;
|
36
36
|
let fileStore: bs.DataStore;
|
@@ -46,7 +46,7 @@ describe("noop Gateway", function () {
|
|
46
46
|
await db.destroy();
|
47
47
|
});
|
48
48
|
beforeEach(async function () {
|
49
|
-
db =
|
49
|
+
db = DatabaseFactory("test-gateway-" + sthis.nextId().str, {
|
50
50
|
logger: sthis.logger,
|
51
51
|
});
|
52
52
|
|
@@ -363,7 +363,7 @@ describe("noop Gateway", function () {
|
|
363
363
|
});
|
364
364
|
|
365
365
|
describe("noop Gateway subscribe", function () {
|
366
|
-
let db:
|
366
|
+
let db: Database;
|
367
367
|
|
368
368
|
let metaStore: bs.MetaStore;
|
369
369
|
|
@@ -375,7 +375,7 @@ describe("noop Gateway subscribe", function () {
|
|
375
375
|
await db.destroy();
|
376
376
|
});
|
377
377
|
beforeEach(async function () {
|
378
|
-
db =
|
378
|
+
db = DatabaseFactory("test-gateway-" + sthis.nextId().str);
|
379
379
|
|
380
380
|
// Extract stores from the loader
|
381
381
|
metaStore = (await db.crdt.blockstore.loader?.metaStore()) as bs.MetaStore;
|
@@ -409,7 +409,7 @@ describe("noop Gateway subscribe", function () {
|
|
409
409
|
});
|
410
410
|
|
411
411
|
describe("Gateway", function () {
|
412
|
-
let db:
|
412
|
+
let db: Database;
|
413
413
|
// let carStore: ExtendedStore;
|
414
414
|
let metaStore: bs.MetaStore;
|
415
415
|
// let fileStore: ExtendedStore;
|
@@ -425,7 +425,7 @@ describe("Gateway", function () {
|
|
425
425
|
await db.destroy();
|
426
426
|
});
|
427
427
|
beforeEach(async function () {
|
428
|
-
db =
|
428
|
+
db = DatabaseFactory("test-gateway-" + sthis.nextId().str);
|
429
429
|
const ok = await db.put({ _id: "test", foo: "bar" });
|
430
430
|
expect(ok).toBeTruthy();
|
431
431
|
expect(ok.id).toBe("test");
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { CRDT, defaultWriteQueueOpts, ensureSuperThis,
|
1
|
+
import { CRDT, defaultWriteQueueOpts, ensureSuperThis, DatabaseOpts, toStoreURIRuntime, rt } from "@fireproof/core";
|
2
2
|
import { bs } from "@fireproof/core";
|
3
3
|
import { CRDTMeta, DocValue } from "@fireproof/core";
|
4
4
|
import { Index, index } from "@fireproof/core";
|
@@ -12,7 +12,7 @@ describe("Fresh crdt", function () {
|
|
12
12
|
});
|
13
13
|
beforeEach(async function () {
|
14
14
|
await sthis.start();
|
15
|
-
const dbOpts:
|
15
|
+
const dbOpts: DatabaseOpts = {
|
16
16
|
writeQueue: defaultWriteQueueOpts({}),
|
17
17
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
18
18
|
storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
|
@@ -55,7 +55,7 @@ describe("CRDT with one record", function () {
|
|
55
55
|
|
56
56
|
beforeEach(async function () {
|
57
57
|
await sthis.start();
|
58
|
-
const dbOpts:
|
58
|
+
const dbOpts: DatabaseOpts = {
|
59
59
|
writeQueue: defaultWriteQueueOpts({}),
|
60
60
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
61
61
|
storeUrls: toStoreURIRuntime(sthis, `test@${sthis.nextId().str}`),
|
@@ -111,7 +111,7 @@ describe("CRDT with a multi-write", function () {
|
|
111
111
|
});
|
112
112
|
beforeEach(async function () {
|
113
113
|
await sthis.start();
|
114
|
-
const dbOpts:
|
114
|
+
const dbOpts: DatabaseOpts = {
|
115
115
|
writeQueue: defaultWriteQueueOpts({}),
|
116
116
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
117
117
|
storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
|
@@ -182,7 +182,7 @@ describe("CRDT with two multi-writes", function () {
|
|
182
182
|
});
|
183
183
|
beforeEach(async () => {
|
184
184
|
await sthis.start();
|
185
|
-
const dbOpts:
|
185
|
+
const dbOpts: DatabaseOpts = {
|
186
186
|
writeQueue: defaultWriteQueueOpts({}),
|
187
187
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
188
188
|
storeUrls: toStoreURIRuntime(sthis, `test-multiple-writes@${sthis.nextId().str}`),
|
@@ -236,7 +236,7 @@ describe("Compact a named CRDT with writes", function () {
|
|
236
236
|
});
|
237
237
|
beforeEach(async function () {
|
238
238
|
await sthis.start();
|
239
|
-
const dbOpts:
|
239
|
+
const dbOpts: DatabaseOpts = {
|
240
240
|
writeQueue: defaultWriteQueueOpts({}),
|
241
241
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
242
242
|
storeUrls: toStoreURIRuntime(sthis, `named-crdt-compaction`),
|
@@ -298,7 +298,7 @@ describe("CRDT with an index", function () {
|
|
298
298
|
});
|
299
299
|
beforeEach(async function () {
|
300
300
|
await sthis.start();
|
301
|
-
const dbOpts:
|
301
|
+
const dbOpts: DatabaseOpts = {
|
302
302
|
writeQueue: defaultWriteQueueOpts({}),
|
303
303
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
304
304
|
storeUrls: toStoreURIRuntime(sthis, "test-crdt-cold"),
|
@@ -350,7 +350,7 @@ describe("Loader with a committed transaction", function () {
|
|
350
350
|
});
|
351
351
|
beforeEach(async function () {
|
352
352
|
await sthis.start();
|
353
|
-
const dbOpts:
|
353
|
+
const dbOpts: DatabaseOpts = {
|
354
354
|
writeQueue: defaultWriteQueueOpts({}),
|
355
355
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
356
356
|
storeUrls: toStoreURIRuntime(sthis, dbname),
|
@@ -404,7 +404,7 @@ describe("Loader with two committed transactions", function () {
|
|
404
404
|
});
|
405
405
|
beforeEach(async function () {
|
406
406
|
await sthis.start();
|
407
|
-
const dbOpts:
|
407
|
+
const dbOpts: DatabaseOpts = {
|
408
408
|
writeQueue: defaultWriteQueueOpts({}),
|
409
409
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
410
410
|
storeUrls: toStoreURIRuntime(sthis, "test-loader"),
|
@@ -460,7 +460,7 @@ describe("Loader with many committed transactions", function () {
|
|
460
460
|
});
|
461
461
|
beforeEach(async function () {
|
462
462
|
await sthis.start();
|
463
|
-
const dbOpts:
|
463
|
+
const dbOpts: DatabaseOpts = {
|
464
464
|
writeQueue: defaultWriteQueueOpts({}),
|
465
465
|
keyBag: rt.defaultKeyBagOpts(sthis),
|
466
466
|
storeUrls: toStoreURIRuntime(sthis, "test-loader-many"),
|
@@ -2,20 +2,20 @@ import { URI } from "@adviser/cement";
|
|
2
2
|
import { buildBlobFiles, FileWithCid, mockSuperThis } from "../helpers.js";
|
3
3
|
import {
|
4
4
|
bs,
|
5
|
-
|
5
|
+
Database,
|
6
6
|
DocResponse,
|
7
7
|
DocFileMeta,
|
8
8
|
DocWithId,
|
9
9
|
DocFiles,
|
10
10
|
toStoreURIRuntime,
|
11
11
|
keyConfigOpts,
|
12
|
-
|
13
|
-
|
12
|
+
DatabaseFactory,
|
13
|
+
DatabaseShell,
|
14
14
|
ensureSuperThis,
|
15
15
|
} from "@fireproof/core";
|
16
16
|
|
17
|
-
describe("basic
|
18
|
-
let db:
|
17
|
+
describe("basic Database", () => {
|
18
|
+
let db: Database;
|
19
19
|
const sthis = mockSuperThis();
|
20
20
|
afterEach(async () => {
|
21
21
|
await db.close();
|
@@ -23,7 +23,7 @@ describe("basic Ledger", () => {
|
|
23
23
|
});
|
24
24
|
beforeEach(async () => {
|
25
25
|
await sthis.start();
|
26
|
-
db =
|
26
|
+
db = DatabaseFactory(undefined, {
|
27
27
|
logger: sthis.logger,
|
28
28
|
});
|
29
29
|
});
|
@@ -49,11 +49,11 @@ describe("basic Ledger", () => {
|
|
49
49
|
});
|
50
50
|
});
|
51
51
|
|
52
|
-
describe("basic
|
52
|
+
describe("basic Database with record", function () {
|
53
53
|
interface Doc {
|
54
54
|
readonly value: string;
|
55
55
|
}
|
56
|
-
let db:
|
56
|
+
let db: DatabaseShell;
|
57
57
|
const sthis = ensureSuperThis();
|
58
58
|
afterEach(async () => {
|
59
59
|
await db.close();
|
@@ -61,7 +61,7 @@ describe("basic Ledger with record", function () {
|
|
61
61
|
});
|
62
62
|
beforeEach(async function () {
|
63
63
|
await sthis.start();
|
64
|
-
db =
|
64
|
+
db = DatabaseFactory("factory-name") as DatabaseShell;
|
65
65
|
const ok = await db.put<Doc>({ _id: "hello", value: "world" });
|
66
66
|
expect(ok.id).toBe("hello");
|
67
67
|
});
|
@@ -93,7 +93,7 @@ describe("basic Ledger with record", function () {
|
|
93
93
|
expect(rows[0].value._id).toBe("hello");
|
94
94
|
});
|
95
95
|
it("is not persisted", async function () {
|
96
|
-
const db2 =
|
96
|
+
const db2 = DatabaseFactory("factory-name") as DatabaseShell;
|
97
97
|
const { rows } = await db2.changes([]);
|
98
98
|
expect(rows.length).toBe(1);
|
99
99
|
expect(db2.ref).toBe(db.ref);
|
@@ -103,11 +103,11 @@ describe("basic Ledger with record", function () {
|
|
103
103
|
});
|
104
104
|
});
|
105
105
|
|
106
|
-
describe("named
|
106
|
+
describe("named Database with record", function () {
|
107
107
|
interface Doc {
|
108
108
|
readonly value: string;
|
109
109
|
}
|
110
|
-
let db:
|
110
|
+
let db: Database;
|
111
111
|
const sthis = ensureSuperThis();
|
112
112
|
afterEach(async () => {
|
113
113
|
await db.close();
|
@@ -115,7 +115,7 @@ describe("named Ledger with record", function () {
|
|
115
115
|
});
|
116
116
|
beforeEach(async function () {
|
117
117
|
await sthis.start();
|
118
|
-
db =
|
118
|
+
db = DatabaseFactory("test-db-name");
|
119
119
|
/** @type {Doc} */
|
120
120
|
const doc = { _id: "hello", value: "world" };
|
121
121
|
const ok = await db.put(doc);
|
@@ -217,13 +217,13 @@ describe("named Ledger with record", function () {
|
|
217
217
|
});
|
218
218
|
});
|
219
219
|
|
220
|
-
// describe('basic
|
221
|
-
// /** @type {
|
220
|
+
// describe('basic Database parallel writes / public', function () {
|
221
|
+
// /** @type {Database} */
|
222
222
|
// let db
|
223
223
|
// const writes = []
|
224
224
|
// beforeEach(async function () {
|
225
225
|
// await resetDirectory(dataDir, 'test-parallel-writes')
|
226
|
-
// db = new
|
226
|
+
// db = new Database('test-parallel-writes', { public: true })
|
227
227
|
// /** @type {Doc} */
|
228
228
|
// for (let i = 0; i < 10; i++) {
|
229
229
|
// const doc = { _id: `id-${i}`, hello: 'world' }
|
@@ -232,8 +232,8 @@ describe("named Ledger with record", function () {
|
|
232
232
|
// await Promise.all(writes)
|
233
233
|
// })
|
234
234
|
|
235
|
-
describe("basic
|
236
|
-
let db:
|
235
|
+
describe("basic Database parallel writes / public ordered", () => {
|
236
|
+
let db: Database;
|
237
237
|
const writes: Promise<DocResponse>[] = [];
|
238
238
|
const sthis = mockSuperThis();
|
239
239
|
afterEach(async () => {
|
@@ -242,7 +242,7 @@ describe("basic Ledger parallel writes / public ordered", () => {
|
|
242
242
|
});
|
243
243
|
beforeEach(async () => {
|
244
244
|
await sthis.start();
|
245
|
-
db =
|
245
|
+
db = DatabaseFactory("test-parallel-writes-ordered", { writeQueue: { chunkSize: 1 } });
|
246
246
|
for (let i = 0; i < 10; i++) {
|
247
247
|
const doc = { _id: `id-${i}`, hello: "world" };
|
248
248
|
writes.push(db.put(doc));
|
@@ -266,8 +266,8 @@ describe("basic Ledger parallel writes / public ordered", () => {
|
|
266
266
|
});
|
267
267
|
});
|
268
268
|
|
269
|
-
describe("basic
|
270
|
-
let db:
|
269
|
+
describe("basic Database parallel writes / public", () => {
|
270
|
+
let db: Database;
|
271
271
|
const writes: Promise<DocResponse>[] = [];
|
272
272
|
const sthis = ensureSuperThis();
|
273
273
|
afterEach(async () => {
|
@@ -276,7 +276,7 @@ describe("basic Ledger parallel writes / public", () => {
|
|
276
276
|
});
|
277
277
|
beforeEach(async () => {
|
278
278
|
await sthis.start();
|
279
|
-
db =
|
279
|
+
db = DatabaseFactory("test-parallel-writes", { writeQueue: { chunkSize: 32 } });
|
280
280
|
for (let i = 0; i < 10; i++) {
|
281
281
|
const doc = { _id: `id-${i}`, hello: "world" };
|
282
282
|
writes.push(db.put(doc));
|
@@ -346,8 +346,8 @@ describe("basic Ledger parallel writes / public", () => {
|
|
346
346
|
});
|
347
347
|
});
|
348
348
|
|
349
|
-
describe("basic
|
350
|
-
let db:
|
349
|
+
describe("basic Database with subscription", function () {
|
350
|
+
let db: Database;
|
351
351
|
let didRun: number;
|
352
352
|
let unsubscribe: () => void;
|
353
353
|
let lastDoc: DocWithId<NonNullable<unknown>>;
|
@@ -359,7 +359,7 @@ describe("basic Ledger with subscription", function () {
|
|
359
359
|
});
|
360
360
|
beforeEach(async function () {
|
361
361
|
await sthis.start();
|
362
|
-
db =
|
362
|
+
db = DatabaseFactory("factory-name");
|
363
363
|
didRun = 0;
|
364
364
|
waitForSub = new Promise((resolve) => {
|
365
365
|
unsubscribe = db.subscribe((docs) => {
|
@@ -392,8 +392,8 @@ describe("basic Ledger with subscription", function () {
|
|
392
392
|
});
|
393
393
|
});
|
394
394
|
|
395
|
-
describe("basic
|
396
|
-
let db:
|
395
|
+
describe("basic Database with no update subscription", function () {
|
396
|
+
let db: Database;
|
397
397
|
let didRun: number;
|
398
398
|
let unsubscribe: () => void;
|
399
399
|
const sthis = ensureSuperThis();
|
@@ -403,7 +403,7 @@ describe("basic Ledger with no update subscription", function () {
|
|
403
403
|
});
|
404
404
|
beforeEach(async function () {
|
405
405
|
await sthis.start();
|
406
|
-
db =
|
406
|
+
db = DatabaseFactory("factory-name");
|
407
407
|
didRun = 0;
|
408
408
|
unsubscribe = db.subscribe(() => {
|
409
409
|
didRun++;
|
@@ -428,8 +428,8 @@ describe("basic Ledger with no update subscription", function () {
|
|
428
428
|
});
|
429
429
|
});
|
430
430
|
|
431
|
-
describe("
|
432
|
-
let db:
|
431
|
+
describe("database with files input", () => {
|
432
|
+
let db: Database;
|
433
433
|
let imagefiles: FileWithCid[] = [];
|
434
434
|
let result: DocResponse;
|
435
435
|
const sthis = ensureSuperThis();
|
@@ -441,7 +441,7 @@ describe("ledger with files input", () => {
|
|
441
441
|
beforeEach(async function () {
|
442
442
|
await sthis.start();
|
443
443
|
imagefiles = await buildBlobFiles();
|
444
|
-
db =
|
444
|
+
db = DatabaseFactory("fireproof-with-images");
|
445
445
|
const doc = {
|
446
446
|
_id: "images-main",
|
447
447
|
type: "files",
|
@@ -4,8 +4,8 @@ import { CID } from "multiformats/cid";
|
|
4
4
|
|
5
5
|
import {
|
6
6
|
ConfigOpts,
|
7
|
-
|
8
|
-
|
7
|
+
Database,
|
8
|
+
DatabaseFactory,
|
9
9
|
DocResponse,
|
10
10
|
DocWithId,
|
11
11
|
Index,
|
@@ -14,7 +14,7 @@ import {
|
|
14
14
|
bs,
|
15
15
|
fireproof,
|
16
16
|
index,
|
17
|
-
|
17
|
+
isDatabase,
|
18
18
|
ensureSuperThis,
|
19
19
|
} from "@fireproof/core";
|
20
20
|
|
@@ -38,7 +38,7 @@ describe("dreamcode", function () {
|
|
38
38
|
let ok: DocResponse;
|
39
39
|
let doc: DocWithId<Doc>;
|
40
40
|
let result: IndexRows<string, Doc>;
|
41
|
-
let db:
|
41
|
+
let db: Database;
|
42
42
|
const sthis = ensureSuperThis();
|
43
43
|
afterEach(async function () {
|
44
44
|
await db.close();
|
@@ -77,7 +77,7 @@ describe("public API", function () {
|
|
77
77
|
interface Doc {
|
78
78
|
foo: string;
|
79
79
|
}
|
80
|
-
let db:
|
80
|
+
let db: Database;
|
81
81
|
let ok: DocResponse;
|
82
82
|
let doc: DocWithId<Doc>;
|
83
83
|
let query: IndexRows<string, Doc>;
|
@@ -96,9 +96,9 @@ describe("public API", function () {
|
|
96
96
|
doc = await db.get("test");
|
97
97
|
query = await db.query<string, Doc>((doc) => doc.foo);
|
98
98
|
});
|
99
|
-
it("should be a
|
99
|
+
it("should be a database instance", function () {
|
100
100
|
expect(db).toBeTruthy();
|
101
|
-
expect(
|
101
|
+
expect(isDatabase(db)).toBeTruthy();
|
102
102
|
});
|
103
103
|
it("should put", function () {
|
104
104
|
expect(ok).toBeTruthy();
|
@@ -115,11 +115,11 @@ describe("public API", function () {
|
|
115
115
|
});
|
116
116
|
});
|
117
117
|
|
118
|
-
describe("basic
|
118
|
+
describe("basic database", function () {
|
119
119
|
interface Doc {
|
120
120
|
foo: string;
|
121
121
|
}
|
122
|
-
let db:
|
122
|
+
let db: Database<Doc>;
|
123
123
|
const sthis = ensureSuperThis();
|
124
124
|
afterEach(async function () {
|
125
125
|
await db.close();
|
@@ -127,7 +127,7 @@ describe("basic ledger", function () {
|
|
127
127
|
});
|
128
128
|
beforeEach(async function () {
|
129
129
|
await sthis.start();
|
130
|
-
db =
|
130
|
+
db = DatabaseFactory("test-basic");
|
131
131
|
});
|
132
132
|
it("can put with id", async function () {
|
133
133
|
const ok = await db.put({ _id: "test", foo: "bar" });
|
@@ -192,7 +192,7 @@ describe("basic ledger", function () {
|
|
192
192
|
});
|
193
193
|
|
194
194
|
describe("benchmarking with compaction", function () {
|
195
|
-
let db:
|
195
|
+
let db: Database;
|
196
196
|
const sthis = ensureSuperThis();
|
197
197
|
afterEach(async function () {
|
198
198
|
await db.close();
|
@@ -201,7 +201,7 @@ describe("benchmarking with compaction", function () {
|
|
201
201
|
beforeEach(async function () {
|
202
202
|
// erase the existing test data
|
203
203
|
await sthis.start();
|
204
|
-
db =
|
204
|
+
db = DatabaseFactory("test-benchmark-compaction", { autoCompact: 3 });
|
205
205
|
});
|
206
206
|
it.skip("insert during compaction", async function () {
|
207
207
|
const ok = await db.put({ _id: "test", foo: "fast" });
|
@@ -245,9 +245,9 @@ describe("benchmarking with compaction", function () {
|
|
245
245
|
});
|
246
246
|
});
|
247
247
|
|
248
|
-
describe("benchmarking a
|
249
|
-
/** @type {
|
250
|
-
let db:
|
248
|
+
describe("benchmarking a database", function () {
|
249
|
+
/** @type {Database} */
|
250
|
+
let db: Database;
|
251
251
|
const sthis = ensureSuperThis();
|
252
252
|
afterEach(async function () {
|
253
253
|
await db.close();
|
@@ -256,8 +256,8 @@ describe("benchmarking a ledger", function () {
|
|
256
256
|
beforeEach(async function () {
|
257
257
|
await sthis.start();
|
258
258
|
// erase the existing test data
|
259
|
-
db =
|
260
|
-
// db =
|
259
|
+
db = DatabaseFactory("test-benchmark", { autoCompact: 100000, public: true });
|
260
|
+
// db = DatabaseFactory(null, {autoCompact: 100000})
|
261
261
|
});
|
262
262
|
|
263
263
|
// run benchmarking tests
|
@@ -307,7 +307,7 @@ describe("benchmarking a ledger", function () {
|
|
307
307
|
// equals(allDocsResult2.rows.length, numDocs+1)
|
308
308
|
|
309
309
|
// console.time("open new DB");
|
310
|
-
const newDb =
|
310
|
+
const newDb = DatabaseFactory("test-benchmark", { autoCompact: 100000, public: true });
|
311
311
|
const doc = await newDb.get<{ foo: string }>("test");
|
312
312
|
expect(doc.foo).toBe("fast");
|
313
313
|
// console.timeEnd("open new DB");
|
@@ -349,7 +349,7 @@ describe("benchmarking a ledger", function () {
|
|
349
349
|
await sleep(100);
|
350
350
|
|
351
351
|
// console.time("compacted reopen again");
|
352
|
-
const newDb2 =
|
352
|
+
const newDb2 = DatabaseFactory("test-benchmark", { autoCompact: 100000, public: true });
|
353
353
|
const doc21 = await newDb2.get<FooType>("test");
|
354
354
|
expect(doc21.foo).toBe("fast");
|
355
355
|
const blocks2 = newDb2.crdt.blockstore as bs.EncryptedBlockstore;
|
@@ -401,11 +401,11 @@ describe("benchmarking a ledger", function () {
|
|
401
401
|
}, 20000000);
|
402
402
|
});
|
403
403
|
|
404
|
-
describe("Reopening a
|
404
|
+
describe("Reopening a database", function () {
|
405
405
|
interface Doc {
|
406
406
|
foo: string;
|
407
407
|
}
|
408
|
-
let db:
|
408
|
+
let db: Database;
|
409
409
|
const sthis = ensureSuperThis();
|
410
410
|
afterEach(async function () {
|
411
411
|
await db.close();
|
@@ -415,7 +415,7 @@ describe("Reopening a ledger", function () {
|
|
415
415
|
// erase the existing test data
|
416
416
|
await sthis.start();
|
417
417
|
|
418
|
-
db =
|
418
|
+
db = DatabaseFactory("test-reopen", { autoCompact: 100000 });
|
419
419
|
const ok = await db.put({ _id: "test", foo: "bar" });
|
420
420
|
expect(ok).toBeTruthy();
|
421
421
|
expect(ok.id).toBe("test");
|
@@ -430,7 +430,7 @@ describe("Reopening a ledger", function () {
|
|
430
430
|
});
|
431
431
|
|
432
432
|
it("should have the same data on reopen", async function () {
|
433
|
-
const db2 =
|
433
|
+
const db2 = DatabaseFactory("test-reopen");
|
434
434
|
const doc = await db2.get<FooType>("test");
|
435
435
|
expect(doc.foo).toBe("bar");
|
436
436
|
expect(db2.crdt.clock.head).toBeDefined();
|
@@ -449,7 +449,7 @@ describe("Reopening a ledger", function () {
|
|
449
449
|
});
|
450
450
|
|
451
451
|
it("should have carlog after reopen", async function () {
|
452
|
-
const db2 =
|
452
|
+
const db2 = DatabaseFactory("test-reopen");
|
453
453
|
await db2.crdt.ready();
|
454
454
|
const blocks = db2.crdt.blockstore as bs.EncryptedBlockstore;
|
455
455
|
const loader = blocks.loader;
|
@@ -462,7 +462,7 @@ describe("Reopening a ledger", function () {
|
|
462
462
|
it("faster, should have the same data on reopen after reopen and update", async function () {
|
463
463
|
for (let i = 0; i < 4; i++) {
|
464
464
|
// console.log('iteration', i)
|
465
|
-
const db =
|
465
|
+
const db = DatabaseFactory("test-reopen");
|
466
466
|
// assert(db._crdt.xready());
|
467
467
|
await db.crdt.ready();
|
468
468
|
const blocks = db.crdt.blockstore as bs.EncryptedBlockstore;
|
@@ -481,7 +481,7 @@ describe("Reopening a ledger", function () {
|
|
481
481
|
for (let i = 0; i < 200; i++) {
|
482
482
|
// console.log("iteration", i);
|
483
483
|
// console.time("db open");
|
484
|
-
const db =
|
484
|
+
const db = DatabaseFactory("test-reopen", { autoCompact: 1000 }); // try with 10
|
485
485
|
// assert(db._crdt.ready);
|
486
486
|
await db.crdt.ready();
|
487
487
|
// console.timeEnd("db open");
|
@@ -503,11 +503,11 @@ describe("Reopening a ledger", function () {
|
|
503
503
|
}, 200000);
|
504
504
|
});
|
505
505
|
|
506
|
-
describe("Reopening a
|
506
|
+
describe("Reopening a database with indexes", function () {
|
507
507
|
interface Doc {
|
508
508
|
foo: string;
|
509
509
|
}
|
510
|
-
let db:
|
510
|
+
let db: Database;
|
511
511
|
let idx: Index<string, Doc>;
|
512
512
|
let didMap: boolean;
|
513
513
|
let mapFn: MapFn<Doc>;
|
@@ -635,8 +635,8 @@ describe("basic js verify", function () {
|
|
635
635
|
});
|
636
636
|
|
637
637
|
describe("same workload twice, same CID", function () {
|
638
|
-
let dbA:
|
639
|
-
let dbB:
|
638
|
+
let dbA: Database;
|
639
|
+
let dbB: Database;
|
640
640
|
let headA: string;
|
641
641
|
let headB: string;
|
642
642
|
|
@@ -665,7 +665,7 @@ describe("same workload twice, same CID", function () {
|
|
665
665
|
beforeEach(async function () {
|
666
666
|
let ok: DocResponse;
|
667
667
|
await sthis.start();
|
668
|
-
// todo this fails because the test setup doesn't properly configure both
|
668
|
+
// todo this fails because the test setup doesn't properly configure both databases to use the same key
|
669
669
|
dbA = fireproof("test-dual-workload-a", configA);
|
670
670
|
for (const doc of docs) {
|
671
671
|
ok = await dbA.put(doc);
|
@@ -674,7 +674,7 @@ describe("same workload twice, same CID", function () {
|
|
674
674
|
}
|
675
675
|
headA = dbA.crdt.clock.head.toString();
|
676
676
|
|
677
|
-
// todo this fails because the test setup doesn't properly configure both
|
677
|
+
// todo this fails because the test setup doesn't properly configure both databases to use the same key
|
678
678
|
dbB = fireproof("test-dual-workload-b", configB);
|
679
679
|
for (const doc of docs) {
|
680
680
|
ok = await dbB.put(doc);
|
@@ -705,7 +705,7 @@ describe("same workload twice, same CID", function () {
|
|
705
705
|
|
706
706
|
expect(logA2.length).toBe(logB2.length);
|
707
707
|
|
708
|
-
// todo this fails because the test setup doesn't properly configure both
|
708
|
+
// todo this fails because the test setup doesn't properly configure both databases to use the same key
|
709
709
|
// expect(logA2).toEqual(logB2);
|
710
710
|
});
|
711
711
|
it("should have same car log after compact", async function () {
|
@@ -727,7 +727,7 @@ describe("same workload twice, same CID", function () {
|
|
727
727
|
|
728
728
|
expect(cmpLogA2.length).toBe(cmpLogB2.length);
|
729
729
|
|
730
|
-
// todo this fails because the test setup doesn't properly configure both
|
730
|
+
// todo this fails because the test setup doesn't properly configure both databases to use the same key
|
731
731
|
// expect(cmpLogA2).toEqual(cmpLogB2);
|
732
732
|
});
|
733
733
|
});
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { fireproof,
|
1
|
+
import { fireproof, Database, DocResponse, DocWithId, index, isDatabase } from "@fireproof/core";
|
2
2
|
import { mockSuperThis } from "../helpers.js";
|
3
3
|
|
4
4
|
describe("Hello World Test", function () {
|
@@ -12,7 +12,7 @@ describe("hello public API", () => {
|
|
12
12
|
interface TestDoc {
|
13
13
|
foo: string;
|
14
14
|
}
|
15
|
-
let db:
|
15
|
+
let db: Database;
|
16
16
|
let ok: DocResponse;
|
17
17
|
let doc: DocWithId<TestDoc>;
|
18
18
|
// let idx: Index<string, TestDoc>;
|
@@ -28,9 +28,9 @@ describe("hello public API", () => {
|
|
28
28
|
ok = await db.put({ _id: "test", foo: "bar" });
|
29
29
|
doc = await db.get("test");
|
30
30
|
});
|
31
|
-
it("should have a
|
31
|
+
it("should have a database", function () {
|
32
32
|
expect(db).toBeTruthy();
|
33
|
-
expect(
|
33
|
+
expect(isDatabase(db)).toBeTruthy();
|
34
34
|
});
|
35
35
|
it("should put", function () {
|
36
36
|
expect(ok).toBeTruthy();
|
@@ -47,8 +47,8 @@ describe("hello public API", () => {
|
|
47
47
|
});
|
48
48
|
});
|
49
49
|
|
50
|
-
describe("Simplified Reopening a
|
51
|
-
let db:
|
50
|
+
describe("Simplified Reopening a database", function () {
|
51
|
+
let db: Database;
|
52
52
|
afterEach(async function () {
|
53
53
|
await db.close();
|
54
54
|
await db.destroy();
|