bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
38 lines (37 loc) • 3.91 kB
TypeScript
import type { DB, EntityData, RepoQueryIn } from "../..";
import type { Insertable, Selectable, Updateable } from "kysely";
import { type BaseModuleApiOptions, ModuleApi, type PrimaryFieldType } from "../../modules";
import type { FetchPromise, ResponseObject } from "../../modules/ModuleApi";
import type { RepositoryResultJSON } from "../../data/entities/query/RepositoryResult";
export type DataApiOptions = BaseModuleApiOptions & {
queryLengthLimit: number;
defaultQuery: Partial<RepoQueryIn>;
};
export declare class DataApi extends ModuleApi<DataApiOptions> {
protected getDefaultOptions(): Partial<DataApiOptions>;
private requireObjectSet;
readOne<E extends keyof DB | string>(entity: E, id: PrimaryFieldType, query?: Omit<RepoQueryIn, "where" | "limit" | "offset">): FetchPromise<ResponseObject<RepositoryResultJSON<E extends keyof DB ? Selectable<DB[E]> : EntityData>, E extends keyof DB ? Selectable<DB[E]> : EntityData>>;
readOneBy<E extends keyof DB | string>(entity: E, query?: Omit<RepoQueryIn, "limit" | "offset" | "sort">): FetchPromise<ResponseObject<RepositoryResultJSON<E extends keyof DB ? Selectable<DB[E]> : EntityData>>>;
readMany<E extends keyof DB | string>(entity: E, query?: RepoQueryIn): FetchPromise<ResponseObject<RepositoryResultJSON<(E extends keyof DB ? Selectable<DB[E]> : EntityData)[]>, (E extends keyof DB ? Selectable<DB[E]> : EntityData)[]>>;
readManyByReference<E extends keyof DB | string, R extends keyof DB | string>(entity: E, id: PrimaryFieldType, reference: R, query?: RepoQueryIn): FetchPromise<ResponseObject<RepositoryResultJSON<(R extends keyof DB ? Selectable<DB[R]> : EntityData)[]>, (R extends keyof DB ? Selectable<DB[R]> : EntityData)[]>>;
createOne<E extends keyof DB | string, Input = E extends keyof DB ? DB[E] : EntityData>(entity: E, input: Insertable<Input>): FetchPromise<ResponseObject<RepositoryResultJSON<E extends keyof DB ? Selectable<DB[E]> : EntityData>, E extends keyof DB ? Selectable<DB[E]> : EntityData>>;
createMany<E extends keyof DB | string, Input = E extends keyof DB ? DB[E] : EntityData>(entity: E, input: Insertable<Input>[]): FetchPromise<ResponseObject<RepositoryResultJSON<(E extends keyof DB ? Selectable<DB[E]> : EntityData)[]>, (E extends keyof DB ? Selectable<DB[E]> : EntityData)[]>>;
updateOne<E extends keyof DB | string, Input = E extends keyof DB ? DB[E] : EntityData>(entity: E, id: PrimaryFieldType, input: Updateable<Input>): FetchPromise<ResponseObject<RepositoryResultJSON<E extends keyof DB ? Selectable<DB[E]> : EntityData>, E extends keyof DB ? Selectable<DB[E]> : EntityData>>;
updateMany<E extends keyof DB | string, Input = E extends keyof DB ? DB[E] : EntityData>(entity: E, where: RepoQueryIn["where"], update: Updateable<Input>): FetchPromise<ResponseObject<RepositoryResultJSON<(E extends keyof DB ? Selectable<DB[E]> : EntityData)[]>, (E extends keyof DB ? Selectable<DB[E]> : EntityData)[]>>;
deleteOne<E extends keyof DB | string>(entity: E, id: PrimaryFieldType): FetchPromise<ResponseObject<RepositoryResultJSON<E extends keyof DB ? Selectable<DB[E]> : EntityData>, E extends keyof DB ? Selectable<DB[E]> : EntityData>>;
deleteMany<E extends keyof DB | string>(entity: E, where: RepoQueryIn["where"]): FetchPromise<ResponseObject<RepositoryResultJSON<E extends keyof DB ? Selectable<DB[E]> : EntityData>, E extends keyof DB ? Selectable<DB[E]> : EntityData>>;
count<E extends keyof DB | string>(entity: E, where?: RepoQueryIn["where"]): FetchPromise<ResponseObject<RepositoryResultJSON<{
entity: E;
count: number;
}>, {
entity: E;
count: number;
}>>;
exists<E extends keyof DB | string>(entity: E, where?: RepoQueryIn["where"]): FetchPromise<ResponseObject<RepositoryResultJSON<{
entity: E;
exists: boolean;
}>, {
entity: E;
exists: boolean;
}>>;
}