@constl/bohr-db
Version:
Type-safe databases for OrbitDB.
20 lines • 1.43 kB
TypeScript
import { type JSONSchemaType } from "ajv";
import { type NestedDatabaseType, type NestedValue } from "@orbitdb/nested-db";
import type { ExtractKeys, ExtractKeysAsList, GetValueFromKey, GetValueFromKeyList, RecursivePartial } from "./types.ts";
export type TypedNested<T extends NestedValue> = Omit<NestedDatabaseType, "put" | "set" | "insert" | "del" | "get" | "move" | "all"> & {
insert(value: RecursivePartial<T>): Promise<string[]>;
insert<K extends ExtractKeys<T>>(key: K, value: RecursivePartial<GetValueFromKey<T, K>>): Promise<string[]>;
insert<K extends ExtractKeysAsList<T>>(key: K, value: RecursivePartial<GetValueFromKeyList<T, K>>): Promise<string[]>;
put<K extends ExtractKeys<T>>(key: K, value: GetValueFromKey<T, K>): Promise<string[]>;
put<K extends ExtractKeysAsList<T>>(key: K, value: GetValueFromKeyList<T, K>): Promise<string[]>;
set: TypedNested<T>["put"];
del<K extends ExtractKeys<T> | ExtractKeysAsList<T>>(key: K): Promise<string>;
get<K extends ExtractKeys<T>>(key: K): Promise<GetValueFromKey<T, K> | undefined>;
get<K extends ExtractKeysAsList<T>>(key: K): Promise<GetValueFromKeyList<T, K> | undefined>;
all: () => Promise<RecursivePartial<T>>;
};
export declare const typedNested: <T extends NestedValue>({ db, schema, }: {
db: NestedDatabaseType;
schema: JSONSchemaType<RecursivePartial<T>>;
}) => TypedNested<T>;
//# sourceMappingURL=nested.d.ts.map