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/).
45 lines (42 loc) • 1.25 kB
JavaScript
import { CloudflareD1HttpClient } from './chunk-7RMOKAKV.mjs';
// src/mock.ts
var db;
var mockedFetch = (_, options) => {
return Promise.resolve({
json: async () => {
if (!db) {
const Sqlite3 = globalThis.require === undefined ? (await import('better-sqlite3')).default : globalThis.require("better-sqlite3");
db = new Sqlite3(":memory:");
}
const req = JSON.parse(options.body);
const prepare = db.prepare(req.sql);
let results;
let meta;
try {
results = prepare.all(req.params || []);
} catch (error) {
if (error.message.includes("Use run() instead")) {
meta = prepare.run(req.params || []);
} else return Promise.reject(Error(error.message));
}
return Promise.resolve({
success: true,
result: [
{
results,
meta
}
]
});
}
});
};
var MockedCloudflareD1HttpClient = class extends CloudflareD1HttpClient {
constructor() {
super({
connection: { account_id: "", database_id: "", key: "", mockedFetch }
});
}
};
var mock_default = MockedCloudflareD1HttpClient;
export { MockedCloudflareD1HttpClient, mock_default as default, mockedFetch };