How toGenerate Cloudflare environment type with wrangler
If you're using wrangler
to build app deployed to Cloudflare, there's a handy command this tool gives you that can generate a .d.ts
file with all your .dev.vars
and bindings configured in wrangler.toml
.
wrangler types --env-interface RuntimeEnv ./types/cf.d.ts
The --env-interface RuntimeEnv
option will set the name of the interface created and ./types/cf.d.ts
is the file where it should be saved.
Let's say you have a .dev.vars
like this:
.dev.vars SESSION_SECRET="s3cr3t"
And a wrangler.toml
like this:
name = "app-name"
[[d1_databases]]
binding = "DB"
database_name = "YOUR DATABASE NAME"
database_id = "YOUR DATABASE ID"
After running the command you will get this file:
types/cf.d.ts // Generated by Wrangler on <DATE> // by running `wrangler types --env-interface RuntimeEnv ./types/cf.d.ts` interface RuntimeEnv { SESSION_SECRET: string; DB: D1Database; }
This can then be used inside your app to type what your Cloudflare Pages and Workers receive from the context.