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
text/typescript
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 };