Skip to content

orbitdb/ordered-keyvalue-db

Repository files navigation

@orbitdb/ordered-keyvalue-db

Ordered keyvalue database type for OrbitDB.

Tests codecov

Installation

$ pnpm add @orbitdb/ordered-keyvalue-db

Introduction

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.).

Examples

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: "..." }]