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.95 kB
TypeScript
import type { DB } from "../../core";
import type { EntityData, RepoQueryIn, RepositoryResponse } from "../../data";
import type { Insertable, Selectable, Updateable } from "kysely";
import { type BaseModuleApiOptions, ModuleApi, type PrimaryFieldType } from "../../modules";
import type { FetchPromise, ResponseObject } from "../../modules/ModuleApi";
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<Pick<RepositoryResponse<E extends keyof DB ? Selectable<DB[E]> : EntityData>, "data" | "meta">, E extends keyof DB ? Selectable<DB[E]> : EntityData>>;
readOneBy<E extends keyof DB | string>(entity: E, query?: Omit<RepoQueryIn, "limit" | "offset" | "sort">): FetchPromise<ResponseObject<Pick<RepositoryResponse<E extends keyof DB ? Selectable<DB[E]> : EntityData>, "data" | "meta">>>;
readMany<E extends keyof DB | string>(entity: E, query?: RepoQueryIn): FetchPromise<ResponseObject<Pick<RepositoryResponse<(E extends keyof DB ? Selectable<DB[E]> : EntityData)[]>, "data" | "meta">, (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<Pick<RepositoryResponse<(R extends keyof DB ? Selectable<DB[R]> : EntityData)[]>, "data" | "meta">, (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<RepositoryResponse<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<RepositoryResponse<(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<RepositoryResponse<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<RepositoryResponse<(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<RepositoryResponse<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<RepositoryResponse<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<RepositoryResponse<{
entity: E;
count: number;
}>, {
entity: E;
count: number;
}>>;
exists<E extends keyof DB | string>(entity: E, where?: RepoQueryIn["where"]): FetchPromise<ResponseObject<RepositoryResponse<{
entity: E;
exists: boolean;
}>, {
entity: E;
exists: boolean;
}>>;
}