[{"data":1,"prerenderedAt":786},["ShallowReactive",2],{"page:\u002Fdocs\u002F5.x\u002Fhow-to\u002Fresolvers":3},{"id":4,"title":5,"body":6,"description":770,"extension":771,"frontmatter":772,"heading":5,"meta":778,"navigation":779,"order":775,"path":780,"seo":781,"sitemap":782,"source":783,"stem":784,"__hash__":785},"docs\u002Fdocs\u002F5.x\u002Fhow-to\u002Fresolvers.md","Customize names and paths",{"type":7,"value":8,"toc":762},"minimark",[9,18,34,39,42,182,186,196,323,341,465,469,480,606,627],[10,11,12,13,17],"p",{},"Set a plugin's ",[14,15,16],"code",{},"resolver"," option to change generated identifiers and file paths. Supply only the methods you need to replace. Other methods keep their defaults.",[10,19,20,21,24,25,30,31,33],{},"Write overrides as regular methods, not arrow functions, when they use ",[14,22,23],{},"this",". See ",[26,27,29],"a",{"href":28},"\u002Fdocs\u002F5.x\u002Freference\u002Fkit\u002Fresolvers#resolver-overrides","resolver overrides"," for the ",[14,32,23],{}," rules and signatures.",[35,36,38],"h2",{"id":37},"rename-identifiers","Rename identifiers",[10,40,41],{},"Prefix TypeScript names while preserving the plugin's PascalCase preset:",[43,44,49],"pre",{"language":45,"filename":46,"code":47,"class":48},"typescript","prefix.ts","import { pluginTs, resolverTs } from '@kubb\u002Fplugin-ts'\n\npluginTs({\n  resolver: {\n    name(name) {\n      return `Api${resolverTs.name(name)}`\n    },\n  },\n})","highlights",[14,50,52,85,86,85,88,85,96,85,109,85,125,85,160,85,169,85,177],{"class":51},"language-typescript",[53,54,57,61,65,69,72,75,78,81],"span",{"class":55,"style":56},"line","display: inline",[53,58,60],{"style":59},"color:#d73a49;--hls-dark:#f97583","import ",[53,62,64],{"style":63},"color:#005cc5;--hls-dark:#79b8ff","{ ",[53,66,68],{"style":67},"color:#24292e;--hls-dark:#e1e4e8","pluginTs",[53,70,71],{"style":59},", ",[53,73,74],{"style":67},"resolverTs ",[53,76,77],{"style":63},"} ",[53,79,80],{"style":59},"from ",[53,82,84],{"style":83},"color:#032f62;--hls-dark:#9ecbff","'@kubb\u002Fplugin-ts'","\n",[53,87],{"class":55,"style":56},[53,89,90,93],{"class":55,"style":56},[53,91,68],{"style":92},"color:#6f42c1;--hls-dark:#b392f0",[53,94,95],{"style":63},"({",[53,97,98,101,103,106],{"class":55,"style":56},[53,99,100],{"style":63},"  ",[53,102,16],{"style":63},[53,104,105],{"style":59},": ",[53,107,108],{"style":63},"{",[53,110,111,114,117,120,122],{"class":55,"style":56},[53,112,113],{"style":63},"    ",[53,115,116],{"style":92},"name",[53,118,119],{"style":63},"(",[53,121,116],{"style":67},[53,123,124],{"style":63},") {",[53,126,127,130,133,136,139,142,145,147,149,151,154,157],{"class":55,"style":56},[53,128,129],{"style":63},"      ",[53,131,132],{"style":59},"return ",[53,134,135],{"style":83},"`Api",[53,137,138],{"style":67},"${",[53,140,141],{"style":67},"resolverTs",[53,143,144],{"style":59},".",[53,146,116],{"style":92},[53,148,119],{"style":63},[53,150,116],{"style":67},[53,152,153],{"style":63},")",[53,155,156],{"style":67},"}",[53,158,159],{"style":83},"`",[53,161,162,164,166],{"class":55,"style":56},[53,163,113],{"style":83},[53,165,156],{"style":63},[53,167,168],{"style":59},",",[53,170,171,173,175],{"class":55,"style":56},[53,172,100],{"style":59},[53,174,156],{"style":63},[53,176,168],{"style":59},[53,178,179],{"class":55,"style":56},[53,180,181],{"style":63},"})",[35,183,185],{"id":184},"rename-and-relocate-files","Rename and relocate files",[10,187,188,191,192,195],{},[14,189,190],{},"file.baseName"," builds a file's name, extension included. Here it renames every Faker file to ",[14,193,194],{},"\u003Cname>.mock.ts"," instead of the plugin default.",[43,197,200],{"language":45,"filename":198,"code":199,"class":48},"file-name.ts","import { pluginFaker } from '@kubb\u002Fplugin-faker'\n\npluginFaker({\n  resolver: {\n    file: {\n      baseName({ name, extname }) {\n        return `${name}.mock${extname}`\n      },\n    },\n  },\n})",[14,201,202,85,218,85,220,85,227,85,237,85,248,85,268,85,295,85,303,85,311,85,319],{"class":51},[53,203,204,206,208,211,213,215],{"class":55,"style":56},[53,205,60],{"style":59},[53,207,64],{"style":63},[53,209,210],{"style":67},"pluginFaker ",[53,212,77],{"style":63},[53,214,80],{"style":59},[53,216,217],{"style":83},"'@kubb\u002Fplugin-faker'",[53,219],{"class":55,"style":56},[53,221,222,225],{"class":55,"style":56},[53,223,224],{"style":92},"pluginFaker",[53,226,95],{"style":63},[53,228,229,231,233,235],{"class":55,"style":56},[53,230,100],{"style":63},[53,232,16],{"style":63},[53,234,105],{"style":59},[53,236,108],{"style":63},[53,238,239,241,244,246],{"class":55,"style":56},[53,240,113],{"style":63},[53,242,243],{"style":63},"file",[53,245,105],{"style":59},[53,247,108],{"style":63},[53,249,250,252,255,258,260,262,265],{"class":55,"style":56},[53,251,129],{"style":63},[53,253,254],{"style":92},"baseName",[53,256,257],{"style":63},"({ ",[53,259,116],{"style":67},[53,261,71],{"style":59},[53,263,264],{"style":67},"extname ",[53,266,267],{"style":63},"}) {",[53,269,270,273,275,277,279,281,283,286,288,291,293],{"class":55,"style":56},[53,271,272],{"style":63},"        ",[53,274,132],{"style":59},[53,276,159],{"style":83},[53,278,138],{"style":67},[53,280,116],{"style":67},[53,282,156],{"style":67},[53,284,285],{"style":83},".mock",[53,287,138],{"style":67},[53,289,290],{"style":67},"extname",[53,292,156],{"style":67},[53,294,159],{"style":83},[53,296,297,299,301],{"class":55,"style":56},[53,298,129],{"style":83},[53,300,156],{"style":63},[53,302,168],{"style":59},[53,304,305,307,309],{"class":55,"style":56},[53,306,113],{"style":59},[53,308,156],{"style":63},[53,310,168],{"style":59},[53,312,313,315,317],{"class":55,"style":56},[53,314,100],{"style":59},[53,316,156],{"style":63},[53,318,168],{"style":59},[53,320,321],{"class":55,"style":56},[53,322,181],{"style":63},[10,324,325,328,329,332,333,336,337,340],{},[14,326,327],{},"file.path"," returns the file's full path and bypasses the ",[14,330,331],{},"output.path"," and ",[14,334,335],{},"group"," layout, so the resolver owns where the file lands. This override moves every Faker file into a ",[14,338,339],{},"mocks\u002F"," folder. The returned path may not escape the project root.",[43,342,345],{"language":45,"filename":343,"code":344,"class":48},"file-path.ts","import { pluginFaker } from '@kubb\u002Fplugin-faker'\n\npluginFaker({\n  resolver: {\n    file: {\n      path({ baseName, output }) {\n        return `${output.path}\u002Fmocks\u002F${baseName}`\n      },\n    },\n  },\n})",[14,346,347,85,361,85,363,85,369,85,379,85,389,85,407,85,437,85,445,85,453,85,461],{"class":51},[53,348,349,351,353,355,357,359],{"class":55,"style":56},[53,350,60],{"style":59},[53,352,64],{"style":63},[53,354,210],{"style":67},[53,356,77],{"style":63},[53,358,80],{"style":59},[53,360,217],{"style":83},[53,362],{"class":55,"style":56},[53,364,365,367],{"class":55,"style":56},[53,366,224],{"style":92},[53,368,95],{"style":63},[53,370,371,373,375,377],{"class":55,"style":56},[53,372,100],{"style":63},[53,374,16],{"style":63},[53,376,105],{"style":59},[53,378,108],{"style":63},[53,380,381,383,385,387],{"class":55,"style":56},[53,382,113],{"style":63},[53,384,243],{"style":63},[53,386,105],{"style":59},[53,388,108],{"style":63},[53,390,391,393,396,398,400,402,405],{"class":55,"style":56},[53,392,129],{"style":63},[53,394,395],{"style":92},"path",[53,397,257],{"style":63},[53,399,254],{"style":67},[53,401,71],{"style":59},[53,403,404],{"style":67},"output ",[53,406,267],{"style":63},[53,408,409,411,413,415,417,420,422,424,426,429,431,433,435],{"class":55,"style":56},[53,410,272],{"style":63},[53,412,132],{"style":59},[53,414,159],{"style":83},[53,416,138],{"style":67},[53,418,419],{"style":67},"output",[53,421,144],{"style":59},[53,423,395],{"style":63},[53,425,156],{"style":67},[53,427,428],{"style":83},"\u002Fmocks\u002F",[53,430,138],{"style":67},[53,432,254],{"style":67},[53,434,156],{"style":67},[53,436,159],{"style":83},[53,438,439,441,443],{"class":55,"style":56},[53,440,129],{"style":83},[53,442,156],{"style":63},[53,444,168],{"style":59},[53,446,447,449,451],{"class":55,"style":56},[53,448,113],{"style":59},[53,450,156],{"style":63},[53,452,168],{"style":59},[53,454,455,457,459],{"class":55,"style":56},[53,456,100],{"style":59},[53,458,156],{"style":63},[53,460,168],{"style":59},[53,462,463],{"class":55,"style":56},[53,464,181],{"style":63},[35,466,468],{"id":467},"namespaced-names","Namespaced names",[10,470,471,472,475,476,479],{},"Override ",[14,473,474],{},"query.keyName"," to rename React Query keys. Use ",[14,477,478],{},"this.name"," to retain the active naming rule:",[43,481,484],{"language":45,"filename":482,"code":483,"class":48},"query-key.ts","import { pluginReactQuery } from '@kubb\u002Fplugin-react-query'\n\npluginReactQuery({\n  resolver: {\n    query: {\n      keyName(node) {\n        return `${this.name(node.operationId)}Key`\n      },\n    },\n  },\n})",[14,485,486,85,502,85,504,85,511,85,521,85,532,85,546,85,578,85,586,85,594,85,602],{"class":51},[53,487,488,490,492,495,497,499],{"class":55,"style":56},[53,489,60],{"style":59},[53,491,64],{"style":63},[53,493,494],{"style":67},"pluginReactQuery ",[53,496,77],{"style":63},[53,498,80],{"style":59},[53,500,501],{"style":83},"'@kubb\u002Fplugin-react-query'",[53,503],{"class":55,"style":56},[53,505,506,509],{"class":55,"style":56},[53,507,508],{"style":92},"pluginReactQuery",[53,510,95],{"style":63},[53,512,513,515,517,519],{"class":55,"style":56},[53,514,100],{"style":63},[53,516,16],{"style":63},[53,518,105],{"style":59},[53,520,108],{"style":63},[53,522,523,525,528,530],{"class":55,"style":56},[53,524,113],{"style":63},[53,526,527],{"style":63},"query",[53,529,105],{"style":59},[53,531,108],{"style":63},[53,533,534,536,539,541,544],{"class":55,"style":56},[53,535,129],{"style":63},[53,537,538],{"style":92},"keyName",[53,540,119],{"style":63},[53,542,543],{"style":67},"node",[53,545,124],{"style":63},[53,547,548,550,552,554,556,558,560,562,564,566,568,571,573,575],{"class":55,"style":56},[53,549,272],{"style":63},[53,551,132],{"style":59},[53,553,159],{"style":83},[53,555,138],{"style":67},[53,557,23],{"style":67},[53,559,144],{"style":59},[53,561,116],{"style":92},[53,563,119],{"style":63},[53,565,543],{"style":67},[53,567,144],{"style":59},[53,569,570],{"style":63},"operationId",[53,572,153],{"style":63},[53,574,156],{"style":67},[53,576,577],{"style":83},"Key`",[53,579,580,582,584],{"class":55,"style":56},[53,581,129],{"style":83},[53,583,156],{"style":63},[53,585,168],{"style":59},[53,587,588,590,592],{"class":55,"style":56},[53,589,113],{"style":59},[53,591,156],{"style":63},[53,593,168],{"style":59},[53,595,596,598,600],{"class":55,"style":56},[53,597,100],{"style":59},[53,599,156],{"style":63},[53,601,168],{"style":59},[53,603,604],{"class":55,"style":56},[53,605,181],{"style":63},[10,607,608,611,612,615,616,619,620,623,624,144],{},[14,609,610],{},"@kubb\u002Fplugin-ts"," names each response type through ",[14,613,614],{},"response.status",". This override rewrites the template so a ",[14,617,618],{},"200"," response reads ",[14,621,622],{},"GetPetById200Response"," instead of the default ",[14,625,626],{},"GetPetByIdStatus200",[43,628,631],{"language":45,"filename":629,"code":630,"class":48},"response.ts","import { pluginTs } from '@kubb\u002Fplugin-ts'\n\npluginTs({\n  resolver: {\n    response: {\n      status(node, statusCode) {\n        return this.name(`${node.operationId} ${statusCode} response`)\n      },\n    },\n  },\n})",[14,632,633,85,648,85,650,85,656,85,666,85,677,85,695,85,735,85,742,85,750,85,758],{"class":51},[53,634,635,637,639,642,644,646],{"class":55,"style":56},[53,636,60],{"style":59},[53,638,64],{"style":63},[53,640,641],{"style":67},"pluginTs ",[53,643,77],{"style":63},[53,645,80],{"style":59},[53,647,84],{"style":83},[53,649],{"class":55,"style":56},[53,651,652,654],{"class":55,"style":56},[53,653,68],{"style":92},[53,655,95],{"style":63},[53,657,658,660,662,664],{"class":55,"style":56},[53,659,100],{"style":63},[53,661,16],{"style":63},[53,663,105],{"style":59},[53,665,108],{"style":63},[53,667,668,670,673,675],{"class":55,"style":56},[53,669,113],{"style":63},[53,671,672],{"style":63},"response",[53,674,105],{"style":59},[53,676,108],{"style":63},[53,678,679,681,684,686,688,690,693],{"class":55,"style":56},[53,680,129],{"style":63},[53,682,683],{"style":92},"status",[53,685,119],{"style":63},[53,687,543],{"style":67},[53,689,71],{"style":59},[53,691,692],{"style":67},"statusCode",[53,694,124],{"style":63},[53,696,697,699,701,703,705,707,709,711,713,715,717,719,721,724,726,728,730,733],{"class":55,"style":56},[53,698,272],{"style":63},[53,700,132],{"style":59},[53,702,23],{"style":67},[53,704,144],{"style":59},[53,706,116],{"style":92},[53,708,119],{"style":63},[53,710,159],{"style":83},[53,712,138],{"style":67},[53,714,543],{"style":67},[53,716,144],{"style":59},[53,718,570],{"style":63},[53,720,156],{"style":67},[53,722,723],{"style":83}," ",[53,725,138],{"style":67},[53,727,692],{"style":67},[53,729,156],{"style":67},[53,731,732],{"style":83}," response`",[53,734,153],{"style":63},[53,736,737,740],{"class":55,"style":56},[53,738,739],{"style":63},"      }",[53,741,168],{"style":59},[53,743,744,746,748],{"class":55,"style":56},[53,745,113],{"style":59},[53,747,156],{"style":63},[53,749,168],{"style":59},[53,751,752,754,756],{"class":55,"style":56},[53,753,100],{"style":59},[53,755,156],{"style":63},[53,757,168],{"style":59},[53,759,760],{"class":55,"style":56},[53,761,181],{"style":63},{"title":763,"searchDepth":764,"depth":764,"links":765},"",5,[766,768,769],{"id":37,"depth":767,"text":38},2,{"id":184,"depth":767,"text":185},{"id":467,"depth":767,"text":468},"Resolvers name every symbol and file Kubb generates. The resolver option on each code-generating plugin patches a single naming rule, so you change what things are called or where files land without forking the plugin.","md",{"layout":773,"title":5,"description":770,"outline":774,"order":775,"navigation":776},"doc","deep",3,{"title":5,"icon":777},"i-iconoir-label",{"layout":773,"outline":774},{"title":5,"icon":777},"\u002Fdocs\u002F5.x\u002Fhow-to\u002Fresolvers",{"title":5,"description":770},{"loc":780},"kubb-labs\u002Fkubb\u002Fdocs\u002F5.x\u002Fhow-to\u002Fresolvers.md","docs\u002F5.x\u002Fhow-to\u002Fresolvers","TQY9i2GVPxYE5rTjbDPTlhMx5d2y5WeqnOTcAwVmrxA",1792931640689]