UNPKG

cloudflare-d1-http-knex

Version:

An npm package that query [Cloudflare's D1](https://developers.cloudflare.com/d1/) through [Query D1 Database API](https://developers.cloudflare.com/api/operations/cloudflare-d1-query-database-query) and [Knex](https://knexjs.org/).

78 lines (74 loc) 2.33 kB
import K, { Knex } from 'knex'; /** * Mocked fetch function to simulate a database connection. * * **Note: Your should install `better-sqlite3` to use it.** * * @example * ```ts * import { createConnection } from 'cloudflare-d1-http-knex' * import { mockedFetch } from 'cloudflare-d1-http-knex/mock' * * const connection = { * account_id: 'xxxx', * database_id: 'xxxx', * key: 'xxxx', * mockedFetch, * } * * const db = createConnection(connection) * * await db.raw('SELECT 1+1') * ``` */ declare const mockedFetch: (_: any, options: any) => Promise<{ json: () => Promise<{ success: boolean; result: { results: any[]; meta: any; }[]; }>; }>; declare class MockedCloudflareD1HttpClient extends CloudflareD1HttpClient { constructor(); } type CloudflareD1HttpClientConfigConnection = { /** Cloudflare's account id */ account_id: string; /** D1's database id */ database_id: string; /** Cloudflare's api key, from https://dash.cloudflare.com/profile/api-tokens */ key: string; /** Mock fetch function for testing */ mockedFetch?: typeof mockedFetch; } & Knex.StaticConnectionConfig; type CloudflareD1HttpClientConfig = Knex.Config & { connection: CloudflareD1HttpClientConfigConnection; }; declare const CloudflareD1HttpClient_base: typeof Knex.Client; declare class CloudflareD1HttpClient extends CloudflareD1HttpClient_base { readonly config: CloudflareD1HttpClientConfig; constructor(config: CloudflareD1HttpClientConfig); _driver(): this; acquireRawConnection(): Promise<Awaited<this>>; _query(_: any, obj: any): Promise<any>; _processResponse(res: any, obj: any): Promise<any>; processResponse(res: any): Promise<any>; } /** * Create a new connection and return the Knex instance. * * @example * ```ts * const db = createConnection({ * account_id: 'xxxx', * database_id: 'xxxx', * key: 'xxxx', * }) * * await db('users').first() * ``` */ declare function createConnection(connection: CloudflareD1HttpClientConfigConnection): K.Knex<any, unknown[]>; export { CloudflareD1HttpClient as C, MockedCloudflareD1HttpClient as M, type CloudflareD1HttpClientConfig as a, type CloudflareD1HttpClientConfigConnection as b, createConnection as c, mockedFetch as m };