[{"data":1,"prerenderedAt":528},["ShallowReactive",2],{"page:\u002Fextensions\u002Fkubb-labs\u002Fplugin-fetch\u002Fguides\u002Fbase-url":3},{"id":4,"frontmatter":5,"title":6,"heading":6,"body":7,"path":527,"source":4},"extensions\u002Fkubb-labs\u002Fplugin-fetch\u002Fguides\u002Fbase-url.md",{},"Set the base URL",{"type":8,"value":9,"toc":520},"minimark",[10,19,35,40,54,240,251,255,262,321,327,439,444,508],[11,12,13,14,18],"p",{},"Set ",[15,16,17],"code",{},"baseURL"," on the client plugin or on the generated client.",[20,21,23,24,27,28,31,32,34],"blockquote",{"as":22},"note","OpenAPI server URLs do not configure the client automatically. The ",[15,25,26],{},"server"," option of ",[15,29,30],{},"adapterOas"," only sets document metadata. It does not set ",[15,33,17],{},".",[36,37,39],"h2",{"id":38},"use-the-baseurl-option","Use the baseURL option",[11,41,42,43,45,46,49,50,53],{},"Pass ",[15,44,17],{}," to ",[15,47,48],{},"pluginFetch"," to set the generated default. Add ",[15,51,52],{},"pluginTs"," for the operation types.",[55,56,61],"pre",{"language":57,"filename":58,"code":59,"class":60},"typescript","kubb.config.ts","import { defineConfig } from 'kubb\u002Fconfig'\nimport { pluginTs } from '@kubb\u002Fplugin-ts'\nimport { pluginFetch } from '@kubb\u002Fplugin-fetch'\n\nexport default defineConfig({\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n  plugins: [\n    pluginTs(),\n    pluginFetch({ baseURL: 'https:\u002F\u002Flocalhost:8080\u002Fapi\u002Fv1' }),\n  ],\n})","highlights",[15,62,64,91,92,91,108,91,124,91,126,91,141,91,158,91,182,91,194,91,206,91,227,91,236],{"class":63},"language-typescript",[65,66,69,73,77,81,84,87],"span",{"class":67,"style":68},"line","display: inline",[65,70,72],{"style":71},"color:#d73a49;--hls-dark:#f97583","import ",[65,74,76],{"style":75},"color:#005cc5;--hls-dark:#79b8ff","{ ",[65,78,80],{"style":79},"color:#24292e;--hls-dark:#e1e4e8","defineConfig ",[65,82,83],{"style":75},"} ",[65,85,86],{"style":71},"from ",[65,88,90],{"style":89},"color:#032f62;--hls-dark:#9ecbff","'kubb\u002Fconfig'","\n",[65,93,94,96,98,101,103,105],{"class":67,"style":68},[65,95,72],{"style":71},[65,97,76],{"style":75},[65,99,100],{"style":79},"pluginTs ",[65,102,83],{"style":75},[65,104,86],{"style":71},[65,106,107],{"style":89},"'@kubb\u002Fplugin-ts'",[65,109,110,112,114,117,119,121],{"class":67,"style":68},[65,111,72],{"style":71},[65,113,76],{"style":75},[65,115,116],{"style":79},"pluginFetch ",[65,118,83],{"style":75},[65,120,86],{"style":71},[65,122,123],{"style":89},"'@kubb\u002Fplugin-fetch'",[65,125],{"class":67,"style":68},[65,127,128,131,134,138],{"class":67,"style":68},[65,129,130],{"style":71},"export ",[65,132,133],{"style":71},"default ",[65,135,137],{"style":136},"color:#6f42c1;--hls-dark:#b392f0","defineConfig",[65,139,140],{"style":75},"({",[65,142,143,146,149,152,155],{"class":67,"style":68},[65,144,145],{"style":75},"  ",[65,147,148],{"style":75},"input",[65,150,151],{"style":71},": ",[65,153,154],{"style":89},"'.\u002FpetStore.yaml'",[65,156,157],{"style":71},",",[65,159,160,162,165,167,169,172,174,177,180],{"class":67,"style":68},[65,161,145],{"style":71},[65,163,164],{"style":75},"output",[65,166,151],{"style":71},[65,168,76],{"style":75},[65,170,171],{"style":75},"path",[65,173,151],{"style":71},[65,175,176],{"style":89},"'.\u002Fsrc\u002Fgen' ",[65,178,179],{"style":75},"}",[65,181,157],{"style":71},[65,183,184,186,189,191],{"class":67,"style":68},[65,185,145],{"style":71},[65,187,188],{"style":75},"plugins",[65,190,151],{"style":71},[65,192,193],{"style":75},"[",[65,195,196,199,201,204],{"class":67,"style":68},[65,197,198],{"style":75},"    ",[65,200,52],{"style":136},[65,202,203],{"style":75},"()",[65,205,157],{"style":71},[65,207,208,210,212,215,217,219,222,225],{"class":67,"style":68},[65,209,198],{"style":71},[65,211,48],{"style":136},[65,213,214],{"style":75},"({ ",[65,216,17],{"style":75},[65,218,151],{"style":71},[65,220,221],{"style":89},"'https:\u002F\u002Flocalhost:8080\u002Fapi\u002Fv1' ",[65,223,224],{"style":75},"})",[65,226,157],{"style":71},[65,228,229,231,234],{"class":67,"style":68},[65,230,145],{"style":71},[65,232,233],{"style":75},"]",[65,235,157],{"style":71},[65,237,238],{"class":67,"style":68},[65,239,224],{"style":75},[11,241,242,243,246,247,250],{},"A value containing a ",[15,244,245],{},"${...}"," interpolation stays dynamic. The plugin emits it as a template literal in the generated client config, so ",[15,248,249],{},"baseURL: '${process.env.API_URL}'"," reads the environment variable when the app runs instead of baking in the build-time value.",[36,252,254],{"id":253},"set-it-at-runtime","Set it at runtime",[11,256,257,258,261],{},"Use ",[15,259,260],{},"client.setConfig"," to configure all operations at startup:",[55,263,265],{"language":57,"code":264,"class":60},"import { client } from '.\u002Fgen\u002F.kubb\u002Fclient'\n\nclient.setConfig({ baseURL: import.meta.env.VITE_API_URL })",[15,266,267,91,283,91,285],{"class":63},[65,268,269,271,273,276,278,280],{"class":67,"style":68},[65,270,72],{"style":71},[65,272,76],{"style":75},[65,274,275],{"style":79},"client ",[65,277,83],{"style":75},[65,279,86],{"style":71},[65,281,282],{"style":89},"'.\u002Fgen\u002F.kubb\u002Fclient'",[65,284],{"class":67,"style":68},[65,286,287,290,292,295,297,299,301,304,306,309,311,314,316,319],{"class":67,"style":68},[65,288,289],{"style":79},"client",[65,291,34],{"style":71},[65,293,294],{"style":136},"setConfig",[65,296,214],{"style":75},[65,298,17],{"style":75},[65,300,151],{"style":71},[65,302,303],{"style":71},"import",[65,305,34],{"style":71},[65,307,308],{"style":75},"meta",[65,310,34],{"style":71},[65,312,313],{"style":75},"env",[65,315,34],{"style":71},[65,317,318],{"style":75},"VITE_API_URL ",[65,320,224],{"style":75},[11,322,257,323,326],{},[15,324,325],{},"createClient"," for an isolated client, then pass it to an operation:",[55,328,330],{"language":57,"code":329,"class":60},"import { createClient } from '.\u002Fgen\u002F.kubb\u002Fclient'\nimport { getPetById } from '.\u002Fgen\u002Fclients\u002FgetPetById'\n\nconst staging = createClient({ baseURL: 'https:\u002F\u002Fstaging.petstore.swagger.io\u002Fv2' })\n\nconst { data } = await getPetById({ path: { petId: 1 }, client: staging })",[15,331,332,91,347,91,363,91,365,91,389,91,391],{"class":63},[65,333,334,336,338,341,343,345],{"class":67,"style":68},[65,335,72],{"style":71},[65,337,76],{"style":75},[65,339,340],{"style":79},"createClient ",[65,342,83],{"style":75},[65,344,86],{"style":71},[65,346,282],{"style":89},[65,348,349,351,353,356,358,360],{"class":67,"style":68},[65,350,72],{"style":71},[65,352,76],{"style":75},[65,354,355],{"style":79},"getPetById ",[65,357,83],{"style":75},[65,359,86],{"style":71},[65,361,362],{"style":89},"'.\u002Fgen\u002Fclients\u002FgetPetById'",[65,364],{"class":67,"style":68},[65,366,367,370,373,376,378,380,382,384,387],{"class":67,"style":68},[65,368,369],{"style":71},"const ",[65,371,372],{"style":79},"staging ",[65,374,375],{"style":71},"= ",[65,377,325],{"style":136},[65,379,214],{"style":75},[65,381,17],{"style":75},[65,383,151],{"style":71},[65,385,386],{"style":89},"'https:\u002F\u002Fstaging.petstore.swagger.io\u002Fv2' ",[65,388,224],{"style":75},[65,390],{"class":67,"style":68},[65,392,393,395,397,400,402,404,407,410,412,414,416,418,421,423,426,428,431,433,435,437],{"class":67,"style":68},[65,394,369],{"style":71},[65,396,76],{"style":75},[65,398,399],{"style":79},"data ",[65,401,83],{"style":75},[65,403,375],{"style":71},[65,405,406],{"style":71},"await ",[65,408,409],{"style":136},"getPetById",[65,411,214],{"style":75},[65,413,171],{"style":75},[65,415,151],{"style":71},[65,417,76],{"style":75},[65,419,420],{"style":75},"petId",[65,422,151],{"style":71},[65,424,425],{"style":75},"1 ",[65,427,179],{"style":75},[65,429,430],{"style":71},", ",[65,432,289],{"style":75},[65,434,151],{"style":71},[65,436,372],{"style":79},[65,438,224],{"style":75},[11,440,42,441,443],{},[15,442,17],{}," on a single call to override the client for that one request:",[55,445,447],{"language":57,"code":446,"class":60},"import { getPetById } from '.\u002Fgen\u002Fclients\u002FgetPetById'\n\nconst { data } = await getPetById({ path: { petId: 1 }, baseURL: 'https:\u002F\u002Flocalhost:3000' })",[15,448,449,91,463,91,465],{"class":63},[65,450,451,453,455,457,459,461],{"class":67,"style":68},[65,452,72],{"style":71},[65,454,76],{"style":75},[65,456,355],{"style":79},[65,458,83],{"style":75},[65,460,86],{"style":71},[65,462,362],{"style":89},[65,464],{"class":67,"style":68},[65,466,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,506],{"class":67,"style":68},[65,468,369],{"style":71},[65,470,76],{"style":75},[65,472,399],{"style":79},[65,474,83],{"style":75},[65,476,375],{"style":71},[65,478,406],{"style":71},[65,480,409],{"style":136},[65,482,214],{"style":75},[65,484,171],{"style":75},[65,486,151],{"style":71},[65,488,76],{"style":75},[65,490,420],{"style":75},[65,492,151],{"style":71},[65,494,425],{"style":75},[65,496,179],{"style":75},[65,498,430],{"style":71},[65,500,17],{"style":75},[65,502,151],{"style":71},[65,504,505],{"style":89},"'https:\u002F\u002Flocalhost:3000' ",[65,507,224],{"style":75},[11,509,510,511,513,514,516,517,519],{},"A ",[15,512,17],{}," set on the call wins over ",[15,515,325],{},", which wins over ",[15,518,294],{},", which wins over the build-time value.",{"title":521,"searchDepth":522,"depth":522,"links":523},"",5,[524,526],{"id":38,"depth":525,"text":39},2,{"id":253,"depth":525,"text":254},"\u002Fextensions\u002Fkubb-labs\u002Fplugin-fetch\u002Fguides\u002Fbase-url",1793647024956]