@constl/bohr-db
Version:
Type-safe databases for orbit-db.
27 lines (26 loc) • 1.04 kB
TypeScript
import { JSONSchemaType } from "ajv";
import { OrderedKeyValueDatabaseType } from "@orbitdb/ordered-keyvalue-db";
import { DBElements } from "./types";
export type TypedOrderedKeyValue<T extends {
[clef: string]: unknown;
}> = Omit<OrderedKeyValueDatabaseType, "put" | "set" | "del" | "move" | "get" | "all"> & {
put: <K extends keyof T>(key: K, value: T[K], position?: number) => Promise<string>;
set: TypedOrderedKeyValue<T>["put"];
del: <K extends keyof T>(key: K) => Promise<string>;
move: <K extends keyof T>(key: K, position: number) => Promise<string>;
get: <K extends keyof T>(key: K) => Promise<{
value: T[K];
position?: number;
} | undefined>;
all: () => Promise<{
key: Extract<keyof T, "string">;
value: T[keyof T];
hash: string;
}[]>;
};
export declare const typedOrderedKeyValue: <T extends {
[clef: string]: DBElements;
}>({ db, schema, }: {
db: OrderedKeyValueDatabaseType;
schema: JSONSchemaType<Partial<T>>;
}) => TypedOrderedKeyValue<T>;