[{"data":1,"prerenderedAt":2657},["ShallowReactive",2],{"page:\u002Fdocs\u002F5.x\u002Freference\u002Fconfiguration":3},{"id":4,"title":5,"body":6,"description":2639,"extension":2640,"frontmatter":2641,"heading":5,"meta":2647,"navigation":2649,"order":2644,"path":2650,"seo":2651,"sitemap":2652,"source":2653,"stem":2654,"__hash__":2655,"hasPopups":2656},"docs\u002Fdocs\u002F5.x\u002Freference\u002Fconfiguration.md","Configuration",{"type":7,"value":8,"toc":2605},"minimark",[9,21,152,157,162,168,172,183,321,324,438,442,445,675,678,682,702,844,855,859,2601],[10,11,12,16,17,20],"p",{},[13,14,15],"code",{},"kubb.config.ts"," drives a Kubb run. The file default-exports a ",[13,18,19],{},"defineConfig"," call. Pass it an object, a function that returns one, or an array of configs.",[22,23,28],"pre",{"language":24,"meta":25,"code":26,"filename":15,"class":27},"typescript","twoslash","import { defineConfig } from 'kubb\u002Fconfig'\n\nexport default defineConfig({\n  name: 'petStore',\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n})","shiki shiki-themes github-light github-dark twoslash lsp dark:github-dark",[13,29,31,60,61,60,63,60,83,60,103,60,120,60,147],{"class":30},"language-typescript",[32,33,36,40,44,50,53,56],"span",{"class":34,"style":35},"line","display: inline",[32,37,39],{"style":38},"color:#D73A49;--shiki-dark:#F97583","import",[32,41,43],{"style":42},"color:#24292E;--shiki-dark:#E1E4E8"," { ",[32,45,46],{"style":42},[32,47,19],{"class":48,"data-popup":49},"twoslash-hover","0",[32,51,52],{"style":42}," } ",[32,54,55],{"style":38},"from",[32,57,59],{"style":58},"color:#032F62;--shiki-dark:#9ECBFF"," 'kubb\u002Fconfig'","\n",[32,62],{"class":34,"style":35},[32,64,65,68,71,75,80],{"class":34,"style":35},[32,66,67],{"style":38},"export",[32,69,70],{"style":38}," default",[32,72,74],{"style":73},"color:#6F42C1;--shiki-dark:#B392F0"," ",[32,76,77],{"style":73},[32,78,19],{"class":48,"data-popup":79},"1",[32,81,82],{"style":42},"({",[32,84,85,88,94,97,100],{"class":34,"style":35},[32,86,87],{"style":42},"  ",[32,89,90],{"style":42},[32,91,93],{"class":48,"data-popup":92},"2","name",[32,95,96],{"style":42},": ",[32,98,99],{"style":58},"'petStore'",[32,101,102],{"style":42},",",[32,104,105,107,113,115,118],{"class":34,"style":35},[32,106,87],{"style":42},[32,108,109],{"style":42},[32,110,112],{"class":48,"data-popup":111},"3","input",[32,114,96],{"style":42},[32,116,117],{"style":58},"'.\u002FpetStore.yaml'",[32,119,102],{"style":42},[32,121,122,124,130,133,139,141,144],{"class":34,"style":35},[32,123,87],{"style":42},[32,125,126],{"style":42},[32,127,129],{"class":48,"data-popup":128},"4","output",[32,131,132],{"style":42},": { ",[32,134,135],{"style":42},[32,136,138],{"class":48,"data-popup":137},"5","path",[32,140,96],{"style":42},[32,142,143],{"style":58},"'.\u002Fsrc\u002Fgen'",[32,145,146],{"style":42}," },",[32,148,149],{"class":34,"style":35},[32,150,151],{"style":42},"})",[153,154,156],"h2",{"id":155},"config-formats","Config formats",[158,159,161],"h3",{"id":160},"single-config-object","Single config object",[10,163,164,165,167],{},"Export an object as in the example above. ",[13,166,19],{}," also accepts a Promise of a config.",[158,169,171],{"id":170},"config-function","Config function",[10,173,174,175,178,179,182],{},"Pass a function when the config depends on the run context, such as ",[13,176,177],{},"watch"," or ",[13,180,181],{},"logLevel",":",[22,184,186],{"language":24,"meta":25,"code":185,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\n\nexport default defineConfig(({ watch, logLevel }) => ({\n  name: 'petStore',\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen', clean: !watch },\n}))",[13,187,188,60,205,60,207,60,246,60,261,60,276,60,316],{"class":30},[32,189,190,192,194,199,201,203],{"class":34,"style":35},[32,191,39],{"style":38},[32,193,43],{"style":42},[32,195,196],{"style":42},[32,197,19],{"class":48,"data-popup":198},"6",[32,200,52],{"style":42},[32,202,55],{"style":38},[32,204,59],{"style":58},[32,206],{"class":34,"style":35},[32,208,209,211,213,215,220,223,229,232,237,240,243],{"class":34,"style":35},[32,210,67],{"style":38},[32,212,70],{"style":38},[32,214,74],{"style":73},[32,216,217],{"style":73},[32,218,19],{"class":48,"data-popup":219},"7",[32,221,222],{"style":42},"(({ ",[32,224,226],{"style":225},"color:#E36209;--shiki-dark:#FFAB70",[32,227,177],{"class":48,"data-popup":228},"8",[32,230,231],{"style":42},", ",[32,233,234],{"style":225},[32,235,181],{"class":48,"data-popup":236},"9",[32,238,239],{"style":42}," }) ",[32,241,242],{"style":38},"=>",[32,244,245],{"style":42}," ({",[32,247,248,250,255,257,259],{"class":34,"style":35},[32,249,87],{"style":42},[32,251,252],{"style":42},[32,253,93],{"class":48,"data-popup":254},"10",[32,256,96],{"style":42},[32,258,99],{"style":58},[32,260,102],{"style":42},[32,262,263,265,270,272,274],{"class":34,"style":35},[32,264,87],{"style":42},[32,266,267],{"style":42},[32,268,112],{"class":48,"data-popup":269},"11",[32,271,96],{"style":42},[32,273,117],{"style":58},[32,275,102],{"style":42},[32,277,278,280,285,287,292,294,296,298,304,306,309,314],{"class":34,"style":35},[32,279,87],{"style":42},[32,281,282],{"style":42},[32,283,129],{"class":48,"data-popup":284},"12",[32,286,132],{"style":42},[32,288,289],{"style":42},[32,290,138],{"class":48,"data-popup":291},"13",[32,293,96],{"style":42},[32,295,143],{"style":58},[32,297,231],{"style":42},[32,299,300],{"style":42},[32,301,303],{"class":48,"data-popup":302},"14","clean",[32,305,96],{"style":42},[32,307,308],{"style":38},"!",[32,310,311],{"style":42},[32,312,177],{"class":48,"data-popup":313},"15",[32,315,146],{"style":42},[32,317,318],{"class":34,"style":35},[32,319,320],{"style":42},"}))",[10,322,323],{},"The function receives this context:",[325,326,327,344],"table",{},[328,329,330],"thead",{},[331,332,333,337,341],"tr",{},[334,335],"th",{"style":336},"text-align:right",[334,338,340],{"style":339},"text-align:left","Type",[334,342,343],{"style":339},"Description",[345,346,347,370,387,401,415],"tbody",{},[331,348,349,354,359],{},[350,351,352],"td",{"style":336},[13,353,112],{},[350,355,356],{"style":339},[13,357,358],{},"string",[350,360,361,362,365,366,369],{"style":339},"Positional input from ",[13,363,364],{},"kubb generate \u003Cinput>",". Overrides ",[13,367,368],{},"config.input"," when set.",[331,371,372,376,381],{},[350,373,374],{"style":336},[13,375,177],{},[350,377,378],{"style":339},[13,379,380],{},"boolean",[350,382,383,386],{"style":339},[13,384,385],{},"true"," in watch mode.",[331,388,389,393,398],{},[350,390,391],{"style":336},[13,392,181],{},[350,394,395],{"style":339},[13,396,397],{},"'silent' | 'info' | 'verbose'",[350,399,400],{"style":339},"Current log level.",[331,402,403,408,412],{},[350,404,405],{"style":336},[13,406,407],{},"config",[350,409,410],{"style":339},[13,411,358],{},[350,413,414],{"style":339},"Path to the config file in use.",[331,416,417,422,427],{},[350,418,419],{"style":336},[13,420,421],{},"reporters",[350,423,424],{"style":339},[13,425,426],{},"Array\u003CReporterName>",[350,428,429,430,433,434,437],{"style":339},"Reporters selected via ",[13,431,432],{},"--reporter",", overriding ",[13,435,436],{},"config.reporters",".",[158,439,441],{"id":440},"multiple-configurations-array","Multiple configurations (array)",[10,443,444],{},"Pass an array to generate from several specs in one command:",[22,446,448],{"language":24,"meta":25,"code":447,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\nimport { pluginTs } from '@kubb\u002Fplugin-ts'\n\nexport default defineConfig([\n  {\n    name: 'petStore',\n    input: '.\u002FpetStore.yaml',\n    output: { path: '.\u002Fsrc\u002Fgen\u002FpetStore' },\n    plugins: [pluginTs()],\n  },\n  {\n    name: 'stripe',\n    input: '.\u002Fstripe.yaml',\n    output: { path: '.\u002Fsrc\u002Fgen\u002Fstripe' },\n    plugins: [pluginTs()],\n  },\n])",[13,449,450,60,467,60,486,60,488,60,504,60,509,60,525,60,540,60,563,60,584,60,589,60,593,60,609,60,625,60,648,60,666,60,670],{"class":30},[32,451,452,454,456,461,463,465],{"class":34,"style":35},[32,453,39],{"style":38},[32,455,43],{"style":42},[32,457,458],{"style":42},[32,459,19],{"class":48,"data-popup":460},"16",[32,462,52],{"style":42},[32,464,55],{"style":38},[32,466,59],{"style":58},[32,468,469,471,473,479,481,483],{"class":34,"style":35},[32,470,39],{"style":38},[32,472,43],{"style":42},[32,474,475],{"style":42},[32,476,478],{"class":48,"data-popup":477},"17","pluginTs",[32,480,52],{"style":42},[32,482,55],{"style":38},[32,484,485],{"style":58}," '@kubb\u002Fplugin-ts'",[32,487],{"class":34,"style":35},[32,489,490,492,494,496,501],{"class":34,"style":35},[32,491,67],{"style":38},[32,493,70],{"style":38},[32,495,74],{"style":73},[32,497,498],{"style":73},[32,499,19],{"class":48,"data-popup":500},"18",[32,502,503],{"style":42},"([",[32,505,506],{"class":34,"style":35},[32,507,508],{"style":42},"  {",[32,510,511,514,519,521,523],{"class":34,"style":35},[32,512,513],{"style":42},"    ",[32,515,516],{"style":42},[32,517,93],{"class":48,"data-popup":518},"19",[32,520,96],{"style":42},[32,522,99],{"style":58},[32,524,102],{"style":42},[32,526,527,529,534,536,538],{"class":34,"style":35},[32,528,513],{"style":42},[32,530,531],{"style":42},[32,532,112],{"class":48,"data-popup":533},"20",[32,535,96],{"style":42},[32,537,117],{"style":58},[32,539,102],{"style":42},[32,541,542,544,549,551,556,558,561],{"class":34,"style":35},[32,543,513],{"style":42},[32,545,546],{"style":42},[32,547,129],{"class":48,"data-popup":548},"21",[32,550,132],{"style":42},[32,552,553],{"style":42},[32,554,138],{"class":48,"data-popup":555},"22",[32,557,96],{"style":42},[32,559,560],{"style":58},"'.\u002Fsrc\u002Fgen\u002FpetStore'",[32,562,146],{"style":42},[32,564,565,567,573,576,581],{"class":34,"style":35},[32,566,513],{"style":42},[32,568,569],{"style":42},[32,570,572],{"class":48,"data-popup":571},"23","plugins",[32,574,575],{"style":42},": [",[32,577,578],{"style":73},[32,579,478],{"class":48,"data-popup":580},"24",[32,582,583],{"style":42},"()],",[32,585,586],{"class":34,"style":35},[32,587,588],{"style":42},"  },",[32,590,591],{"class":34,"style":35},[32,592,508],{"style":42},[32,594,595,597,602,604,607],{"class":34,"style":35},[32,596,513],{"style":42},[32,598,599],{"style":42},[32,600,93],{"class":48,"data-popup":601},"25",[32,603,96],{"style":42},[32,605,606],{"style":58},"'stripe'",[32,608,102],{"style":42},[32,610,611,613,618,620,623],{"class":34,"style":35},[32,612,513],{"style":42},[32,614,615],{"style":42},[32,616,112],{"class":48,"data-popup":617},"26",[32,619,96],{"style":42},[32,621,622],{"style":58},"'.\u002Fstripe.yaml'",[32,624,102],{"style":42},[32,626,627,629,634,636,641,643,646],{"class":34,"style":35},[32,628,513],{"style":42},[32,630,631],{"style":42},[32,632,129],{"class":48,"data-popup":633},"27",[32,635,132],{"style":42},[32,637,638],{"style":42},[32,639,138],{"class":48,"data-popup":640},"28",[32,642,96],{"style":42},[32,644,645],{"style":58},"'.\u002Fsrc\u002Fgen\u002Fstripe'",[32,647,146],{"style":42},[32,649,650,652,657,659,664],{"class":34,"style":35},[32,651,513],{"style":42},[32,653,654],{"style":42},[32,655,572],{"class":48,"data-popup":656},"29",[32,658,575],{"style":42},[32,660,661],{"style":73},[32,662,478],{"class":48,"data-popup":663},"30",[32,665,583],{"style":42},[32,667,668],{"class":34,"style":35},[32,669,588],{"style":42},[32,671,672],{"class":34,"style":35},[32,673,674],{"style":42},"])",[10,676,677],{},"A config function can return an array to combine both forms.",[153,679,681],{"id":680},"defaults","Defaults",[10,683,684,686,687,690,691,686,694,697,698,701],{},[13,685,19],{}," from ",[13,688,689],{},"kubb\u002Fconfig"," and ",[13,692,693],{},"createKubb",[13,695,696],{},"kubb"," fill in these fields when you omit them. The bare ",[13,699,700],{},"@kubb\u002Fcore"," engine applies none of them.",[325,703,704,714],{},[328,705,706],{},[331,707,708,711],{},[334,709,710],{},"Field",[334,712,713],{},"Default",[345,715,716,728,746,758,769,781,793,810,821,832],{},[331,717,718,723],{},[350,719,720],{},[13,721,722],{},"root",[350,724,725],{},[13,726,727],{},"process.cwd()",[331,729,730,735],{},[350,731,732],{},[13,733,734],{},"adapter",[350,736,737,740,741],{},[13,738,739],{},"adapterOas()"," from the bundled ",[742,743,745],"a",{"href":744},"\u002Fextensions\u002Fkubb-labs\u002Fadapter-oas","OpenAPI adapter",[331,747,748,753],{},[350,749,750],{},[13,751,752],{},"parsers",[350,754,755],{},[13,756,757],{},"[parserTs(), parserTsx(), parserMd()]",[331,759,760,764],{},[350,761,762],{},[13,763,421],{},[350,765,766],{},[13,767,768],{},"[cli, json, file, html]",[331,770,771,775],{},[350,772,773],{},[13,774,572],{},[350,776,777,780],{},[13,778,779],{},"pluginBarrel()"," appended when not already present",[331,782,783,788],{},[350,784,785],{},[13,786,787],{},"storage",[350,789,790],{},[13,791,792],{},"fsStorage()",[331,794,795,800],{},[350,796,797],{},[13,798,799],{},"output.barrel",[350,801,802,805,806,809],{},[13,803,804],{},"false",", so ",[13,807,808],{},"pluginBarrel"," generates nothing until you opt in",[331,811,812,817],{},[350,813,814],{},[13,815,816],{},"output.format",[350,818,819],{},[13,820,804],{},[331,822,823,828],{},[350,824,825],{},[13,826,827],{},"output.lint",[350,829,830],{},[13,831,804],{},[331,833,834,839],{},[350,835,836],{},[13,837,838],{},"output.defaultBanner",[350,840,841],{},[13,842,843],{},"'simple'",[10,845,846,847,850,851,437],{},"Bundler integrations apply a smaller set: no ",[13,848,849],{},"parserMd"," and no reporters. See ",[742,852,854],{"href":853},"\u002Fdocs\u002F5.x\u002Fintegrations\u002Foverview#build-tools","Build tools",[153,856,858],{"id":857},"top-level-options","Top-level options",[860,861,862,866,873,877,1104,1108,1111,1118,1123,1129,1458,1464,1485,1490,1529,1534,1561,1567,1712,1717,1765,1770,1879,1885,2032,2038,2050,2054,2061,2065,2233,2237,2401,2405,2543,2547,2556,2560],"field-group",{},[158,863,864],{"id":93},[13,865,93],{},[867,868,869,870,437],"field",{"type":358},"A name for this config. The CLI prints it as ",[13,871,872],{},"Generating \u003Cname>...",[158,874,875],{"id":112},[13,876,112],{},[867,878,880,885,906,937,1018],{"type":879},"string | Record\u003Cstring, unknown>",[10,881,882,883,437],{},"Where Kubb reads your spec: a local file path, a URL, a file in a git repository, inline OpenAPI content as a JSON or YAML string, or an already-parsed object. Kubb detects which one you gave it. Required when an adapter is configured. Omit it in plugin-only mode, when there is no ",[13,884,734],{},[10,886,887,888,178,891,894,895,178,898,901,902,905],{},"A string that starts with ",[13,889,890],{},"{",[13,892,893],{},"[",", spans multiple lines, or opens with a YAML ",[13,896,897],{},"openapi:",[13,899,900],{},"swagger:"," key is read as inline content. A string that starts with ",[13,903,904],{},"git+"," is a git input. Anything else is a file path or a URL, and a relative path resolves against the config file.",[10,907,908,909,912,913,916,917,920,921,924,925,928,929,932,933,936],{},"Write a git input as ",[13,910,911],{},"git+\u003Crepo>#\u003Cref>:\u003Cpath>",". ",[13,914,915],{},"\u003Cref>"," is a branch, a tag, or a full commit SHA when the host allows fetching by SHA (GitHub and GitLab do); leave out ",[13,918,919],{},"\u003Cref>:"," to use the default branch. Kubb runs a shallow ",[13,922,923],{},"git fetch"," into a temporary folder, so it needs ",[13,926,927],{},"git"," on the ",[13,930,931],{},"PATH",", works with any host, and uses your own git credentials (credential helper or SSH key) for a private repository. Relative ",[13,934,935],{},"$ref"," files in the repository resolve as usual.",[22,938,940],{"language":24,"meta":25,"code":939,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\n\nexport default defineConfig({\n  input: 'git+https:\u002F\u002Fgithub.com\u002Forg\u002Fapi.git#v2:specs\u002Fopenapi.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n})",[13,941,942,60,959,60,961,60,976,60,992,60,1014],{"class":30},[32,943,944,946,948,953,955,957],{"class":34,"style":35},[32,945,39],{"style":38},[32,947,43],{"style":42},[32,949,950],{"style":42},[32,951,19],{"class":48,"data-popup":952},"31",[32,954,52],{"style":42},[32,956,55],{"style":38},[32,958,59],{"style":58},[32,960],{"class":34,"style":35},[32,962,963,965,967,969,974],{"class":34,"style":35},[32,964,67],{"style":38},[32,966,70],{"style":38},[32,968,74],{"style":73},[32,970,971],{"style":73},[32,972,19],{"class":48,"data-popup":973},"32",[32,975,82],{"style":42},[32,977,978,980,985,987,990],{"class":34,"style":35},[32,979,87],{"style":42},[32,981,982],{"style":42},[32,983,112],{"class":48,"data-popup":984},"33",[32,986,96],{"style":42},[32,988,989],{"style":58},"'git+https:\u002F\u002Fgithub.com\u002Forg\u002Fapi.git#v2:specs\u002Fopenapi.yaml'",[32,991,102],{"style":42},[32,993,994,996,1001,1003,1008,1010,1012],{"class":34,"style":35},[32,995,87],{"style":42},[32,997,998],{"style":42},[32,999,129],{"class":48,"data-popup":1000},"34",[32,1002,132],{"style":42},[32,1004,1005],{"style":42},[32,1006,138],{"class":48,"data-popup":1007},"35",[32,1009,96],{"style":42},[32,1011,143],{"style":58},[32,1013,146],{"style":42},[32,1015,1016],{"class":34,"style":35},[32,1017,151],{"style":42},[22,1019,1021],{"language":24,"meta":25,"code":1020,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\n\nexport default defineConfig({\n  \u002F\u002F a path, a URL, a git input, an inline JSON\u002FYAML string, or a parsed object\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n})",[13,1022,1023,60,1040,60,1042,60,1057,60,1063,60,1078,60,1100],{"class":30},[32,1024,1025,1027,1029,1034,1036,1038],{"class":34,"style":35},[32,1026,39],{"style":38},[32,1028,43],{"style":42},[32,1030,1031],{"style":42},[32,1032,19],{"class":48,"data-popup":1033},"36",[32,1035,52],{"style":42},[32,1037,55],{"style":38},[32,1039,59],{"style":58},[32,1041],{"class":34,"style":35},[32,1043,1044,1046,1048,1050,1055],{"class":34,"style":35},[32,1045,67],{"style":38},[32,1047,70],{"style":38},[32,1049,74],{"style":73},[32,1051,1052],{"style":73},[32,1053,19],{"class":48,"data-popup":1054},"37",[32,1056,82],{"style":42},[32,1058,1059],{"class":34,"style":35},[32,1060,1062],{"style":1061},"color:#6A737D;--shiki-dark:#6A737D","  \u002F\u002F a path, a URL, a git input, an inline JSON\u002FYAML string, or a parsed object",[32,1064,1065,1067,1072,1074,1076],{"class":34,"style":35},[32,1066,87],{"style":42},[32,1068,1069],{"style":42},[32,1070,112],{"class":48,"data-popup":1071},"38",[32,1073,96],{"style":42},[32,1075,117],{"style":58},[32,1077,102],{"style":42},[32,1079,1080,1082,1087,1089,1094,1096,1098],{"class":34,"style":35},[32,1081,87],{"style":42},[32,1083,1084],{"style":42},[32,1085,129],{"class":48,"data-popup":1086},"39",[32,1088,132],{"style":42},[32,1090,1091],{"style":42},[32,1092,138],{"class":48,"data-popup":1093},"40",[32,1095,96],{"style":42},[32,1097,143],{"style":58},[32,1099,146],{"style":42},[32,1101,1102],{"class":34,"style":35},[32,1103,151],{"style":42},[158,1105,1106],{"id":129},[13,1107,129],{},[10,1109,1110],{},"Controls where and how files are written.",[1112,1113,1115],"h4",{"id":1114},"outputpath",[13,1116,1117],{},"output.path",[867,1119,1120,1121,437],{"type":358,":required":385},"Directory for generated files, absolute or relative to ",[13,1122,722],{},[1112,1124,1126],{"id":1125},"outputmode",[13,1127,1128],{},"output.mode",[867,1130,1132,1140,1145,1172,1188,1414,1428],{"type":1131},"'file' | 'directory'",[10,1133,1134,1135,1137,1138,437],{},"How a plugin consolidates its code into files. Set it on a plugin's ",[13,1136,129],{},", not on the root ",[13,1139,129],{},[10,1141,1142,1143,437],{},"Default: follows the shape of ",[13,1144,1117],{},[10,1146,1147,1150,1151,1153,1154,1157,1158,1161,1162,1164,1165,1167,1168,1171],{},[13,1148,1149],{},"'file'"," writes everything into a single file, so ",[13,1152,1117],{}," must include the extension (",[13,1155,1156],{},"'types.ts'","). ",[13,1159,1160],{},"'directory'"," writes one file per operation or schema under ",[13,1163,1117],{},". Pair ",[13,1166,1160],{}," with ",[13,1169,1170],{},"group"," to split the output into per-tag or per-path subdirectories.",[10,1173,1174,1175,1177,1178,178,1181,805,1184,1187],{},"You rarely need to set this. Leave it out and Kubb reads ",[13,1176,1117],{},": a path with an extension means one file, a path without one means a directory. Every plugin ships an extensionless default such as ",[13,1179,1180],{},"'types'",[13,1182,1183],{},"'clients'",[13,1185,1186],{},"pluginTs()"," writes a directory without any configuration.",[22,1189,1191],{"language":24,"meta":25,"code":1190,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\nimport { pluginTs } from '@kubb\u002Fplugin-ts'\nimport { pluginAxios } from '@kubb\u002Fplugin-axios'\n\nexport default defineConfig({\n  input: '.\u002Fpetstore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n  plugins: [\n    pluginTs({ output: { path: 'types.ts' } }),\n    pluginAxios({ output: { path: 'clients', mode: 'directory' }, group: { type: 'tag' } }),\n  ],\n})",[13,1192,1193,60,1210,60,1227,60,1246,60,1248,60,1263,60,1279,60,1301,60,1312,60,1343,60,1405,60,1410],{"class":30},[32,1194,1195,1197,1199,1204,1206,1208],{"class":34,"style":35},[32,1196,39],{"style":38},[32,1198,43],{"style":42},[32,1200,1201],{"style":42},[32,1202,19],{"class":48,"data-popup":1203},"41",[32,1205,52],{"style":42},[32,1207,55],{"style":38},[32,1209,59],{"style":58},[32,1211,1212,1214,1216,1221,1223,1225],{"class":34,"style":35},[32,1213,39],{"style":38},[32,1215,43],{"style":42},[32,1217,1218],{"style":42},[32,1219,478],{"class":48,"data-popup":1220},"42",[32,1222,52],{"style":42},[32,1224,55],{"style":38},[32,1226,485],{"style":58},[32,1228,1229,1231,1233,1239,1241,1243],{"class":34,"style":35},[32,1230,39],{"style":38},[32,1232,43],{"style":42},[32,1234,1235],{"style":42},[32,1236,1238],{"class":48,"data-popup":1237},"43","pluginAxios",[32,1240,52],{"style":42},[32,1242,55],{"style":38},[32,1244,1245],{"style":58}," '@kubb\u002Fplugin-axios'",[32,1247],{"class":34,"style":35},[32,1249,1250,1252,1254,1256,1261],{"class":34,"style":35},[32,1251,67],{"style":38},[32,1253,70],{"style":38},[32,1255,74],{"style":73},[32,1257,1258],{"style":73},[32,1259,19],{"class":48,"data-popup":1260},"44",[32,1262,82],{"style":42},[32,1264,1265,1267,1272,1274,1277],{"class":34,"style":35},[32,1266,87],{"style":42},[32,1268,1269],{"style":42},[32,1270,112],{"class":48,"data-popup":1271},"45",[32,1273,96],{"style":42},[32,1275,1276],{"style":58},"'.\u002Fpetstore.yaml'",[32,1278,102],{"style":42},[32,1280,1281,1283,1288,1290,1295,1297,1299],{"class":34,"style":35},[32,1282,87],{"style":42},[32,1284,1285],{"style":42},[32,1286,129],{"class":48,"data-popup":1287},"46",[32,1289,132],{"style":42},[32,1291,1292],{"style":42},[32,1293,138],{"class":48,"data-popup":1294},"47",[32,1296,96],{"style":42},[32,1298,143],{"style":58},[32,1300,146],{"style":42},[32,1302,1303,1305,1310],{"class":34,"style":35},[32,1304,87],{"style":42},[32,1306,1307],{"style":42},[32,1308,572],{"class":48,"data-popup":1309},"48",[32,1311,575],{"style":42},[32,1313,1314,1316,1321,1324,1329,1331,1336,1338,1340],{"class":34,"style":35},[32,1315,513],{"style":73},[32,1317,1318],{"style":73},[32,1319,478],{"class":48,"data-popup":1320},"49",[32,1322,1323],{"style":42},"({ ",[32,1325,1326],{"style":42},[32,1327,129],{"class":48,"data-popup":1328},"50",[32,1330,132],{"style":42},[32,1332,1333],{"style":42},[32,1334,138],{"class":48,"data-popup":1335},"51",[32,1337,96],{"style":42},[32,1339,1156],{"style":58},[32,1341,1342],{"style":42}," } }),",[32,1344,1345,1347,1352,1354,1359,1361,1366,1368,1370,1372,1378,1380,1382,1385,1390,1392,1398,1400,1403],{"class":34,"style":35},[32,1346,513],{"style":73},[32,1348,1349],{"style":73},[32,1350,1238],{"class":48,"data-popup":1351},"52",[32,1353,1323],{"style":42},[32,1355,1356],{"style":42},[32,1357,129],{"class":48,"data-popup":1358},"53",[32,1360,132],{"style":42},[32,1362,1363],{"style":42},[32,1364,138],{"class":48,"data-popup":1365},"54",[32,1367,96],{"style":42},[32,1369,1183],{"style":58},[32,1371,231],{"style":42},[32,1373,1374],{"style":42},[32,1375,1377],{"class":48,"data-popup":1376},"55","mode",[32,1379,96],{"style":42},[32,1381,1160],{"style":58},[32,1383,1384],{"style":42}," }, ",[32,1386,1387],{"style":42},[32,1388,1170],{"class":48,"data-popup":1389},"56",[32,1391,132],{"style":42},[32,1393,1394],{"style":42},[32,1395,1397],{"class":48,"data-popup":1396},"57","type",[32,1399,96],{"style":42},[32,1401,1402],{"style":58},"'tag'",[32,1404,1342],{"style":42},[32,1406,1407],{"class":34,"style":35},[32,1408,1409],{"style":42},"  ],",[32,1411,1412],{"class":34,"style":35},[32,1413,151],{"style":42},[10,1415,1416,1417,1420,1421,231,1424,1427],{},"This writes every type into ",[13,1418,1419],{},"src\u002Fgen\u002Ftypes.ts"," and one client file per operation, grouped by tag (",[13,1422,1423],{},"src\u002Fgen\u002Fclients\u002Fpet\u002F",[13,1425,1426],{},"src\u002Fgen\u002Fclients\u002Fstore\u002F",").",[1429,1430,1432,1433,1435,1436,1438,1439,1442,1443,1446,1447,1450,1451,1453,1454,1457],"blockquote",{"as":1431},"tip","",[13,1434,1170],{}," works with the inferred directory mode, no ",[13,1437,1377],{}," needed. Set ",[13,1440,1441],{},"mode: 'directory'"," yourself only to override the inference, such as a directory name that carries a dot (",[13,1444,1445],{},"path: 'clients.v2'","). An explicit ",[13,1448,1449],{},"mode: 'file'"," still forbids ",[13,1452,1170],{}," and stops the build with a ",[13,1455,1456],{},"KUBB_INVALID_PLUGIN_OPTIONS"," error, because a single file has nothing to group.",[1112,1459,1461],{"id":1460},"outputclean",[13,1462,1463],{},"output.clean",[867,1465,1466,1472,1477],{"type":380},[10,1467,1468,1469,1471],{},"Wipe ",[13,1470,1117],{}," before regenerating.",[10,1473,1474,1475,437],{},"Default: ",[13,1476,804],{},[1429,1478,1480,1481,1484],{"as":1479},"warning","Only use ",[13,1482,1483],{},"clean: true"," with a dedicated output folder. Kubb removes the entire directory.",[1112,1486,1488],{"id":1487},"outputformat",[13,1489,816],{},[867,1491,1493,1496,1500],{"type":1492},"'auto' | 'prettier' | 'biome' | 'oxfmt' | false",[10,1494,1495],{},"Formatter to run on every generated file.",[10,1497,1474,1498,437],{},[13,1499,804],{},[10,1501,1502,1505,1506,1510,1511,1510,1515,1519,1520,1522,1523,178,1526,437],{},[13,1503,1504],{},"'auto'"," detects the first formatter it finds (",[742,1507,1509],{"href":1508},"https:\u002F\u002Foxc.rs","oxfmt"," then ",[742,1512,1514],{"href":1513},"https:\u002F\u002Fbiomejs.dev","Biome",[742,1516,1518],{"href":1517},"https:\u002F\u002Fprettier.io","Prettier","). A named tool forces that one. ",[13,1521,804],{}," skips formatting. Kubb reads your local ",[13,1524,1525],{},".prettierrc",[13,1527,1528],{},"biome.json",[1112,1530,1532],{"id":1531},"outputlint",[13,1533,827],{},[867,1535,1537,1540,1544],{"type":1536},"'auto' | 'eslint' | 'biome' | 'oxlint' | false",[10,1538,1539],{},"Linter to run after generation.",[10,1541,1474,1542,437],{},[13,1543,804],{},[10,1545,1546,1548,1549,1510,1552,1510,1554,1519,1558,1560],{},[13,1547,1504],{}," detects the first linter it finds (",[742,1550,1551],{"href":1508},"oxlint",[742,1553,1514],{"href":1513},[742,1555,1557],{"href":1556},"https:\u002F\u002Feslint.org","ESLint",[13,1559,804],{}," skips linting.",[1112,1562,1564],{"id":1563},"outputpostgenerate",[13,1565,1566],{},"output.postGenerate",[867,1568,1570,1580],{"type":1569},"Array\u003Cstring | { name?: string; command: string }>",[10,1571,1572,1573,1575,1576,1579],{},"Shell commands to run after the generated files are formatted and linted, such as a type check or a custom script. Commands run from the ",[13,1574,722],{}," directory, in sequence. Pass a command string, or ",[13,1577,1578],{},"{ name, command }"," to label a step in the CLI output.",[22,1581,1583],{"language":24,"meta":25,"code":1582,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\n\nexport default defineConfig({\n  input: '.\u002FpetStore.yaml',\n  output: {\n    path: '.\u002Fsrc\u002Fgen',\n    postGenerate: [{ name: 'types', command: 'npm run typecheck' }, 'biome check --write .\u002Fsrc\u002Fgen'],\n  },\n})",[13,1584,1585,60,1602,60,1604,60,1619,60,1634,60,1646,60,1661,60,1704,60,1708],{"class":30},[32,1586,1587,1589,1591,1596,1598,1600],{"class":34,"style":35},[32,1588,39],{"style":38},[32,1590,43],{"style":42},[32,1592,1593],{"style":42},[32,1594,19],{"class":48,"data-popup":1595},"58",[32,1597,52],{"style":42},[32,1599,55],{"style":38},[32,1601,59],{"style":58},[32,1603],{"class":34,"style":35},[32,1605,1606,1608,1610,1612,1617],{"class":34,"style":35},[32,1607,67],{"style":38},[32,1609,70],{"style":38},[32,1611,74],{"style":73},[32,1613,1614],{"style":73},[32,1615,19],{"class":48,"data-popup":1616},"59",[32,1618,82],{"style":42},[32,1620,1621,1623,1628,1630,1632],{"class":34,"style":35},[32,1622,87],{"style":42},[32,1624,1625],{"style":42},[32,1626,112],{"class":48,"data-popup":1627},"60",[32,1629,96],{"style":42},[32,1631,117],{"style":58},[32,1633,102],{"style":42},[32,1635,1636,1638,1643],{"class":34,"style":35},[32,1637,87],{"style":42},[32,1639,1640],{"style":42},[32,1641,129],{"class":48,"data-popup":1642},"61",[32,1644,1645],{"style":42},": {",[32,1647,1648,1650,1655,1657,1659],{"class":34,"style":35},[32,1649,513],{"style":42},[32,1651,1652],{"style":42},[32,1653,138],{"class":48,"data-popup":1654},"62",[32,1656,96],{"style":42},[32,1658,143],{"style":58},[32,1660,102],{"style":42},[32,1662,1663,1665,1671,1674,1679,1681,1683,1685,1691,1693,1696,1698,1701],{"class":34,"style":35},[32,1664,513],{"style":42},[32,1666,1667],{"style":42},[32,1668,1670],{"class":48,"data-popup":1669},"63","postGenerate",[32,1672,1673],{"style":42},": [{ ",[32,1675,1676],{"style":42},[32,1677,93],{"class":48,"data-popup":1678},"64",[32,1680,96],{"style":42},[32,1682,1180],{"style":58},[32,1684,231],{"style":42},[32,1686,1687],{"style":42},[32,1688,1690],{"class":48,"data-popup":1689},"65","command",[32,1692,96],{"style":42},[32,1694,1695],{"style":58},"'npm run typecheck'",[32,1697,1384],{"style":42},[32,1699,1700],{"style":58},"'biome check --write .\u002Fsrc\u002Fgen'",[32,1702,1703],{"style":42},"],",[32,1705,1706],{"class":34,"style":35},[32,1707,588],{"style":42},[32,1709,1710],{"class":34,"style":35},[32,1711,151],{"style":42},[1112,1713,1715],{"id":1714},"outputbarrel",[13,1716,799],{},[867,1718,1720,1730,1734],{"type":1719},"{ type: 'all' | 'named' } | false",[10,1721,1722,1723,1726,1727,1729],{},"Behavior of the root ",[13,1724,1725],{},"index.ts"," barrel file at ",[13,1728,1117],{},", and the default every plugin inherits.",[10,1731,1474,1732,437],{},[13,1733,804],{},[10,1735,1736,1739,1740,1743,1744,1747,1748,1755,1756,1759,1760,1764],{},[13,1737,1738],{},"{ type: 'named' }"," re-exports each symbol by name, ",[13,1741,1742],{},"{ type: 'all' }"," writes ",[13,1745,1746],{},"export *",". See ",[742,1749,1751,1754],{"href":1750},"\u002Fextensions\u002Fkubb-labs\u002Fplugin-barrel\u002Foptions#outputbarrel",[13,1752,1753],{},"@kubb\u002Fplugin-barrel"," options"," for the export styles and the plugin-level ",[13,1757,1758],{},"nested"," flag, and ",[742,1761,1763],{"href":1762},"\u002Fdocs\u002F5.x\u002Fhow-to\u002Fbarrel-files","Add barrel files"," for the setup steps.",[1112,1766,1768],{"id":1767},"outputdefaultbanner",[13,1769,838],{},[867,1771,1773,1776,1780,1803],{"type":1772},"'simple' | 'full' | false",[10,1774,1775],{},"Auto-generated banner injected at the top of each file.",[10,1777,1474,1778,437],{},[13,1779,843],{},[10,1781,1782,1784,1785,1788,1789,231,1792,1795,1796,1799,1800,1802],{},[13,1783,843],{}," adds a short \"Generated by Kubb\" notice. ",[13,1786,1787],{},"'full'"," adds the notice plus ",[13,1790,1791],{},"Source",[13,1793,1794],{},"Title",", and ",[13,1797,1798],{},"OpenAPI spec version"," from the spec. ",[13,1801,804],{}," writes no banner.",[1804,1805,1806,1833,1870],"code-group",{},[22,1807,1811],{"language":24,"filename":1808,"code":1809,"class":1810},"simple","\u002F**\n * Generated by Kubb (https:\u002F\u002Fkubb.dev\u002F).\n * Do not edit manually.\n *\u002F","shiki shiki-themes github-light github-dark dark:github-dark",[13,1812,1813,60,1818,60,1823,60,1828],{"class":30},[32,1814,1815],{"class":34,"style":35},[32,1816,1817],{"style":1061},"\u002F**",[32,1819,1820],{"class":34,"style":35},[32,1821,1822],{"style":1061}," * Generated by Kubb (https:\u002F\u002Fkubb.dev\u002F).",[32,1824,1825],{"class":34,"style":35},[32,1826,1827],{"style":1061}," * Do not edit manually.",[32,1829,1830],{"class":34,"style":35},[32,1831,1832],{"style":1061}," *\u002F",[22,1834,1837],{"language":24,"filename":1835,"code":1836,"class":1810},"full","\u002F**\n * Generated by Kubb (https:\u002F\u002Fkubb.dev\u002F).\n * Do not edit manually.\n * Source: petStore.yaml\n * Title: Pet Store\n * OpenAPI spec version: 1.0.0\n *\u002F",[13,1838,1839,60,1843,60,1847,60,1851,60,1856,60,1861,60,1866],{"class":30},[32,1840,1841],{"class":34,"style":35},[32,1842,1817],{"style":1061},[32,1844,1845],{"class":34,"style":35},[32,1846,1822],{"style":1061},[32,1848,1849],{"class":34,"style":35},[32,1850,1827],{"style":1061},[32,1852,1853],{"class":34,"style":35},[32,1854,1855],{"style":1061}," * Source: petStore.yaml",[32,1857,1858],{"class":34,"style":35},[32,1859,1860],{"style":1061}," * Title: Pet Store",[32,1862,1863],{"class":34,"style":35},[32,1864,1865],{"style":1061}," * OpenAPI spec version: 1.0.0",[32,1867,1868],{"class":34,"style":35},[32,1869,1832],{"style":1061},[22,1871,1873],{"language":24,"filename":804,"code":1872,"class":1810},"\u002F\u002F no banner",[13,1874,1875],{"class":30},[32,1876,1877],{"class":34,"style":35},[32,1878,1872],{"style":1061},[1112,1880,1882],{"id":1881},"outputbanner",[13,1883,1884],{},"output.banner",[867,1886,1888,1903,1917,1936,2019],{"type":1887},"string | ((meta: BannerMeta) => string)",[10,1889,1890,1891,1893,1894,1899,1900,437],{},"Text prepended to every file a plugin generates. Set it on an individual plugin. The root ",[13,1892,129],{}," exposes only ",[742,1895,1897],{"href":1896},"#outputdefaultbanner",[13,1898,838],{},". Use it for license headers, lint-disable comments, or framework directives like ",[13,1901,1902],{},"'use server'",[10,1904,1905,1906,1908,1909,1912,1913,1916],{},"A string applies to every file the plugin generates, including barrel (",[13,1907,1725],{},") and group aggregation (",[13,1910,1911],{},"[dir]\u002F[dir].ts",") re-export files. A function runs once per file and receives a ",[13,1914,1915],{},"BannerMeta",", so you can vary the banner per file or return an empty string to skip it.",[10,1918,1919,1921,1922,1925,1926,231,1929,231,1932,1935],{},[13,1920,1915],{}," extends the document ",[13,1923,1924],{},"InputMeta"," (",[13,1927,1928],{},"title",[13,1930,1931],{},"description",[13,1933,1934],{},"version",", …) with per-file context:",[325,1937,1938,1948],{},[328,1939,1940],{},[331,1941,1942,1944,1946],{},[334,1943],{"style":336},[334,1945],{"style":339},[334,1947],{"style":339},[345,1949,1950,1964,1981,2000],{},[331,1951,1952,1957,1961],{},[350,1953,1954],{"style":336},[13,1955,1956],{},"filePath",[350,1958,1959],{"style":339},[13,1960,358],{},[350,1962,1963],{"style":339},"Full output path of the file being generated.",[331,1965,1966,1971,1975],{},[350,1967,1968],{"style":336},[13,1969,1970],{},"baseName",[350,1972,1973],{"style":339},[13,1974,358],{},[350,1976,1977,1978,437],{"style":339},"File name only, for example ",[13,1979,1980],{},"stocks.ts",[331,1982,1983,1988,1992],{},[350,1984,1985],{"style":336},[13,1986,1987],{},"isBarrel",[350,1989,1990],{"style":339},[13,1991,380],{},[350,1993,1994,1996,1997,1999],{"style":339},[13,1995,385],{}," for ",[13,1998,1725],{}," re-export barrels.",[331,2001,2002,2007,2011],{},[350,2003,2004],{"style":336},[13,2005,2006],{},"isAggregation",[350,2008,2009],{"style":339},[13,2010,380],{},[350,2012,2013,2015,2016,2018],{"style":339},[13,2014,385],{}," for group ",[13,2017,1911],{}," aggregation files.",[1429,2020,2022,2023,2025,2026,2028,2029,437],{"as":2021},"note","Barrel ",[13,2024,1725],{}," files stay banner-free by default. They get a banner only when the plugin sets ",[13,2027,1884],{},", at which point the function runs with ",[13,2030,2031],{},"isBarrel: true",[1112,2033,2035],{"id":2034},"outputfooter",[13,2036,2037],{},"output.footer",[867,2039,2040,2041,2046,2047,2049],{"type":1887},"Text appended to the end of every file a plugin generates. Mirror of ",[742,2042,2044],{"href":2043},"#outputbanner",[13,2045,1884],{},", with the same ",[13,2048,1887],{}," type.",[158,2051,2052],{"id":572},[13,2053,572],{},[867,2055,2057,2058,437],{"type":2056},"Array\u003CPlugin>","Array of Kubb plugins. Dependencies run first. A plugin that requires one missing from this array fails the run with ",[13,2059,2060],{},"KUBB_MISSING_DEPENDENCY",[158,2062,2063],{"id":734},[13,2064,734],{},[867,2066,2068,2084,2092,2099,2102],{"type":2067},"Adapter",[10,2069,2070,2071,2073,2074,2076,2077,686,2079,437],{},"Adapter that converts your input into the universal AST. With ",[13,2072,19],{}," from the ",[13,2075,696],{}," package this defaults to ",[13,2078,739],{},[742,2080,2081],{"href":744},[13,2082,2083],{},"@kubb\u002Fadapter-oas",[10,2085,2086,2087,2091],{},"See the ",[742,2088,2090],{"href":2089},"\u002Fdocs\u002F5.x\u002Fexplanation\u002Farchitecture#adapters","Adapter concept"," for the full picture.",[10,2093,1474,2094,2096,2097,1427],{},[13,2095,739],{}," (included with ",[13,2098,696],{},[10,2100,2101],{},"Pass options to customize the adapter:",[22,2103,2105],{"language":24,"meta":25,"code":2104,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\nimport { adapterOas } from '@kubb\u002Fadapter-oas'\n\nexport default defineConfig({\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n  adapter: adapterOas({ validate: true }),\n})",[13,2106,2107,60,2124,60,2143,60,2145,60,2160,60,2175,60,2197,60,2229],{"class":30},[32,2108,2109,2111,2113,2118,2120,2122],{"class":34,"style":35},[32,2110,39],{"style":38},[32,2112,43],{"style":42},[32,2114,2115],{"style":42},[32,2116,19],{"class":48,"data-popup":2117},"66",[32,2119,52],{"style":42},[32,2121,55],{"style":38},[32,2123,59],{"style":58},[32,2125,2126,2128,2130,2136,2138,2140],{"class":34,"style":35},[32,2127,39],{"style":38},[32,2129,43],{"style":42},[32,2131,2132],{"style":42},[32,2133,2135],{"class":48,"data-popup":2134},"67","adapterOas",[32,2137,52],{"style":42},[32,2139,55],{"style":38},[32,2141,2142],{"style":58}," '@kubb\u002Fadapter-oas'",[32,2144],{"class":34,"style":35},[32,2146,2147,2149,2151,2153,2158],{"class":34,"style":35},[32,2148,67],{"style":38},[32,2150,70],{"style":38},[32,2152,74],{"style":73},[32,2154,2155],{"style":73},[32,2156,19],{"class":48,"data-popup":2157},"68",[32,2159,82],{"style":42},[32,2161,2162,2164,2169,2171,2173],{"class":34,"style":35},[32,2163,87],{"style":42},[32,2165,2166],{"style":42},[32,2167,112],{"class":48,"data-popup":2168},"69",[32,2170,96],{"style":42},[32,2172,117],{"style":58},[32,2174,102],{"style":42},[32,2176,2177,2179,2184,2186,2191,2193,2195],{"class":34,"style":35},[32,2178,87],{"style":42},[32,2180,2181],{"style":42},[32,2182,129],{"class":48,"data-popup":2183},"70",[32,2185,132],{"style":42},[32,2187,2188],{"style":42},[32,2189,138],{"class":48,"data-popup":2190},"71",[32,2192,96],{"style":42},[32,2194,143],{"style":58},[32,2196,146],{"style":42},[32,2198,2199,2201,2206,2208,2213,2215,2221,2223,2226],{"class":34,"style":35},[32,2200,87],{"style":42},[32,2202,2203],{"style":42},[32,2204,734],{"class":48,"data-popup":2205},"72",[32,2207,96],{"style":42},[32,2209,2210],{"style":73},[32,2211,2135],{"class":48,"data-popup":2212},"73",[32,2214,1323],{"style":42},[32,2216,2217],{"style":42},[32,2218,2220],{"class":48,"data-popup":2219},"74","validate",[32,2222,96],{"style":42},[32,2224,385],{"style":2225},"color:#005CC5;--shiki-dark:#79B8FF",[32,2227,2228],{"style":42}," }),",[32,2230,2231],{"class":34,"style":35},[32,2232,151],{"style":42},[158,2234,2235],{"id":752},[13,2236,752],{},[867,2238,2240,2246,2259,2265,2268],{"type":2239},"Array\u003CParser>",[10,2241,2242,2243,437],{},"Array of parsers that turn the in-memory file representation into source code. Each parser declares which file extensions it handles through ",[13,2244,2245],{},"extNames",[10,2247,2086,2248,690,2252,2258],{},[742,2249,2251],{"href":2250},"\u002Fdocs\u002F5.x\u002Fexplanation\u002Farchitecture#parsers","Parser concept",[742,2253,2255],{"href":2254},"\u002Fextensions\u002Fkubb-labs\u002Fparser-ts",[13,2256,2257],{},"@kubb\u002Fparser-ts"," for the built-in parsers.",[10,2260,1474,2261,2096,2263,1427],{},[13,2262,757],{},[13,2264,696],{},[10,2266,2267],{},"Import parsers explicitly to override the default set:",[22,2269,2271],{"language":24,"meta":25,"code":2270,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\nimport { parserTs, parserTsx } from '@kubb\u002Fparser-ts'\n\nexport default defineConfig({\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n  parsers: [parserTs(), parserTsx()],\n})",[13,2272,2273,60,2290,60,2317,60,2319,60,2334,60,2349,60,2371,60,2397],{"class":30},[32,2274,2275,2277,2279,2284,2286,2288],{"class":34,"style":35},[32,2276,39],{"style":38},[32,2278,43],{"style":42},[32,2280,2281],{"style":42},[32,2282,19],{"class":48,"data-popup":2283},"75",[32,2285,52],{"style":42},[32,2287,55],{"style":38},[32,2289,59],{"style":58},[32,2291,2292,2294,2296,2302,2304,2310,2312,2314],{"class":34,"style":35},[32,2293,39],{"style":38},[32,2295,43],{"style":42},[32,2297,2298],{"style":42},[32,2299,2301],{"class":48,"data-popup":2300},"76","parserTs",[32,2303,231],{"style":42},[32,2305,2306],{"style":42},[32,2307,2309],{"class":48,"data-popup":2308},"77","parserTsx",[32,2311,52],{"style":42},[32,2313,55],{"style":38},[32,2315,2316],{"style":58}," '@kubb\u002Fparser-ts'",[32,2318],{"class":34,"style":35},[32,2320,2321,2323,2325,2327,2332],{"class":34,"style":35},[32,2322,67],{"style":38},[32,2324,70],{"style":38},[32,2326,74],{"style":73},[32,2328,2329],{"style":73},[32,2330,19],{"class":48,"data-popup":2331},"78",[32,2333,82],{"style":42},[32,2335,2336,2338,2343,2345,2347],{"class":34,"style":35},[32,2337,87],{"style":42},[32,2339,2340],{"style":42},[32,2341,112],{"class":48,"data-popup":2342},"79",[32,2344,96],{"style":42},[32,2346,117],{"style":58},[32,2348,102],{"style":42},[32,2350,2351,2353,2358,2360,2365,2367,2369],{"class":34,"style":35},[32,2352,87],{"style":42},[32,2354,2355],{"style":42},[32,2356,129],{"class":48,"data-popup":2357},"80",[32,2359,132],{"style":42},[32,2361,2362],{"style":42},[32,2363,138],{"class":48,"data-popup":2364},"81",[32,2366,96],{"style":42},[32,2368,143],{"style":58},[32,2370,146],{"style":42},[32,2372,2373,2375,2380,2382,2387,2390,2395],{"class":34,"style":35},[32,2374,87],{"style":42},[32,2376,2377],{"style":42},[32,2378,752],{"class":48,"data-popup":2379},"82",[32,2381,575],{"style":42},[32,2383,2384],{"style":73},[32,2385,2301],{"class":48,"data-popup":2386},"83",[32,2388,2389],{"style":42},"(), ",[32,2391,2392],{"style":73},[32,2393,2309],{"class":48,"data-popup":2394},"84",[32,2396,583],{"style":42},[32,2398,2399],{"class":34,"style":35},[32,2400,151],{"style":42},[158,2402,2403],{"id":787},[13,2404,787],{},[867,2406,2408,2414,2421,2425],{"type":2407},"Storage",[10,2409,2410,2411,2413],{},"Storage driver that persists generated files. Defaults to ",[13,2412,792],{}," (filesystem).",[10,2415,2086,2416,2420],{},[742,2417,2419],{"href":2418},"\u002Fdocs\u002F5.x\u002Fexplanation\u002Farchitecture#storage","Storage concept"," for the built-in drivers and how to write a custom backend.",[10,2422,1474,2423,437],{},[13,2424,792],{},[22,2426,2428],{"language":24,"meta":25,"code":2427,"filename":15,"class":27},"import { defineConfig } from 'kubb\u002Fconfig'\nimport { memoryStorage } from 'kubb\u002Fkit'\n\nexport default defineConfig({\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n  storage: memoryStorage(),\n})",[13,2429,2430,60,2447,60,2466,60,2468,60,2483,60,2498,60,2520,60,2539],{"class":30},[32,2431,2432,2434,2436,2441,2443,2445],{"class":34,"style":35},[32,2433,39],{"style":38},[32,2435,43],{"style":42},[32,2437,2438],{"style":42},[32,2439,19],{"class":48,"data-popup":2440},"85",[32,2442,52],{"style":42},[32,2444,55],{"style":38},[32,2446,59],{"style":58},[32,2448,2449,2451,2453,2459,2461,2463],{"class":34,"style":35},[32,2450,39],{"style":38},[32,2452,43],{"style":42},[32,2454,2455],{"style":42},[32,2456,2458],{"class":48,"data-popup":2457},"86","memoryStorage",[32,2460,52],{"style":42},[32,2462,55],{"style":38},[32,2464,2465],{"style":58}," 'kubb\u002Fkit'",[32,2467],{"class":34,"style":35},[32,2469,2470,2472,2474,2476,2481],{"class":34,"style":35},[32,2471,67],{"style":38},[32,2473,70],{"style":38},[32,2475,74],{"style":73},[32,2477,2478],{"style":73},[32,2479,19],{"class":48,"data-popup":2480},"87",[32,2482,82],{"style":42},[32,2484,2485,2487,2492,2494,2496],{"class":34,"style":35},[32,2486,87],{"style":42},[32,2488,2489],{"style":42},[32,2490,112],{"class":48,"data-popup":2491},"88",[32,2493,96],{"style":42},[32,2495,117],{"style":58},[32,2497,102],{"style":42},[32,2499,2500,2502,2507,2509,2514,2516,2518],{"class":34,"style":35},[32,2501,87],{"style":42},[32,2503,2504],{"style":42},[32,2505,129],{"class":48,"data-popup":2506},"89",[32,2508,132],{"style":42},[32,2510,2511],{"style":42},[32,2512,138],{"class":48,"data-popup":2513},"90",[32,2515,96],{"style":42},[32,2517,143],{"style":58},[32,2519,146],{"style":42},[32,2521,2522,2524,2529,2531,2536],{"class":34,"style":35},[32,2523,87],{"style":42},[32,2525,2526],{"style":42},[32,2527,787],{"class":48,"data-popup":2528},"91",[32,2530,96],{"style":42},[32,2532,2533],{"style":73},[32,2534,2458],{"class":48,"data-popup":2535},"92",[32,2537,2538],{"style":42},"(),",[32,2540,2541],{"class":34,"style":35},[32,2542,151],{"style":42},[158,2544,2545],{"id":722},[13,2546,722],{},[867,2548,2549,2552],{"type":358},[10,2550,2551],{},"Project root, absolute or relative to the config file location.",[10,2553,1474,2554,437],{},[13,2555,727],{},[158,2557,2558],{"id":421},[13,2559,421],{},[867,2561,2563,2597],{"type":2562},"Array\u003CReporter>",[10,2564,2565,2566,2568,2569,231,2572,231,2575,1795,2578,2581,2582,2588,2589,2593,2594,2596],{},"Reporters available to the run, registered as instances. ",[13,2567,19],{}," registers the built-in ",[13,2570,2571],{},"cli",[13,2573,2574],{},"json",[13,2576,2577],{},"file",[13,2579,2580],{},"html"," reporters by default. The HTML reporter remains opt-in: select it with ",[742,2583,2585],{"href":2584},"\u002Fdocs\u002F5.x\u002Freference\u002Fcommands\u002Fgenerate#reporters",[13,2586,2587],{},"--reporter html",". The CLI ",[742,2590,2591],{"href":2584},[13,2592,432],{}," flag selects reporters by name and defaults to ",[13,2595,2571],{},". See that page for details about each reporter.",[10,2598,1474,2599,437],{},[13,2600,768],{},[2602,2603],"studio-cta",{"source":2604},"configuration-reference",{"title":1432,"searchDepth":2606,"depth":2606,"links":2607},5,[2608,2615,2616],{"id":155,"depth":2609,"text":156,"children":2610},2,[2611,2613,2614],{"id":160,"depth":2612,"text":161},3,{"id":170,"depth":2612,"text":171},{"id":440,"depth":2612,"text":441},{"id":680,"depth":2609,"text":681},{"id":857,"depth":2609,"text":858,"children":2617},[2618,2619,2620,2633,2634,2635,2636,2637,2638],{"id":93,"depth":2612,"text":93},{"id":112,"depth":2612,"text":112},{"id":129,"depth":2612,"text":129,"children":2621},[2622,2624,2625,2626,2627,2628,2629,2630,2631,2632],{"id":1114,"depth":2623,"text":1117},4,{"id":1125,"depth":2623,"text":1128},{"id":1460,"depth":2623,"text":1463},{"id":1487,"depth":2623,"text":816},{"id":1531,"depth":2623,"text":827},{"id":1563,"depth":2623,"text":1566},{"id":1714,"depth":2623,"text":799},{"id":1767,"depth":2623,"text":838},{"id":1881,"depth":2623,"text":1884},{"id":2034,"depth":2623,"text":2037},{"id":572,"depth":2612,"text":572},{"id":734,"depth":2612,"text":734},{"id":752,"depth":2612,"text":752},{"id":787,"depth":2612,"text":787},{"id":722,"depth":2612,"text":722},{"id":421,"depth":2612,"text":421},"Reference for kubb.config.ts with every option, default and example for the Kubb v5 UserConfig.","md",{"layout":2642,"title":5,"description":2639,"outline":2643,"order":2644,"navigation":2645},"doc",[2609,2612],1,{"title":5,"icon":2646},"i-iconoir-settings",{"layout":2642,"outline":2648},[2609,2612],{"title":5,"icon":2646},"\u002Fdocs\u002F5.x\u002Freference\u002Fconfiguration",{"title":5,"description":2639},{"loc":2650},"kubb-labs\u002Fkubb\u002Fdocs\u002F5.x\u002Freference\u002Fconfiguration.md","docs\u002F5.x\u002Freference\u002Fconfiguration","x9vkXxq-O8E1zadWeHqsV5mkHxscxea_NBwQRwBuQ_k",true,1792782246794]