[{"data":1,"prerenderedAt":1684},["ShallowReactive",2],{"page:\u002Fextensions\u002Fkubb-labs\u002Fplugin-client\u002Fguides\u002Fwrite-your-client":3},{"id":4,"frontmatter":5,"title":6,"heading":6,"body":7,"path":1683,"source":4},"extensions\u002Fkubb-labs\u002Fplugin-client\u002Fguides\u002Fwrite-your-client.md",{},"Write your client",{"type":8,"value":9,"toc":1675},"minimark",[10,23,28,92,107,133,174,180,184,561,596,600,607,1659,1667],[11,12,13,14,22],"p",{},"The generated functions import your module through ",[15,16,18],"a",{"href":17},"https:\u002F\u002Fkubb.dev\u002Fextensions\u002Fkubb-labs\u002Fplugin-client\u002Foptions#importpath",[19,20,21],"code",{},"importPath",". That module is the only runtime code the generated functions call, and you own it.",[24,25,27],"h2",{"id":26},"required-exports","Required exports",[29,30,31,47],"table",{},[32,33,34],"thead",{},[35,36,37,41,44],"tr",{},[38,39,40],"th",{},"Export",[38,42,43],{},"Kind",[38,45,46],{},"Purpose",[48,49,50,67,80],"tbody",{},[35,51,52,58,61],{},[53,54,55],"td",{},[19,56,57],{},"client",[53,59,60],{},"function",[53,62,63,64,66],{},"Sends the request. Every generated function calls it, unless a call passes its own ",[19,65,57],{},".",[35,68,69,74,77],{},[53,70,71],{},[19,72,73],{},"Options",[53,75,76],{},"type",[53,78,79],{},"The grouped options object a generated function accepts.",[35,81,82,87,89],{},[53,83,84],{},[19,85,86],{},"RequestResult",[53,88,76],{},[53,90,91],{},"What a generated function resolves to.",[11,93,94,95,98,99,102,103,106],{},"If your spec has server-sent event operations, also export ",[19,96,97],{},"toEventStream"," and the ",[19,100,101],{},"EventStreamResult"," and ",[19,104,105],{},"SuccessOf"," types.",[11,108,109,110,113,114,113,117,120,121,124,125,128,129,132],{},"The query plugins (",[19,111,112],{},"@kubb\u002Fplugin-react-query",", ",[19,115,116],{},"@kubb\u002Fplugin-vue-query",[19,118,119],{},"@kubb\u002Fplugin-swr",") and ",[19,122,123],{},"@kubb\u002Fplugin-mcp"," call the generated functions with ",[19,126,127],{},"throwOnError: true"," and read ",[19,130,131],{},"data"," off the result. The query plugins also import two more types from your module:",[29,134,135,145],{},[32,136,137],{},[35,138,139,141,143],{},[38,140,40],{},[38,142,43],{},[38,144,46],{},[48,146,147,162],{},[35,148,149,154,156],{},[53,150,151],{},[19,152,153],{},"RequestConfig",[53,155,76],{},[53,157,158,159,161],{},"The per-call ",[19,160,57],{}," options a hook accepts, minus the request fields.",[35,163,164,169,171],{},[53,165,166],{},[19,167,168],{},"ResponseErrorConfig",[53,170,76],{},[53,172,173],{},"The error type of a failed hook, given the spec's error type.",[11,175,176,177,179],{},"With a relative ",[19,178,21],{},", the hooks resolve it from the generated operation file, so one path serves both.",[24,181,183],{"id":182},"what-a-generated-function-looks-like","What a generated function looks like",[185,186,190],"pre",{"language":187,"code":188,"class":189},"typescript","import type { Options, RequestResult } from '..\u002F..\u002F..\u002Fclient'\nimport type { GetPetByIdOptions, GetPetByIdResponses } from '..\u002F..\u002Fmodels\u002Fpet\u002FGetPetById'\nimport { client } from '..\u002F..\u002F..\u002Fclient'\n\nexport function getPetById\u003CThrowOnError extends boolean = true>(\n  options: Options\u003CGetPetByIdOptions, ThrowOnError>,\n): Promise\u003CRequestResult\u003CGetPetByIdResponses, ThrowOnError>> {\n  const { client: request = client, ...config } = options\n\n  return request({\n    method: 'GET',\n    url: '\u002Fpet\u002F{petId}',\n    security: [{ type: 'apiKey', name: 'api_key', in: 'header' }, { type: 'oauth2' }],\n    ...config,\n    throwOnError: config.throwOnError ?? true,\n  }) as Promise\u003CRequestResult\u003CGetPetByIdResponses, ThrowOnError>>\n}","highlights",[19,191,193,228,229,228,252,228,267,228,269,228,304,228,331,228,360,228,394,228,396,228,409,228,424,228,438,228,496,228,507,228,530,228,557],{"class":192},"language-typescript",[194,195,198,202,206,210,213,215,218,221,224],"span",{"class":196,"style":197},"line","display: inline",[194,199,201],{"style":200},"color:#d73a49;--hls-dark:#f97583","import ",[194,203,205],{"style":204},"color:#24292e;--hls-dark:#e1e4e8","type ",[194,207,209],{"style":208},"color:#005cc5;--hls-dark:#79b8ff","{ ",[194,211,73],{"style":212},"color:#6f42c1;--hls-dark:#b392f0",[194,214,113],{"style":200},[194,216,217],{"style":212},"RequestResult ",[194,219,220],{"style":208},"} ",[194,222,223],{"style":200},"from ",[194,225,227],{"style":226},"color:#032f62;--hls-dark:#9ecbff","'..\u002F..\u002F..\u002Fclient'","\n",[194,230,231,233,235,237,240,242,245,247,249],{"class":196,"style":197},[194,232,201],{"style":200},[194,234,205],{"style":204},[194,236,209],{"style":208},[194,238,239],{"style":212},"GetPetByIdOptions",[194,241,113],{"style":200},[194,243,244],{"style":212},"GetPetByIdResponses ",[194,246,220],{"style":208},[194,248,223],{"style":200},[194,250,251],{"style":226},"'..\u002F..\u002Fmodels\u002Fpet\u002FGetPetById'",[194,253,254,256,258,261,263,265],{"class":196,"style":197},[194,255,201],{"style":200},[194,257,209],{"style":208},[194,259,260],{"style":204},"client ",[194,262,220],{"style":208},[194,264,223],{"style":200},[194,266,227],{"style":226},[194,268],{"class":196,"style":197},[194,270,271,274,277,280,283,286,289,292,295,298,301],{"class":196,"style":197},[194,272,273],{"style":200},"export ",[194,275,276],{"style":200},"function ",[194,278,279],{"style":212},"getPetById",[194,281,282],{"style":200},"\u003C",[194,284,285],{"style":212},"ThrowOnError ",[194,287,288],{"style":200},"extends ",[194,290,291],{"style":212},"boolean ",[194,293,294],{"style":200},"= ",[194,296,297],{"style":208},"true",[194,299,300],{"style":200},">",[194,302,303],{"style":208},"(",[194,305,306,309,312,315,317,319,321,323,326,328],{"class":196,"style":197},[194,307,308],{"style":208},"  ",[194,310,311],{"style":204},"options",[194,313,314],{"style":204},": ",[194,316,73],{"style":212},[194,318,282],{"style":200},[194,320,239],{"style":212},[194,322,113],{"style":200},[194,324,325],{"style":212},"ThrowOnError",[194,327,300],{"style":200},[194,329,330],{"style":200},",",[194,332,333,336,338,341,343,345,347,350,352,354,357],{"class":196,"style":197},[194,334,335],{"style":208},")",[194,337,314],{"style":204},[194,339,340],{"style":212},"Promise",[194,342,282],{"style":200},[194,344,86],{"style":212},[194,346,282],{"style":200},[194,348,349],{"style":212},"GetPetByIdResponses",[194,351,113],{"style":200},[194,353,325],{"style":212},[194,355,356],{"style":200},">> ",[194,358,359],{"style":208},"{",[194,361,362,364,367,369,371,373,376,378,380,382,385,388,390,392],{"class":196,"style":197},[194,363,308],{"style":208},[194,365,366],{"style":200},"const ",[194,368,209],{"style":208},[194,370,57],{"style":208},[194,372,314],{"style":200},[194,374,375],{"style":204},"request ",[194,377,294],{"style":200},[194,379,57],{"style":204},[194,381,113],{"style":200},[194,383,384],{"style":200},"...",[194,386,387],{"style":204},"config ",[194,389,220],{"style":208},[194,391,294],{"style":200},[194,393,311],{"style":204},[194,395],{"class":196,"style":197},[194,397,398,400,403,406],{"class":196,"style":197},[194,399,308],{"style":204},[194,401,402],{"style":200},"return ",[194,404,405],{"style":212},"request",[194,407,408],{"style":208},"({",[194,410,411,414,417,419,422],{"class":196,"style":197},[194,412,413],{"style":208},"    ",[194,415,416],{"style":208},"method",[194,418,314],{"style":200},[194,420,421],{"style":226},"'GET'",[194,423,330],{"style":200},[194,425,426,428,431,433,436],{"class":196,"style":197},[194,427,413],{"style":200},[194,429,430],{"style":208},"url",[194,432,314],{"style":200},[194,434,435],{"style":226},"'\u002Fpet\u002F{petId}'",[194,437,330],{"style":200},[194,439,440,442,445,447,450,452,454,457,459,462,464,467,469,472,474,477,480,482,484,486,488,491,494],{"class":196,"style":197},[194,441,413],{"style":200},[194,443,444],{"style":208},"security",[194,446,314],{"style":200},[194,448,449],{"style":208},"[{ ",[194,451,76],{"style":208},[194,453,314],{"style":200},[194,455,456],{"style":226},"'apiKey'",[194,458,113],{"style":200},[194,460,461],{"style":208},"name",[194,463,314],{"style":200},[194,465,466],{"style":226},"'api_key'",[194,468,113],{"style":200},[194,470,471],{"style":200},"in",[194,473,314],{"style":200},[194,475,476],{"style":226},"'header' ",[194,478,479],{"style":208},"}",[194,481,113],{"style":200},[194,483,209],{"style":208},[194,485,76],{"style":208},[194,487,314],{"style":200},[194,489,490],{"style":226},"'oauth2' ",[194,492,493],{"style":208},"}]",[194,495,330],{"style":200},[194,497,498,500,502,505],{"class":196,"style":197},[194,499,413],{"style":200},[194,501,384],{"style":200},[194,503,504],{"style":204},"config",[194,506,330],{"style":200},[194,508,509,511,514,516,518,520,523,526,528],{"class":196,"style":197},[194,510,413],{"style":200},[194,512,513],{"style":208},"throwOnError",[194,515,314],{"style":200},[194,517,504],{"style":204},[194,519,66],{"style":200},[194,521,522],{"style":208},"throwOnError ",[194,524,525],{"style":200},"?? ",[194,527,297],{"style":208},[194,529,330],{"style":200},[194,531,532,534,537,540,542,544,546,548,550,552,554],{"class":196,"style":197},[194,533,308],{"style":200},[194,535,536],{"style":208},"}) ",[194,538,539],{"style":200},"as ",[194,541,340],{"style":212},[194,543,282],{"style":200},[194,545,86],{"style":212},[194,547,282],{"style":200},[194,549,349],{"style":212},[194,551,113],{"style":200},[194,553,325],{"style":212},[194,555,556],{"style":200},">>",[194,558,559],{"class":196,"style":197},[194,560,479],{"style":208},[11,562,563,564,566,567,569,570,572,573,576,577,579,580,113,583,113,586,589,590,589,593,595],{},"Your ",[19,565,57],{}," receives ",[19,568,416],{},", the ",[19,571,430],{}," template with ",[19,574,575],{},"{param}"," placeholders, ",[19,578,444],{},", the grouped ",[19,581,582],{},"path",[19,584,585],{},"query",[19,587,588],{},"headers",", and ",[19,591,592],{},"body",[19,594,513],{},". It returns a promise.",[24,597,599],{"id":598},"a-minimal-client","A minimal client",[11,601,602,603,606],{},"The client below uses ",[19,604,605],{},"fetch",". Replace the transport with the HTTP library you use.",[185,608,611],{"language":187,"filename":609,"code":610,"class":189},"src\u002Fclient.ts","export type RequestConfig = {\n  method: 'GET' | 'PUT' | 'PATCH' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD'\n  url: string\n  baseURL?: string\n  headers?: object\n  path?: object\n  query?: object\n  body?: unknown\n  signal?: AbortSignal\n  throwOnError?: boolean\n  security?: Array\u003C{ type: string; name?: string; in?: string; scopes?: Array\u003Cstring> }>\n  client?: typeof client\n}\n\ntype DataShape = { body?: unknown; headers?: unknown; path?: unknown; query?: unknown }\n\nexport type Options\u003CTData extends DataShape, ThrowOnError extends boolean = true> = Omit\u003CRequestConfig, keyof DataShape | 'url' | 'method'> &\n  TData & { throwOnError?: ThrowOnError }\n\nexport type RequestResult\u003CTResponses, ThrowOnError extends boolean = true> = ThrowOnError extends true\n  ? { data: TResponses[keyof TResponses]; error: undefined; response: Response }\n  : { data: TResponses[keyof TResponses]; error: undefined; response: Response } | { data: undefined; error: {}; response: Response }\n\n\u002F\u002F Only needed by the query plugins: what a failed hook rejects with.\nexport type ResponseErrorConfig\u003CTError = unknown> = Error & { body?: TError }\n\n\u002F\u002F Set this to your API host. `new URL()` needs an absolute URL.\nexport const settings = { baseURL: 'https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3' }\n\nexport async function client(config: RequestConfig) {\n  const path: Record\u003Cstring, unknown> = { ...config.path }\n  const url = new URL((config.baseURL ?? settings.baseURL) + config.url.replace(\u002F\\{(\\w+)\\}\u002Fg, (_, key) => encodeURIComponent(String(path[key]))))\n\n  const response = await fetch(url, {\n    method: config.method,\n    headers: config.headers as Record\u003Cstring, string>,\n    body: config.body === undefined ? undefined : JSON.stringify(config.body),\n    signal: config.signal,\n  })\n  const body = await response.json().catch(() => undefined)\n\n  if (response.ok) return { data: body, error: undefined, response }\n  if (config.throwOnError ?? true) throw new Error(`Request failed with status ${response.status}`)\n  return { data: undefined, error: body ?? { status: response.status }, response }\n}",[19,612,613,228,626,228,668,228,679,228,691,228,702,228,712,228,722,228,733,228,745,228,756,228,814,228,830,228,834,228,836,228,880,228,882,228,942,228,961,228,963,228,996,228,1043,228,1112,228,1114,228,1120,228,1154,228,1156,228,1161,228,1183,228,1185,228,1207,228,1243,228,1337,228,1339,228,1363,228,1379,228,1410,228,1457,228,1473,228,1480,228,1516,228,1518,228,1560,228,1610,228,1655],{"class":192},[194,614,615,617,619,622,624],{"class":196,"style":197},[194,616,273],{"style":200},[194,618,205],{"style":200},[194,620,621],{"style":212},"RequestConfig ",[194,623,294],{"style":200},[194,625,359],{"style":208},[194,627,628,630,632,634,637,640,643,645,648,650,653,655,658,660,663,665],{"class":196,"style":197},[194,629,308],{"style":208},[194,631,416],{"style":208},[194,633,314],{"style":200},[194,635,636],{"style":226},"'GET' ",[194,638,639],{"style":200},"| ",[194,641,642],{"style":226},"'PUT' ",[194,644,639],{"style":200},[194,646,647],{"style":226},"'PATCH' ",[194,649,639],{"style":200},[194,651,652],{"style":226},"'POST' ",[194,654,639],{"style":200},[194,656,657],{"style":226},"'DELETE' ",[194,659,639],{"style":200},[194,661,662],{"style":226},"'OPTIONS' ",[194,664,639],{"style":200},[194,666,667],{"style":226},"'HEAD'",[194,669,670,672,674,676],{"class":196,"style":197},[194,671,308],{"style":226},[194,673,430],{"style":204},[194,675,314],{"style":204},[194,677,678],{"style":212},"string",[194,680,681,683,686,689],{"class":196,"style":197},[194,682,308],{"style":212},[194,684,685],{"style":204},"baseURL",[194,687,688],{"style":204},"?: ",[194,690,678],{"style":212},[194,692,693,695,697,699],{"class":196,"style":197},[194,694,308],{"style":212},[194,696,588],{"style":204},[194,698,688],{"style":204},[194,700,701],{"style":212},"object",[194,703,704,706,708,710],{"class":196,"style":197},[194,705,308],{"style":212},[194,707,582],{"style":204},[194,709,688],{"style":204},[194,711,701],{"style":212},[194,713,714,716,718,720],{"class":196,"style":197},[194,715,308],{"style":212},[194,717,585],{"style":204},[194,719,688],{"style":204},[194,721,701],{"style":212},[194,723,724,726,728,730],{"class":196,"style":197},[194,725,308],{"style":212},[194,727,592],{"style":204},[194,729,688],{"style":204},[194,731,732],{"style":212},"unknown",[194,734,735,737,740,742],{"class":196,"style":197},[194,736,308],{"style":212},[194,738,739],{"style":204},"signal",[194,741,688],{"style":204},[194,743,744],{"style":212},"AbortSignal",[194,746,747,749,751,753],{"class":196,"style":197},[194,748,308],{"style":212},[194,750,513],{"style":204},[194,752,688],{"style":204},[194,754,755],{"style":212},"boolean",[194,757,758,760,762,764,767,769,771,773,775,777,780,782,784,786,788,790,792,794,796,799,801,803,805,807,810,812],{"class":196,"style":197},[194,759,308],{"style":212},[194,761,444],{"style":204},[194,763,688],{"style":204},[194,765,766],{"style":212},"Array",[194,768,282],{"style":200},[194,770,209],{"style":208},[194,772,76],{"style":208},[194,774,314],{"style":204},[194,776,678],{"style":212},[194,778,779],{"style":200},"; ",[194,781,461],{"style":208},[194,783,688],{"style":204},[194,785,678],{"style":212},[194,787,779],{"style":200},[194,789,471],{"style":200},[194,791,688],{"style":204},[194,793,678],{"style":212},[194,795,779],{"style":200},[194,797,798],{"style":208},"scopes",[194,800,688],{"style":204},[194,802,766],{"style":212},[194,804,282],{"style":200},[194,806,678],{"style":204},[194,808,809],{"style":200},"> ",[194,811,479],{"style":208},[194,813,300],{"style":200},[194,815,816,818,820,823,825,828],{"class":196,"style":197},[194,817,308],{"style":200},[194,819,57],{"style":204},[194,821,822],{"style":204},"?",[194,824,314],{"style":200},[194,826,827],{"style":200},"typeof ",[194,829,57],{"style":204},[194,831,832],{"class":196,"style":197},[194,833,479],{"style":208},[194,835],{"class":196,"style":197},[194,837,838,840,843,845,847,849,851,853,855,857,859,861,863,865,867,869,871,873,875,878],{"class":196,"style":197},[194,839,205],{"style":200},[194,841,842],{"style":212},"DataShape ",[194,844,294],{"style":200},[194,846,209],{"style":208},[194,848,592],{"style":208},[194,850,688],{"style":204},[194,852,732],{"style":212},[194,854,779],{"style":200},[194,856,588],{"style":208},[194,858,688],{"style":204},[194,860,732],{"style":212},[194,862,779],{"style":200},[194,864,582],{"style":208},[194,866,688],{"style":204},[194,868,732],{"style":212},[194,870,779],{"style":200},[194,872,585],{"style":208},[194,874,688],{"style":204},[194,876,877],{"style":212},"unknown ",[194,879,479],{"style":208},[194,881],{"class":196,"style":197},[194,883,884,886,888,890,892,895,897,900,902,904,906,908,910,912,915,918,920,922,924,927,929,931,934,936,939],{"class":196,"style":197},[194,885,273],{"style":200},[194,887,205],{"style":200},[194,889,73],{"style":212},[194,891,282],{"style":200},[194,893,894],{"style":212},"TData ",[194,896,288],{"style":200},[194,898,899],{"style":212},"DataShape",[194,901,113],{"style":200},[194,903,285],{"style":212},[194,905,288],{"style":200},[194,907,291],{"style":212},[194,909,294],{"style":200},[194,911,297],{"style":208},[194,913,914],{"style":200},"> = ",[194,916,917],{"style":212},"Omit",[194,919,282],{"style":200},[194,921,153],{"style":212},[194,923,113],{"style":200},[194,925,926],{"style":200},"keyof ",[194,928,842],{"style":212},[194,930,639],{"style":200},[194,932,933],{"style":226},"'url' ",[194,935,639],{"style":200},[194,937,938],{"style":226},"'method'",[194,940,941],{"style":200},"> &",[194,943,944,946,948,951,953,955,957,959],{"class":196,"style":197},[194,945,308],{"style":200},[194,947,894],{"style":212},[194,949,950],{"style":200},"& ",[194,952,209],{"style":208},[194,954,513],{"style":208},[194,956,688],{"style":204},[194,958,285],{"style":212},[194,960,479],{"style":208},[194,962],{"class":196,"style":197},[194,964,965,967,969,971,973,976,978,980,982,984,986,988,990,992,994],{"class":196,"style":197},[194,966,273],{"style":200},[194,968,205],{"style":200},[194,970,86],{"style":212},[194,972,282],{"style":200},[194,974,975],{"style":212},"TResponses",[194,977,113],{"style":200},[194,979,285],{"style":212},[194,981,288],{"style":200},[194,983,291],{"style":212},[194,985,294],{"style":200},[194,987,297],{"style":208},[194,989,914],{"style":200},[194,991,285],{"style":212},[194,993,288],{"style":200},[194,995,297],{"style":208},[194,997,998,1000,1003,1005,1007,1009,1011,1014,1016,1018,1021,1023,1026,1028,1031,1033,1036,1038,1041],{"class":196,"style":197},[194,999,308],{"style":208},[194,1001,1002],{"style":200},"? ",[194,1004,209],{"style":208},[194,1006,131],{"style":208},[194,1008,314],{"style":204},[194,1010,975],{"style":212},[194,1012,1013],{"style":208},"[",[194,1015,926],{"style":200},[194,1017,975],{"style":212},[194,1019,1020],{"style":208},"]",[194,1022,779],{"style":200},[194,1024,1025],{"style":208},"error",[194,1027,314],{"style":200},[194,1029,1030],{"style":208},"undefined",[194,1032,779],{"style":200},[194,1034,1035],{"style":208},"response",[194,1037,314],{"style":204},[194,1039,1040],{"style":212},"Response ",[194,1042,479],{"style":208},[194,1044,1045,1047,1049,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097,1099,1102,1104,1106,1108,1110],{"class":196,"style":197},[194,1046,308],{"style":208},[194,1048,314],{"style":200},[194,1050,209],{"style":208},[194,1052,131],{"style":208},[194,1054,314],{"style":204},[194,1056,975],{"style":212},[194,1058,1013],{"style":208},[194,1060,926],{"style":200},[194,1062,975],{"style":212},[194,1064,1020],{"style":208},[194,1066,779],{"style":200},[194,1068,1025],{"style":208},[194,1070,314],{"style":200},[194,1072,1030],{"style":208},[194,1074,779],{"style":200},[194,1076,1035],{"style":208},[194,1078,314],{"style":204},[194,1080,1040],{"style":212},[194,1082,220],{"style":208},[194,1084,639],{"style":200},[194,1086,209],{"style":208},[194,1088,131],{"style":208},[194,1090,314],{"style":200},[194,1092,1030],{"style":208},[194,1094,779],{"style":200},[194,1096,1025],{"style":208},[194,1098,314],{"style":200},[194,1100,1101],{"style":208},"{}",[194,1103,779],{"style":200},[194,1105,1035],{"style":208},[194,1107,314],{"style":204},[194,1109,1040],{"style":212},[194,1111,479],{"style":208},[194,1113],{"class":196,"style":197},[194,1115,1116],{"class":196,"style":197},[194,1117,1119],{"style":1118},"color:#6a737d;--hls-dark:#6a737d","\u002F\u002F Only needed by the query plugins: what a failed hook rejects with.",[194,1121,1122,1124,1126,1128,1130,1133,1135,1137,1139,1142,1144,1146,1148,1150,1152],{"class":196,"style":197},[194,1123,273],{"style":200},[194,1125,205],{"style":200},[194,1127,168],{"style":212},[194,1129,282],{"style":200},[194,1131,1132],{"style":212},"TError ",[194,1134,294],{"style":200},[194,1136,732],{"style":204},[194,1138,914],{"style":200},[194,1140,1141],{"style":212},"Error ",[194,1143,950],{"style":200},[194,1145,209],{"style":208},[194,1147,592],{"style":208},[194,1149,688],{"style":204},[194,1151,1132],{"style":212},[194,1153,479],{"style":208},[194,1155],{"class":196,"style":197},[194,1157,1158],{"class":196,"style":197},[194,1159,1160],{"style":1118},"\u002F\u002F Set this to your API host. `new URL()` needs an absolute URL.",[194,1162,1163,1165,1167,1170,1172,1174,1176,1178,1181],{"class":196,"style":197},[194,1164,273],{"style":200},[194,1166,366],{"style":200},[194,1168,1169],{"style":204},"settings ",[194,1171,294],{"style":200},[194,1173,209],{"style":208},[194,1175,685],{"style":208},[194,1177,314],{"style":200},[194,1179,1180],{"style":226},"'https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3' ",[194,1182,479],{"style":208},[194,1184],{"class":196,"style":197},[194,1186,1187,1189,1192,1194,1196,1198,1200,1202,1204],{"class":196,"style":197},[194,1188,273],{"style":200},[194,1190,1191],{"style":200},"async ",[194,1193,276],{"style":200},[194,1195,57],{"style":212},[194,1197,303],{"style":208},[194,1199,504],{"style":204},[194,1201,314],{"style":204},[194,1203,153],{"style":212},[194,1205,1206],{"style":208},") {",[194,1208,1209,1211,1213,1215,1217,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1241],{"class":196,"style":197},[194,1210,308],{"style":208},[194,1212,366],{"style":200},[194,1214,582],{"style":204},[194,1216,314],{"style":204},[194,1218,1219],{"style":212},"Record",[194,1221,282],{"style":200},[194,1223,678],{"style":204},[194,1225,113],{"style":200},[194,1227,732],{"style":204},[194,1229,914],{"style":200},[194,1231,209],{"style":208},[194,1233,384],{"style":200},[194,1235,504],{"style":204},[194,1237,66],{"style":200},[194,1239,1240],{"style":208},"path ",[194,1242,479],{"style":208},[194,1244,1245,1247,1249,1252,1254,1257,1260,1263,1265,1267,1270,1272,1275,1277,1279,1282,1285,1287,1289,1291,1293,1296,1298,1301,1303,1305,1308,1310,1313,1315,1318,1321,1323,1326,1328,1330,1332,1334],{"class":196,"style":197},[194,1246,308],{"style":208},[194,1248,366],{"style":200},[194,1250,1251],{"style":204},"url ",[194,1253,294],{"style":200},[194,1255,1256],{"style":200},"new ",[194,1258,1259],{"style":212},"URL",[194,1261,1262],{"style":208},"((",[194,1264,504],{"style":204},[194,1266,66],{"style":200},[194,1268,1269],{"style":208},"baseURL ",[194,1271,525],{"style":200},[194,1273,1274],{"style":204},"settings",[194,1276,66],{"style":200},[194,1278,685],{"style":208},[194,1280,1281],{"style":208},") ",[194,1283,1284],{"style":200},"+ ",[194,1286,504],{"style":204},[194,1288,66],{"style":200},[194,1290,430],{"style":208},[194,1292,66],{"style":200},[194,1294,1295],{"style":212},"replace",[194,1297,303],{"style":208},[194,1299,1300],{"style":226},"\u002F\\{(\\w+)\\}\u002Fg",[194,1302,113],{"style":200},[194,1304,303],{"style":208},[194,1306,1307],{"style":208},"_",[194,1309,113],{"style":200},[194,1311,1312],{"style":204},"key",[194,1314,1281],{"style":208},[194,1316,1317],{"style":200},"=> ",[194,1319,1320],{"style":212},"encodeURIComponent",[194,1322,303],{"style":208},[194,1324,1325],{"style":212},"String",[194,1327,303],{"style":208},[194,1329,582],{"style":204},[194,1331,1013],{"style":208},[194,1333,1312],{"style":204},[194,1335,1336],{"style":208},"]))))",[194,1338],{"class":196,"style":197},[194,1340,1341,1343,1345,1348,1350,1353,1355,1357,1359,1361],{"class":196,"style":197},[194,1342,308],{"style":208},[194,1344,366],{"style":200},[194,1346,1347],{"style":204},"response ",[194,1349,294],{"style":200},[194,1351,1352],{"style":200},"await ",[194,1354,605],{"style":212},[194,1356,303],{"style":208},[194,1358,430],{"style":204},[194,1360,113],{"style":200},[194,1362,359],{"style":208},[194,1364,1365,1367,1369,1371,1373,1375,1377],{"class":196,"style":197},[194,1366,413],{"style":208},[194,1368,416],{"style":208},[194,1370,314],{"style":200},[194,1372,504],{"style":204},[194,1374,66],{"style":200},[194,1376,416],{"style":208},[194,1378,330],{"style":200},[194,1380,1381,1383,1385,1387,1389,1391,1394,1396,1398,1400,1402,1404,1406,1408],{"class":196,"style":197},[194,1382,413],{"style":200},[194,1384,588],{"style":208},[194,1386,314],{"style":200},[194,1388,504],{"style":204},[194,1390,66],{"style":200},[194,1392,1393],{"style":208},"headers ",[194,1395,539],{"style":200},[194,1397,1219],{"style":212},[194,1399,282],{"style":200},[194,1401,678],{"style":204},[194,1403,113],{"style":200},[194,1405,678],{"style":204},[194,1407,300],{"style":200},[194,1409,330],{"style":200},[194,1411,1412,1414,1416,1418,1420,1422,1425,1428,1431,1433,1435,1437,1440,1442,1445,1447,1449,1451,1453,1455],{"class":196,"style":197},[194,1413,413],{"style":200},[194,1415,592],{"style":208},[194,1417,314],{"style":200},[194,1419,504],{"style":204},[194,1421,66],{"style":200},[194,1423,1424],{"style":208},"body ",[194,1426,1427],{"style":200},"=== ",[194,1429,1430],{"style":208},"undefined ",[194,1432,1002],{"style":200},[194,1434,1430],{"style":208},[194,1436,314],{"style":204},[194,1438,1439],{"style":208},"JSON",[194,1441,66],{"style":200},[194,1443,1444],{"style":212},"stringify",[194,1446,303],{"style":208},[194,1448,504],{"style":204},[194,1450,66],{"style":200},[194,1452,592],{"style":208},[194,1454,335],{"style":208},[194,1456,330],{"style":200},[194,1458,1459,1461,1463,1465,1467,1469,1471],{"class":196,"style":197},[194,1460,413],{"style":200},[194,1462,739],{"style":208},[194,1464,314],{"style":200},[194,1466,504],{"style":204},[194,1468,66],{"style":200},[194,1470,739],{"style":208},[194,1472,330],{"style":200},[194,1474,1475,1477],{"class":196,"style":197},[194,1476,308],{"style":200},[194,1478,1479],{"style":208},"})",[194,1481,1482,1484,1486,1488,1490,1492,1494,1496,1499,1502,1504,1507,1510,1512,1514],{"class":196,"style":197},[194,1483,308],{"style":208},[194,1485,366],{"style":200},[194,1487,1424],{"style":204},[194,1489,294],{"style":200},[194,1491,1352],{"style":200},[194,1493,1035],{"style":204},[194,1495,66],{"style":200},[194,1497,1498],{"style":212},"json",[194,1500,1501],{"style":208},"()",[194,1503,66],{"style":200},[194,1505,1506],{"style":212},"catch",[194,1508,1509],{"style":208},"(() ",[194,1511,1317],{"style":200},[194,1513,1030],{"style":208},[194,1515,335],{"style":208},[194,1517],{"class":196,"style":197},[194,1519,1520,1522,1525,1527,1529,1531,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558],{"class":196,"style":197},[194,1521,308],{"style":208},[194,1523,1524],{"style":200},"if ",[194,1526,303],{"style":208},[194,1528,1035],{"style":204},[194,1530,66],{"style":200},[194,1532,1533],{"style":208},"ok",[194,1535,1281],{"style":208},[194,1537,402],{"style":200},[194,1539,209],{"style":208},[194,1541,131],{"style":208},[194,1543,314],{"style":200},[194,1545,592],{"style":204},[194,1547,113],{"style":200},[194,1549,1025],{"style":208},[194,1551,314],{"style":200},[194,1553,1030],{"style":208},[194,1555,113],{"style":200},[194,1557,1347],{"style":204},[194,1559,479],{"style":208},[194,1561,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1583,1585,1588,1590,1593,1596,1598,1600,1603,1605,1608],{"class":196,"style":197},[194,1563,308],{"style":208},[194,1565,1524],{"style":200},[194,1567,303],{"style":208},[194,1569,504],{"style":204},[194,1571,66],{"style":200},[194,1573,522],{"style":208},[194,1575,525],{"style":200},[194,1577,297],{"style":208},[194,1579,1281],{"style":208},[194,1581,1582],{"style":200},"throw ",[194,1584,1256],{"style":200},[194,1586,1587],{"style":212},"Error",[194,1589,303],{"style":208},[194,1591,1592],{"style":226},"`Request failed with status ",[194,1594,1595],{"style":204},"${",[194,1597,1035],{"style":204},[194,1599,66],{"style":200},[194,1601,1602],{"style":208},"status",[194,1604,479],{"style":204},[194,1606,1607],{"style":226},"`",[194,1609,335],{"style":208},[194,1611,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1647,1649,1651,1653],{"class":196,"style":197},[194,1613,308],{"style":208},[194,1615,402],{"style":200},[194,1617,209],{"style":208},[194,1619,131],{"style":208},[194,1621,314],{"style":200},[194,1623,1030],{"style":208},[194,1625,113],{"style":200},[194,1627,1025],{"style":208},[194,1629,314],{"style":200},[194,1631,1424],{"style":204},[194,1633,525],{"style":200},[194,1635,209],{"style":208},[194,1637,1602],{"style":208},[194,1639,314],{"style":200},[194,1641,1035],{"style":204},[194,1643,66],{"style":200},[194,1645,1646],{"style":208},"status ",[194,1648,479],{"style":208},[194,1650,113],{"style":200},[194,1652,1347],{"style":204},[194,1654,479],{"style":208},[194,1656,1657],{"class":196,"style":197},[194,1658,479],{"style":208},[11,1660,1661,1662,1666],{},"The ",[15,1663,1665],{"href":1664},"https:\u002F\u002Fgithub.com\u002Fkubb-labs\u002Fplugins\u002Ftree\u002Fmain\u002Fexamples\u002Fclient","example project"," has a fuller version with a base URL setter, query handling, and an async auth hook. The types in this sketch are minimal. Add status-aware response types when you need them.",[1668,1669,1671,1672,1674],"blockquote",{"as":1670},"tip","Kubb does not depend on retries, interceptors, or request signing. Add them to ",[19,1673,57],{}," when you need them.",{"title":1676,"searchDepth":1677,"depth":1677,"links":1678},"",5,[1679,1681,1682],{"id":26,"depth":1680,"text":27},2,{"id":182,"depth":1680,"text":183},{"id":598,"depth":1680,"text":599},"\u002Fextensions\u002Fkubb-labs\u002Fplugin-client\u002Fguides\u002Fwrite-your-client",1793747914515]