UNPKG

@constl/bohr-db

Version:

Type-safe databases for OrbitDB.

20 lines 1.43 kB
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