cloudflare / cloudflare/cloudflare-typescript
why does dns.records.edit() require a full record instead of a Partial<> ?
- Dominant language
- TypeScript
- Stars
- 814
- Forks
- 190
- Avg merge
- 1h 38m
- Merged PRs (30d)
- 2
Description
### Confirm this is a TypeScript library issue and not an underlying Cloudflare API issue
- [x] This is an issue with the TypeScript library
### Describe the bug
Sorry if this is a stupid question but doesn't that defeat the purpose of using PATCH ?
I could be confused but it appears the actual API endpoint accepts partial updates e..g. { content: new_ip } but the API definition requires ttl, name, and type making edit and update synonyms.
If the actual API endpoint accepts partials then the API should allow them too e.g. RecordEditParams should be defined with ?: for everything except zoneid: rather than being an exact duplicate of RecordUpdateParams.
If I am confused and the partial update is forcing missing settings to some default then the API is currently correct.
Note: Code generation looks correct. It is the actual spec I am questioning.
### To Reproduce
Reproduction is simple. This fragment appears to work fine in a production worker:
```
await creds.cloudflare.dns.records.edit(dnsid, {
zone_id: creds.zoneid,
content: ip,
})
```
But when compiled with tsc it refuses to build due to the missing mandatory fields.
### Code snippets
```TypeScript
```
### OS
Ubuntu 22.04
### Runtime version
Typescript 7.0.2
### Library version
cloudflare 7.0.0 cloudflare/types 7.0.1 cloudflare/workers-types 5.20260801.1
Contributor guide
Research direction
Start by inspecting the API definition for DNS record edit and compare RecordEditParams with RecordUpdateParams. Verify whether the endpoint accepts a partial payload like the reproduction's zone_id and content only. Done means the TypeScript types accurately reflect the endpoint's required fields, with a regression check for the demonstrated edit call if the API supports partial updates.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 67/100