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/).
65 lines (45 loc) • 1.95 kB
Markdown
# cloudflare-d1-http-knex
[](https://github.com/zfben/cloudflare-d1-http-knex/blob/main/LICENSE)
[](https://www.npmjs.com/package/cloudflare-d1-http-knex)
[](https://app.codecov.io/gh/zfben/cloudflare-d1-http-knex)
[](https://github.com/zfben/cloudflare-d1-http-knex/actions/workflows/test.yml)
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/).
## Installation
```bash
npm install cloudflare-d1-http-knex
# or
bun add cloudflare-d1-http-knex
```
## Usage
```ts
import { createConnection } from 'cloudflare-d1-http-knex';
// The connection function returns a Knex instance
const connection = createConnection({
account_id: 'account_id',
database_id: 'database_id',
key: 'key',
});
const query = await connection('table_name').select('*');
```
## Mocking
1. Install `better-sqlite3`: `npm install -D better-sqlite3`.
2. Using in case:
```ts
import { createConnection } from 'cloudflare-d1-http-knex'
import { mockedFetch } from 'cloudflare-d1-http-knex/mock'
const db = createConnection({
account_id: 'xxxx',
database_id: 'xxxx',
key: 'xxxx',
mockedFetch, // Using mocked fetch, it won't connect to real D1 database.
})
await db.raw('SELECT 1+1')
```
### Usage mockedFetch as Global in Jest
You should add below codes to your jest setup files.
```ts
import { mockedFetch } from 'cloudflare-d1-http-knex/mock'
global.fetch = jest.fn(mockedFetch)
```
## Changelog
See [CHANGELOG.md](./CHANGELOG.md).