UNPKG

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
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; }>>; }