Nuxt · NUXT0042
Do not register write-like POST requests as async data
Finds write-like POST Nuxt async-data requests that can replay.
nuxt/post-fetch-requires-readonly-markersrc/rule-packs/nuxt/rules/nuxt/post-fetch-requires-readonly-marker.ts Upstream docs Run this rule
pnpm nuxt doctor --rules nuxt/post-fetch-requires-readonly-marker
Why it matters
Nuxt async data can be replayed by refreshes, hydration, and watch sources. Write-like POST endpoints should not be registered as replayable data.
Recommended fix
Move writes to $fetch() event handlers. Read-like POST query endpoints are ignored by default; configure readonlyPaths for read-only endpoints that look write-like.
Useful links
Example
Move write-like POST work out of async data
Before
const { data } = await useFetch('/api/jobs/trigger', {
method: 'POST',
body,
})
After
async function triggerJob() {
await $fetch('/api/jobs/trigger', {
method: 'POST',
body,
})
}