[{"data":1,"prerenderedAt":481},["ShallowReactive",2],{"page:\u002Fextensions\u002Fkubb-labs\u002Fplugin-swr":3},{"id":4,"title":5,"body":6,"description":463,"extension":471,"frontmatter":472,"heading":5,"meta":473,"navigation":474,"order":475,"path":476,"seo":477,"sitemap":478,"source":4,"stem":479,"__hash__":480},"extensions\u002Fextensions\u002Fkubb-labs\u002Fplugin-swr\u002Findex.md","SWR",{"type":7,"value":8,"toc":462},"minimark",[9,22,25,30,116,137,141,181,185,238,245,253,257,265],[10,11,12,13,17,18,21],"p",{},"The SWR plugin generates a ",[14,15,16],"code",{},"useSWR"," hook for each query and a ",[14,19,20],{},"useSWRMutation"," hook for each mutation.",[10,23,24],{},"The plugin ships no HTTP client. Each hook calls a function generated by a client plugin.",[26,27,29],"h2",{"id":28},"installation","Installation",[31,32,34,63,81,99],"code-group",{"sync":33},"package-manager",[35,36,41],"pre",{"language":37,"filename":38,"code":39,"class":40},"shell","bun","bun add -d @kubb\u002Fplugin-swr","highlights",[14,42,44],{"class":43},"language-shell",[45,46,49,53,57,60],"span",{"class":47,"style":48},"line","display: inline",[45,50,52],{"style":51},"color:#6f42c1;--hls-dark:#b392f0","bun ",[45,54,56],{"style":55},"color:#24292e;--hls-dark:#e1e4e8","add -d ",[45,58,59],{"style":55},"@",[45,61,62],{"style":55},"kubb\u002Fplugin-swr",[35,64,67],{"language":37,"filename":65,"code":66,"class":40},"pnpm","pnpm add -D @kubb\u002Fplugin-swr",[14,68,69],{"class":43},[45,70,71,74,77,79],{"class":47,"style":48},[45,72,73],{"style":51},"pnpm ",[45,75,76],{"style":55},"add -D ",[45,78,59],{"style":55},[45,80,62],{"style":55},[35,82,85],{"language":37,"filename":83,"code":84,"class":40},"npm","npm install --save-dev @kubb\u002Fplugin-swr",[14,86,87],{"class":43},[45,88,89,92,95,97],{"class":47,"style":48},[45,90,91],{"style":51},"npm ",[45,93,94],{"style":55},"install --save-dev ",[45,96,59],{"style":55},[45,98,62],{"style":55},[35,100,103],{"language":37,"filename":101,"code":102,"class":40},"yarn","yarn add -D @kubb\u002Fplugin-swr",[14,104,105],{"class":43},[45,106,107,110,112,114],{"class":47,"style":48},[45,108,109],{"style":51},"yarn ",[45,111,76],{"style":55},[45,113,59],{"style":55},[45,115,62],{"style":55},[10,117,118,119,122,123,128,129,132,133,136],{},"Or run ",[14,120,121],{},"kubb add plugin-swr"," to install the version the ",[124,125,127],"a",{"href":126},"\u002Fregistry","Kubb registry"," pins and add ",[14,130,131],{},"pluginSwr()"," to ",[14,134,135],{},"kubb.config.ts",".",[26,138,140],{"id":139},"setup","Setup",[142,143,144,171,178],"ul",{},[145,146,147,148,151,152,155,156,159,160,151,163,166,167,170],"li",{},"Add ",[14,149,150],{},"@kubb\u002Fplugin-ts",", or ",[14,153,154],{},"pluginZod({ inferred: 'codec' })"," for codec types, and a client plugin: ",[14,157,158],{},"@kubb\u002Fplugin-fetch",", ",[14,161,162],{},"@kubb\u002Fplugin-axios",[14,164,165],{},"@kubb\u002Fplugin-client",". Leave ",[14,168,169],{},"sdk"," unset on the client plugin.",[145,172,173,174,177],{},"Install ",[14,175,176],{},"swr"," 2.2 or a later v2 release in the app that uses the generated code.",[145,179,180],{},"Configure validation on the client plugin, not here.",[26,182,184],{"id":183},"options-worth-knowing","Options worth knowing",[142,186,187,201],{},[145,188,189,192,193,196,197,200],{},[14,190,191],{},"client"," picks ",[14,194,195],{},"fetch"," or ",[14,198,199],{},"axios"," when both client plugins are registered. A single client is detected automatically.",[145,202,203,206,207,210,211,214,215,159,218,159,221,159,224,227,228,206,230,233,234,237],{},[14,204,205],{},"query"," and ",[14,208,209],{},"mutation"," set which HTTP methods become queries (",[14,212,213],{},"GET",") and mutations (",[14,216,217],{},"POST",[14,219,220],{},"PUT",[14,222,223],{},"PATCH",[14,225,226],{},"DELETE","). They also set where SWR is imported from (",[14,229,176],{},[14,231,232],{},"swr\u002Fmutation","). Set either to ",[14,235,236],{},"false"," to skip those hooks.",[10,239,240,241,244],{},"The plugin does not generate ",[14,242,243],{},"useSWRInfinite"," hooks.",[10,246,247,248,252],{},"See ",[124,249,251],{"href":250},"https:\u002F\u002Fkubb.dev\u002Fextensions\u002Fkubb-labs\u002Fplugin-swr\u002Foptions","Options"," for every option and its default.",[26,254,256],{"id":255},"example","Example",[10,258,259,260,206,262,264],{},"The config below generates ",[14,261,16],{},[14,263,20],{}," hooks that call the Fetch client.",[35,266,269],{"language":267,"filename":135,"code":268,"class":40},"typescript","import { defineConfig } from 'kubb\u002Fconfig'\nimport { pluginTs } from '@kubb\u002Fplugin-ts'\nimport { pluginFetch } from '@kubb\u002Fplugin-fetch'\nimport { pluginSwr } from '@kubb\u002Fplugin-swr'\n\nexport default defineConfig({\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n  plugins: [\n    pluginTs(),\n    pluginFetch(),\n    pluginSwr(),\n  ],\n})",[14,270,272,295,296,295,312,295,328,295,344,295,346,295,360,295,377,295,401,295,413,295,426,295,437,295,448,295,457],{"class":271},"language-typescript",[45,273,274,278,282,285,288,291],{"class":47,"style":48},[45,275,277],{"style":276},"color:#d73a49;--hls-dark:#f97583","import ",[45,279,281],{"style":280},"color:#005cc5;--hls-dark:#79b8ff","{ ",[45,283,284],{"style":55},"defineConfig ",[45,286,287],{"style":280},"} ",[45,289,290],{"style":276},"from ",[45,292,294],{"style":293},"color:#032f62;--hls-dark:#9ecbff","'kubb\u002Fconfig'","\n",[45,297,298,300,302,305,307,309],{"class":47,"style":48},[45,299,277],{"style":276},[45,301,281],{"style":280},[45,303,304],{"style":55},"pluginTs ",[45,306,287],{"style":280},[45,308,290],{"style":276},[45,310,311],{"style":293},"'@kubb\u002Fplugin-ts'",[45,313,314,316,318,321,323,325],{"class":47,"style":48},[45,315,277],{"style":276},[45,317,281],{"style":280},[45,319,320],{"style":55},"pluginFetch ",[45,322,287],{"style":280},[45,324,290],{"style":276},[45,326,327],{"style":293},"'@kubb\u002Fplugin-fetch'",[45,329,330,332,334,337,339,341],{"class":47,"style":48},[45,331,277],{"style":276},[45,333,281],{"style":280},[45,335,336],{"style":55},"pluginSwr ",[45,338,287],{"style":280},[45,340,290],{"style":276},[45,342,343],{"style":293},"'@kubb\u002Fplugin-swr'",[45,345],{"class":47,"style":48},[45,347,348,351,354,357],{"class":47,"style":48},[45,349,350],{"style":276},"export ",[45,352,353],{"style":276},"default ",[45,355,356],{"style":51},"defineConfig",[45,358,359],{"style":280},"({",[45,361,362,365,368,371,374],{"class":47,"style":48},[45,363,364],{"style":280},"  ",[45,366,367],{"style":280},"input",[45,369,370],{"style":276},": ",[45,372,373],{"style":293},"'.\u002FpetStore.yaml'",[45,375,376],{"style":276},",",[45,378,379,381,384,386,388,391,393,396,399],{"class":47,"style":48},[45,380,364],{"style":276},[45,382,383],{"style":280},"output",[45,385,370],{"style":276},[45,387,281],{"style":280},[45,389,390],{"style":280},"path",[45,392,370],{"style":276},[45,394,395],{"style":293},"'.\u002Fsrc\u002Fgen' ",[45,397,398],{"style":280},"}",[45,400,376],{"style":276},[45,402,403,405,408,410],{"class":47,"style":48},[45,404,364],{"style":276},[45,406,407],{"style":280},"plugins",[45,409,370],{"style":276},[45,411,412],{"style":280},"[",[45,414,415,418,421,424],{"class":47,"style":48},[45,416,417],{"style":280},"    ",[45,419,420],{"style":51},"pluginTs",[45,422,423],{"style":280},"()",[45,425,376],{"style":276},[45,427,428,430,433,435],{"class":47,"style":48},[45,429,417],{"style":276},[45,431,432],{"style":51},"pluginFetch",[45,434,423],{"style":280},[45,436,376],{"style":276},[45,438,439,441,444,446],{"class":47,"style":48},[45,440,417],{"style":276},[45,442,443],{"style":51},"pluginSwr",[45,445,423],{"style":280},[45,447,376],{"style":276},[45,449,450,452,455],{"class":47,"style":48},[45,451,364],{"style":276},[45,453,454],{"style":280},"]",[45,456,376],{"style":276},[45,458,459],{"class":47,"style":48},[45,460,461],{"style":280},"})",{"title":463,"searchDepth":464,"depth":464,"links":465},"",5,[466,468,469,470],{"id":28,"depth":467,"text":29},2,{"id":139,"depth":467,"text":140},{"id":183,"depth":467,"text":184},{"id":255,"depth":467,"text":256},"md",{},{},true,null,"\u002Fextensions\u002Fkubb-labs\u002Fplugin-swr",{"title":5},{"loc":476},"extensions\u002Fkubb-labs\u002Fplugin-swr\u002Findex","-QzEW6sDKzh3fNGbQVVIhxQjwXhS_uz1WfblbE3ZIrM",1793130135972]