
Enable Cloudflare Workers runtime for local development. Compatible with DrizzleORM.
npm i -D wrangler
npm i -D cf-workers-proxy
name = "worker"
compatibility_date = "2023-07-02"
[[d1_databases]]
binding = "D1"
database_name = "D1"
database_id = "<d1-id>"
[[kv_namespaces]]
binding = "KV"
id = "<kv-id>"
preview_id = "<same-kv-id-as-above>"
[[services]]
binding = "WORKER"
service = "<worker-name>"
environment = "production"
npx wrangler node_modules/cf-workers-proxy/dist/worker.js --remote
// file: app.d.ts
declare global {
namespace App {
interface Locals {
D1: D1Database;
}
interface Platform {
env?: {
D1: D1Database;
};
}
}
}
export {};
// file: src/hooks.server.ts
import { createD1 } from 'cf-workers-proxy';
export const handle = ({ event, resolve }) => {
event.locals.D1 = event.platform?.env?.D1 ?? createD1('D1');
// or createD1('D1', { hostname: 'custom-host-name' });
// default hostname is `http://127.0.0.1:8787`
return resolve(event);
};
- Not started
- Partially implemented
- Complete
import { createD1 } from 'cf-workers-proxy';
| Function |
Status |
prepare() |
|
batch() |
|
dump() |
|
exec() |
|
| Function |
Status |
first() |
|
run() |
|
all() |
|
raw() |
|
bind() |
|
import { createServiceBinding } from 'cf-workers-proxy';
| Function |
Status |
fetch() |
|
connect() |
|
import { createKV } from 'cf-workers-proxy';
| Function |
Status |
put() |
|
get() |
|
getWithMetadata() |
|
delete() |
|
list() |
|
// file: app.d.ts
namespace App {
interface Platform {
context: {
waitUntil(promise: Promise<any>): void;
};
}
}
// file: +page.server.ts
import { waitUntil } from 'cf-workers-proxy';
export const actions = {
default: ({ locals, platform }) => {
waitUntil(async () => {}, platform?.context.waitUntil);
return { message: 'success' };
},
};

or pull request