UNPKG

refine-sql

Version:

Multi-runtime SQL data provider for Refine - Supports Cloudflare D1, Node.js 22.5+ native SQLite, and Bun 1.2+ native SQLite with zero bundle overhead

60 lines (56 loc) 2 kB
import { GetListParams, BaseRecord, GetManyParams, CreateParams, UpdateParams, GetOneParams, DeleteOneParams, CreateManyParams, UpdateManyParams, DeleteManyParams, CustomParams } from '@refinedev/core'; interface D1Database { prepare(query: string): D1PreparedStatement; batch<T = unknown>(statements: D1PreparedStatement[]): Promise<D1Result<T>[]>; } interface D1PreparedStatement { bind(...values: unknown[]): D1PreparedStatement; first<T = unknown>(colName?: string): Promise<T | null>; run(): Promise<D1Result>; all<T = unknown>(): Promise<D1Result<T>>; } interface D1Result<T = Record<string, unknown>> { results?: T[]; meta: { changes: number; last_row_id: number; }; } declare const dataProvider: (dbInput: D1Database | string) => { getList: ({ resource, pagination, filters, sorters }: GetListParams) => Promise<{ data: BaseRecord[]; total: number; }>; getMany: ({ resource, ids }: GetManyParams) => Promise<{ data: BaseRecord[]; }>; create: ({ resource, variables }: CreateParams) => Promise<{ data: BaseRecord; }>; update: ({ resource, id, variables }: UpdateParams) => Promise<{ data: BaseRecord; }>; getOne: ({ resource, id }: GetOneParams) => Promise<{ data: BaseRecord; }>; deleteOne: ({ resource, id }: DeleteOneParams) => Promise<{ data: any; }>; createMany: ({ resource, variables }: CreateManyParams) => Promise<{ data: BaseRecord[]; }>; updateMany: ({ resource, ids, variables }: UpdateManyParams) => Promise<{ data: BaseRecord[]; }>; deleteMany: ({ resource, ids }: DeleteManyParams) => Promise<{ data: BaseRecord[]; }>; getApiUrl: () => string; custom: ({ url, method, payload }: CustomParams) => Promise<{ data: any[] | { changes: number; lastInsertRowid?: number; }; }>; }; export { type D1Database, dataProvider };