[{"data":1,"prerenderedAt":390},["ShallowReactive",2],{"navigation_docs":3,"diagnostic-content-NUXT0040":44},[4,8,12,16,20,24,28,32,36,40],{"title":5,"path":6,"stem":7},"CLI","\u002Fcli","1.cli",{"title":9,"path":10,"stem":11},"Nuxt","\u002Fnuxt","2.nuxt",{"title":13,"path":14,"stem":15},"Vue","\u002Fvue","3.vue",{"title":17,"path":18,"stem":19},"Vite","\u002Fvite","4.vite",{"title":21,"path":22,"stem":23},"Nitro","\u002Fnitro","5.nitro",{"title":25,"path":26,"stem":27},"TypeScript","\u002Ftypescript","6.typescript",{"title":29,"path":30,"stem":31},"shadcn","\u002Fshadcn","7.shadcn",{"title":33,"path":34,"stem":35},"Package","\u002Fpackage","8.package",{"title":37,"path":38,"stem":39},"Extending Doctor","\u002Fextending","9.extending",{"title":41,"path":42,"stem":43},"Pinia","\u002Fpinia","9.pinia",{"id":45,"title":46,"body":47,"category":53,"code":380,"description":381,"docsUrl":54,"extension":382,"fix":77,"framework":383,"meta":384,"navigation":385,"pack":56,"path":386,"ruleId":57,"rulePath":58,"seo":387,"severity":59,"source":60,"sourceUrl":61,"stem":388,"why":70,"__hash__":389},"diagnostics\u002Fdiagnostics\u002FNUXT0040.md","NUXT0040: Keep useFetch lifecycle callbacks replay-safe",{"type":48,"value":49,"toc":370},"minimark",[50,62,67,71,75,78,82,87,90,214,217,306,310,313,338,342,354,358,366],[51,52],"rule-metadata",{"category":53,"docsUrl":54,"fix":55,"pack":56,"ruleId":57,"rulePath":58,"severity":59,"source":60,"sourceUrl":61},"fetching","https:\u002F\u002Fnuxt.com\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch#usage","suggestion","vite-doctor\u002Fnuxt","nuxt\u002Fno-mutation-toast-in-usefetch-callback","\u002Fnuxt\u002Frules\u002Ffetching\u002Fno-mutation-toast-in-usefetch-callback","warn","src\u002Frule-packs\u002Fnuxt\u002Frules\u002Fnuxt\u002Fno-mutation-toast-in-usefetch-callback.ts","https:\u002F\u002Fgithub.com\u002Fonmax\u002Fvite-doctor\u002Fblob\u002Fmain\u002Fsrc\u002Frule-packs\u002Fnuxt\u002Frules\u002Fnuxt\u002Fno-mutation-toast-in-usefetch-callback.ts",[63,64,66],"h2",{"id":65},"why-it-happens","Why it happens",[68,69,70],"p",{},"Nuxt data fetching relies on stable keys, payload serialization, and request context. Bypassing those contracts can duplicate requests or lose SSR data.",[63,72,74],{"id":73},"fix","Fix",[68,76,77],{},"Remove mutation toast in useFetch callback, or move it to the Nuxt runtime\u002FAPI that owns that behavior.",[63,79,81],{"id":80},"example","Example",[83,84,86],"h3",{"id":85},"move-callback-effects-into-actions","Move callback effects into actions",[68,88,89],{},"Before",[91,92,97],"pre",{"className":93,"code":94,"language":95,"meta":96,"style":96},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","await useFetch('\u002Fapi\u002Forders', {\n  method: 'POST',\n  onResponse() {\n    toast.add({ title: 'Saved' })\n  },\n})\n","ts","",[98,99,100,133,154,165,200,206],"code",{"__ignoreMap":96},[101,102,105,109,113,117,121,125,127,130],"span",{"class":103,"line":104},"line",1,[101,106,108],{"class":107},"s7zQu","await",[101,110,112],{"class":111},"s2Zo4"," useFetch",[101,114,116],{"class":115},"sTEyZ","(",[101,118,120],{"class":119},"sMK4o","'",[101,122,124],{"class":123},"sfazB","\u002Fapi\u002Forders",[101,126,120],{"class":119},[101,128,129],{"class":119},",",[101,131,132],{"class":119}," {\n",[101,134,136,140,143,146,149,151],{"class":103,"line":135},2,[101,137,139],{"class":138},"swJcz","  method",[101,141,142],{"class":119},":",[101,144,145],{"class":119}," '",[101,147,148],{"class":123},"POST",[101,150,120],{"class":119},[101,152,153],{"class":119},",\n",[101,155,157,160,163],{"class":103,"line":156},3,[101,158,159],{"class":138},"  onResponse",[101,161,162],{"class":119},"()",[101,164,132],{"class":119},[101,166,168,171,174,177,179,182,185,187,189,192,194,197],{"class":103,"line":167},4,[101,169,170],{"class":115},"    toast",[101,172,173],{"class":119},".",[101,175,176],{"class":111},"add",[101,178,116],{"class":138},[101,180,181],{"class":119},"{",[101,183,184],{"class":138}," title",[101,186,142],{"class":119},[101,188,145],{"class":119},[101,190,191],{"class":123},"Saved",[101,193,120],{"class":119},[101,195,196],{"class":119}," }",[101,198,199],{"class":138},")\n",[101,201,203],{"class":103,"line":202},5,[101,204,205],{"class":119},"  },\n",[101,207,209,212],{"class":103,"line":208},6,[101,210,211],{"class":119},"}",[101,213,199],{"class":115},[68,215,216],{},"After",[91,218,220],{"className":93,"code":219,"language":95,"meta":96,"style":96},"async function saveOrder() {\n  await $fetch('\u002Fapi\u002Forders', { method: 'POST' })\n  toast.add({ title: 'Saved' })\n}\n",[98,221,222,238,274,301],{"__ignoreMap":96},[101,223,224,228,231,234,236],{"class":103,"line":104},[101,225,227],{"class":226},"spNyl","async",[101,229,230],{"class":226}," function",[101,232,233],{"class":111}," saveOrder",[101,235,162],{"class":119},[101,237,132],{"class":119},[101,239,240,243,246,248,250,252,254,256,259,262,264,266,268,270,272],{"class":103,"line":135},[101,241,242],{"class":107},"  await",[101,244,245],{"class":111}," $fetch",[101,247,116],{"class":138},[101,249,120],{"class":119},[101,251,124],{"class":123},[101,253,120],{"class":119},[101,255,129],{"class":119},[101,257,258],{"class":119}," {",[101,260,261],{"class":138}," method",[101,263,142],{"class":119},[101,265,145],{"class":119},[101,267,148],{"class":123},[101,269,120],{"class":119},[101,271,196],{"class":119},[101,273,199],{"class":138},[101,275,276,279,281,283,285,287,289,291,293,295,297,299],{"class":103,"line":156},[101,277,278],{"class":115},"  toast",[101,280,173],{"class":119},[101,282,176],{"class":111},[101,284,116],{"class":138},[101,286,181],{"class":119},[101,288,184],{"class":138},[101,290,142],{"class":119},[101,292,145],{"class":119},[101,294,191],{"class":123},[101,296,120],{"class":119},[101,298,196],{"class":119},[101,300,199],{"class":138},[101,302,303],{"class":103,"line":167},[101,304,305],{"class":119},"}\n",[63,307,309],{"id":308},"verify-the-fix","Verify the fix",[68,311,312],{},"Run only this rule after editing so the report stays focused on the diagnostic you are closing:",[91,314,318],{"className":315,"code":316,"language":317,"meta":96,"style":96},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm nuxt doctor --rules nuxt\u002Fno-mutation-toast-in-usefetch-callback\n","bash",[98,319,320],{"__ignoreMap":96},[101,321,322,326,329,332,335],{"class":103,"line":104},[101,323,325],{"class":324},"sBMFI","pnpm",[101,327,328],{"class":123}," nuxt",[101,330,331],{"class":123}," doctor",[101,333,334],{"class":123}," --rules",[101,336,337],{"class":123}," nuxt\u002Fno-mutation-toast-in-usefetch-callback\n",[63,339,341],{"id":340},"useful-links","Useful links",[343,344,345],"ul",{},[346,347,348],"li",{},[349,350,353],"a",{"href":54,"rel":351},[352],"nofollow","Upstream docs",[63,355,357],{"id":356},"related-rule","Related rule",[343,359,360],{},[346,361,362],{},[349,363,364],{"href":58},[98,365,57],{},[367,368,369],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":96,"searchDepth":135,"depth":135,"links":371},[372,373,374,377,378,379],{"id":65,"depth":135,"text":66},{"id":73,"depth":135,"text":74},{"id":80,"depth":135,"text":81,"children":375},[376],{"id":85,"depth":156,"text":86},{"id":308,"depth":135,"text":309},{"id":340,"depth":135,"text":341},{"id":356,"depth":135,"text":357},"NUXT0040","Flags mutation toast in useFetch callback in Nuxt project code before it leaks into runtime behavior.","md","nuxt",{},true,"\u002Fdiagnostics\u002Fnuxt0040",{"title":46,"description":381},"diagnostics\u002FNUXT0040","upLJRc70i7ZeBQCX7z83ttcYDKivvsrpUgtpecg1a_8",1791309495274]