Ordered keyvalue database type for OrbitDB.
$ pnpm add @orbitdb/ordered-keyvalue-db
A KeyValue
database where you can move entries around. Ideal for situations where order is important (e.g., lists of tabs in a spreadsheet, etc.).
import { createOrbitDB } from "@orbitdb/core";
import { registerOrderedKeyValue } from "@orbitdb/ordered-keyvalue-db";
// Register database type. IMPORTANT - must call before creating orbit instance !
registerOrderedKeyValue();
const orbit = await createOrbitDB({ ipfs })
const db = await orbit.open({ type: "ordered-keyvalue" });
await db.put("a", "some value");
await db.put("b", "another value");
const all = await db.all();
// [{ key: "a", value: "some value", hash: "..." }, { key: "b", value: "another value", hash: "..." }]
await db.move("a", 1)
await db.all();
// [{ key: "b", value: "another value", hash: "..." }, { key: "a", value: "some value", hash: "..." }]
// You can also specify the position on `put`
await db.put("c", "goes first", 0);
await db.all();
// [{ key: "c", value: "goes first", hash: "..." }, { key: "b", value: "another value", hash: "..." }, { key: "a", value: "some value", hash: "..." }]