cloudflare / cloudflare/workers-sdk
🐛 BUG: `wrangler types` + DurableObjects + a build process + typescript
- Dominant language
- TypeScript
- Stars
- 4.5k
- Forks
- 1.5k
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 186
Description
### Which Cloudflare product(s) does this pertain to?
Wrangler
### What version(s) of the tool(s) are you using?
3.80.0 [wrangler]
### What version of Node are you using?
20
### What operating system and version are you using?
Mac Sequoia
### Describe the Bug
I have a remix app using wrangler+static assets, and am also using a DurableObject. I have the DurableObject defined in my `wrangler.toml`, and then run `wrangler types` to generate `worker-configuration.d.ts`. That ends up looking something like this:
```
interface Env {
DO: DurableObjectNamespace;
}
```
That's great, except, `Env["DO"]` actually is typed as `DurableObjectNamespace` because `import("./build/index")` is reading from my built javascript file and has no types. If I manually change that to `import("./server.ts").DrizzleTestDO` then typing works fine, but the change would be erased the next time I run `wrangler types`.
### Expected behavior
I'm not sure what the right thing to do here is. As a workaround, I am running `wrangler types --env-namespace EnvBeforeFixup`, and then in my `env.d.ts` overriding with the appropriate type:
```
interface Env extends EnvBeforeFixup {
DO: DurableObjectNamespace;
}
```
This lets me have the correct type and not worry about overwriting it when I run `npm run typegen` in the future.
Example repo here: https://github.com/zwily/test-drizzle-durable-objects
### Steps to reproduce
Please provide the following:
- A minimal working subset of your worker code
- A minimal working subset of your `wrangler.toml`
- Commands used to start your local dev server, including custom env and cli args
- Steps to be performed in the browser, curl commands, or a test we can run that reliably fails (at least a percent of the time)
A git repo we can clone and run a test suite on, or which has a README with step-by-step instructions, is even better. In this case, please use the field below to provide a link to the minimal repro.
### Please provide a link to a minimal reproduction
https://github.com/zwily/test-drizzle-durable-objects
### Please provide any relevant error logs
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.