hyperweb-io / hyperweb-io/ts-codegen
Weird type issue
- Dominant language
- TypeScript
- Stars
- 126
- Forks
- 31
- Avg merge
- 19m
- Merged PRs (30d)
- 2
Description
While generating the schema for a query message that returns `Option`, ts-codegen fails with:
```
contracts/cw-vesting/CwVesting.client.ts:25:31 - error TS2552: Cannot find name 'NullableDuration'. Did you mean 'Nullable_Duration'?
25 vestDuration: () => Promise;
~~~~~~~~~~~~~~~~
contracts/cw-vesting/CwVesting.client.ts:81:36 - error TS2552: Cannot find name 'NullableDuration'. Did you mean 'Nullable_Duration'?
81 vestDuration = async (): Promise => {
~~~~~~~~~~~~~~~~
```
It appears that it generates a type `Nullable_Duration` that is correct, and the uses a different one `NullableDuration` as the query return value. [This CI job](https://github.com/DA0-DA0/dao-contracts/actions/runs/4358741481/jobs/7619698495) has a branch on which this fails. You can reproduce the issue by checking out that branch and running ts-codegen with `just gen`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Check out the linked reproduction branch and run `just gen` to inspect the generated `contracts/cw-vesting/CwVesting.client.ts`. Trace how the `Option` query return type becomes `Nullable_Duration` while its uses become `NullableDuration`; done means the generated client consistently references the declared type and compiles without the reported TypeScript errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100