[{"data":1,"prerenderedAt":1212},["ShallowReactive",2],{"navigation":3,"examples-nav":224,"-examples-renderer":353,"-examples-renderer-surround":1205},[4,83,208,214,221],{"title":5,"path":6,"stem":7,"children":8,"icon":82},"","/docs","1.docs/1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","/docs/quick-start","1.docs/2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","/docs/renderer","1.docs/4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/docs/routing","1.docs/5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","/docs/assets","1.docs/50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","/docs/configuration","1.docs/50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","/docs/database","1.docs/50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","/docs/lifecycle","1.docs/50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"Plugins","/docs/plugins","1.docs/50.plugins","ri:plug-line",{"title":53,"path":54,"stem":55,"icon":56},"Tasks","/docs/tasks","1.docs/50.tasks","codicon:run-all",{"title":58,"path":59,"stem":60,"icon":61},"Server Entry","/docs/server-entry","1.docs/6.server-entry","ri:server-line",{"title":63,"path":64,"stem":65,"icon":66},"Cache","/docs/cache","1.docs/7.cache","ri:speed-line",{"title":68,"path":69,"stem":70,"icon":71},"KV Storage","/docs/storage","1.docs/8.storage","carbon:datastore",{"title":73,"path":74,"stem":75,"icon":76},"Migration Guide","/docs/migration","1.docs/99.migration","ri:arrow-right-up-line",{"title":78,"path":79,"stem":80,"icon":81},"Nightly Channel","/docs/nightly","1.docs/99.nightly","ri:moon-fill","i-lucide-book-open",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Deploy","/deploy","2.deploy/0.index",[88,90,111],{"title":84,"path":85,"stem":86,"icon":89},"ri:upload-cloud-2-line",{"title":91,"path":92,"stem":93,"children":94,"page":110},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[95,100,105],{"title":96,"path":97,"stem":98,"icon":99},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":101,"path":102,"stem":103,"icon":104},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":106,"path":107,"stem":108,"icon":109},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":112,"path":113,"stem":114,"children":115,"page":110},"Providers","/deploy/providers","2.deploy/20.providers",[116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204],{"title":117,"path":118,"stem":119},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":121,"path":122,"stem":123},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":125,"path":126,"stem":127},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":129,"path":130,"stem":131},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":133,"path":134,"stem":135},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":137,"path":138,"stem":139},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":141,"path":142,"stem":143},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":145,"path":146,"stem":147},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":149,"path":150,"stem":151},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":153,"path":154,"stem":155},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":157,"path":158,"stem":159},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":161,"path":162,"stem":163},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":165,"path":166,"stem":167},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":169,"path":170,"stem":171},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":173,"path":174,"stem":175},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":177,"path":178,"stem":179},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":181,"path":182,"stem":183},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":185,"path":186,"stem":187},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":189,"path":190,"stem":191},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":193,"path":194,"stem":195},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":197,"path":198,"stem":199},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":201,"path":202,"stem":203},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":205,"path":206,"stem":207},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":209,"path":210,"stem":211,"children":212,"icon":36},"Config","/config","3.config/0.index",[213],{"title":209,"path":210,"stem":211,"icon":36},{"title":215,"path":216,"stem":217,"children":218,"icon":220},"Examples","/examples","4.examples/0.index",[219],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-folder-code",{"title":5,"path":222,"stem":223},"/","index",[225,230,235,239,243,246,251,255,259,263,267,271,275,280,284,287,291,295,299,304,308,313,317,321,325,329,333,337,341,345,349],{"title":226,"description":227,"category":228,"path":229},"API Routes","File-based API routing with HTTP method support and dynamic parameters.","features","/examples/api-routes/readme",{"title":231,"description":232,"category":233,"path":234},"Auto Imports","Automatic imports for utilities and composables.","config","/examples/auto-imports/readme",{"title":236,"description":237,"category":228,"path":238},"Cached Handler","Cache route responses with configurable bypass logic.","/examples/cached-handler/readme",{"title":240,"description":241,"category":228,"path":242},"Custom Error Handler","Customize error responses with a global error handler.","/examples/custom-error-handler/readme",{"title":38,"description":244,"category":228,"path":245},"Built-in database support with SQL template literals.","/examples/database/readme",{"title":247,"description":248,"category":249,"path":250},"Elysia","Integrate Elysia with Nitro using the server entry.","backend frameworks","/examples/elysia/readme",{"title":252,"description":253,"category":249,"path":254},"Express","Integrate Express with Nitro using the server entry.","/examples/express/readme",{"title":256,"description":257,"category":249,"path":258},"Fastify","Integrate Fastify with Nitro using the server entry.","/examples/fastify/readme",{"title":260,"description":261,"category":228,"path":262},"Hello World","Minimal Nitro server using the web standard fetch handler.","/examples/hello-world/readme",{"title":264,"description":265,"category":249,"path":266},"Hono","Integrate Hono with Nitro using the server entry.","/examples/hono/readme",{"title":268,"description":269,"category":233,"path":270},"Import Alias","Custom import aliases for cleaner module paths.","/examples/import-alias/readme",{"title":272,"description":273,"category":228,"path":274},"Middleware","Request middleware for authentication, logging, and request modification.","/examples/middleware/readme",{"title":276,"description":277,"category":278,"path":279},"Mono JSX","Server-side JSX rendering in Nitro with mono-jsx.","server side rendering","/examples/mono-jsx/readme",{"title":281,"description":282,"category":278,"path":283},"Nano JSX","Server-side JSX rendering in Nitro with nano-jsx.","/examples/nano-jsx/readme",{"title":48,"description":285,"category":228,"path":286},"Extend Nitro with custom plugins for hooks and lifecycle events.","/examples/plugins/readme",{"title":288,"description":289,"category":278,"path":290},"Custom Renderer","Build a custom HTML renderer in Nitro with server-side data fetching.","/examples/renderer/readme",{"title":292,"description":293,"category":233,"path":294},"Runtime Config","Environment-aware configuration with runtime access.","/examples/runtime-config/readme",{"title":296,"description":297,"category":228,"path":298},"Server Fetch","Internal server-to-server requests without network overhead.","/examples/server-fetch/readme",{"title":300,"description":301,"category":302,"path":303},"Shiki","Server-side syntax highlighting in Nitro with Shiki.","integrations","/examples/shiki/readme",{"title":305,"description":306,"category":228,"path":307},"Virtual Routes","Define routes programmatically using Nitro's virtual module system.","/examples/virtual-routes/readme",{"title":309,"description":310,"category":311,"path":312},"Vite Nitro Plugin","Use Nitro as a Vite plugin for programmatic configuration.","vite","/examples/vite-nitro-plugin/readme",{"title":314,"description":315,"category":311,"path":316},"Vite RSC","React Server Components with Vite and Nitro.","/examples/vite-rsc/readme",{"title":318,"description":319,"category":278,"path":320},"Vite SSR HTML","Server-side rendering with vanilla HTML, Vite, and Nitro.","/examples/vite-ssr-html/readme",{"title":322,"description":323,"category":278,"path":324},"SSR with Preact","Server-side rendering with Preact in Nitro using Vite.","/examples/vite-ssr-preact/readme",{"title":326,"description":327,"category":278,"path":328},"SSR with React","Server-side rendering with React in Nitro using Vite.","/examples/vite-ssr-react/readme",{"title":330,"description":331,"category":278,"path":332},"SSR with SolidJS","Server-side rendering with SolidJS in Nitro using Vite.","/examples/vite-ssr-solid/readme",{"title":334,"description":335,"category":278,"path":336},"SSR with TanStack Router","Client-side routing with TanStack Router in Nitro using Vite.","/examples/vite-ssr-tsr-react/readme",{"title":338,"description":339,"category":278,"path":340},"SSR with TanStack Start","Full-stack React with TanStack Start in Nitro using Vite.","/examples/vite-ssr-tss-react/readme",{"title":342,"description":343,"category":278,"path":344},"SSR with Vue Router","Server-side rendering with Vue Router in Nitro using Vite.","/examples/vite-ssr-vue-router/readme",{"title":346,"description":347,"category":311,"path":348},"Vite + tRPC","End-to-end typesafe APIs with tRPC in Nitro using Vite.","/examples/vite-trpc/readme",{"title":350,"description":351,"category":228,"path":352},"WebSocket","Real-time bidirectional communication with WebSocket support.","/examples/websocket/readme",{"id":354,"title":288,"body":355,"category":278,"description":289,"extension":1198,"icon":1199,"meta":1200,"navigation":1201,"path":290,"seo":1202,"stem":1203,"__hash__":1204},"examples/examples/renderer/README.md",{"type":356,"value":357,"toc":1193},"minimark",[358,913,921,925,1107,1116,1125,1129,1165,1176,1180,1189],[359,360,363,449,542,791,815,869],"code-tree",{":expand-all":361,"default-value":362,"expand-all":5},"true","renderer.ts",[364,365,370],"pre",{"className":366,"code":367,"filename":368,"language":369,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","import { defineConfig } from \"nitro\";\n\nexport default defineConfig({\n  serverDir: \"./\",\n  renderer: { handler: \"./renderer\" },\n});\n","nitro.config.ts","ts",[371,372,373,396,403,419,431,443],"code",{"__ignoreMap":5},[374,375,378,382,386,389,393],"span",{"class":376,"line":377},"line",1,[374,379,381],{"class":380},"so5gQ","import",[374,383,385],{"class":384},"slsVL"," { defineConfig } ",[374,387,388],{"class":380},"from",[374,390,392],{"class":391},"sfrk1"," \"nitro\"",[374,394,395],{"class":384},";\n",[374,397,399],{"class":376,"line":398},2,[374,400,402],{"emptyLinePlaceholder":401},true,"\n",[374,404,406,409,412,416],{"class":376,"line":405},3,[374,407,408],{"class":380},"export",[374,410,411],{"class":380}," default",[374,413,415],{"class":414},"shcOC"," defineConfig",[374,417,418],{"class":384},"({\n",[374,420,422,425,428],{"class":376,"line":421},4,[374,423,424],{"class":384},"  serverDir: ",[374,426,427],{"class":391},"\"./\"",[374,429,430],{"class":384},",\n",[374,432,434,437,440],{"class":376,"line":433},5,[374,435,436],{"class":384},"  renderer: { handler: ",[374,438,439],{"class":391},"\"./renderer\"",[374,441,442],{"class":384}," },\n",[374,444,446],{"class":376,"line":445},6,[374,447,448],{"class":384},"});\n",[364,450,455],{"className":451,"code":452,"filename":453,"language":454,"meta":5,"style":5},"language-json shiki shiki-themes github-light github-dark github-dark","{\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"nitro dev\",\n    \"build\": \"nitro build\"\n  },\n  \"devDependencies\": {\n    \"nitro\": \"latest\"\n  }\n}\n","package.json","json",[371,456,457,462,476,484,496,506,511,519,530,536],{"__ignoreMap":5},[374,458,459],{"class":376,"line":377},[374,460,461],{"class":384},"{\n",[374,463,464,468,471,474],{"class":376,"line":398},[374,465,467],{"class":466},"suiK_","  \"type\"",[374,469,470],{"class":384},": ",[374,472,473],{"class":391},"\"module\"",[374,475,430],{"class":384},[374,477,478,481],{"class":376,"line":405},[374,479,480],{"class":466},"  \"scripts\"",[374,482,483],{"class":384},": {\n",[374,485,486,489,491,494],{"class":376,"line":421},[374,487,488],{"class":466},"    \"dev\"",[374,490,470],{"class":384},[374,492,493],{"class":391},"\"nitro dev\"",[374,495,430],{"class":384},[374,497,498,501,503],{"class":376,"line":433},[374,499,500],{"class":466},"    \"build\"",[374,502,470],{"class":384},[374,504,505],{"class":391},"\"nitro build\"\n",[374,507,508],{"class":376,"line":445},[374,509,510],{"class":384},"  },\n",[374,512,514,517],{"class":376,"line":513},7,[374,515,516],{"class":466},"  \"devDependencies\"",[374,518,483],{"class":384},[374,520,522,525,527],{"class":376,"line":521},8,[374,523,524],{"class":466},"    \"nitro\"",[374,526,470],{"class":384},[374,528,529],{"class":391},"\"latest\"\n",[374,531,533],{"class":376,"line":532},9,[374,534,535],{"class":384},"  }\n",[374,537,539],{"class":376,"line":538},10,[374,540,541],{"class":384},"}\n",[364,543,545],{"className":366,"code":544,"filename":362,"language":369,"meta":5,"style":5},"import { fetch } from \"nitro\";\n\nexport default async function renderer({ url }: { req: Request; url: URL }) {\n  const apiRes = await fetch(\"/api/hello\").then((res) => res.text());\n  return new Response(\n    /* html */ `\u003C!DOCTYPE html>\n    \u003Chtml>\n    \u003Chead>\n      \u003Ctitle>Custom Renderer\u003C/title>\n    \u003C/head>\n    \u003Cbody>\n      \u003Ch1>Hello from custom renderer!\u003C/h1>\n      \u003Cp>Current path: ${url.pathname}\u003C/p>\n      \u003Cp>API says: ${apiRes}\u003C/p>\n    \u003C/body>\n    \u003C/html>`,\n    { headers: { \"content-type\": \"text/html; charset=utf-8\" } }\n  );\n}\n",[371,546,547,560,564,616,666,680,689,694,699,704,709,715,721,738,749,755,763,780,786],{"__ignoreMap":5},[374,548,549,551,554,556,558],{"class":376,"line":377},[374,550,381],{"class":380},[374,552,553],{"class":384}," { fetch } ",[374,555,388],{"class":380},[374,557,392],{"class":391},[374,559,395],{"class":384},[374,561,562],{"class":376,"line":398},[374,563,402],{"emptyLinePlaceholder":401},[374,565,566,568,570,573,576,579,582,586,589,592,595,598,600,603,606,608,610,613],{"class":376,"line":405},[374,567,408],{"class":380},[374,569,411],{"class":380},[374,571,572],{"class":380}," async",[374,574,575],{"class":380}," function",[374,577,578],{"class":414}," renderer",[374,580,581],{"class":384},"({ ",[374,583,585],{"class":584},"sQHwn","url",[374,587,588],{"class":384}," }",[374,590,591],{"class":380},":",[374,593,594],{"class":384}," { ",[374,596,597],{"class":584},"req",[374,599,591],{"class":380},[374,601,602],{"class":414}," Request",[374,604,605],{"class":384},"; ",[374,607,585],{"class":584},[374,609,591],{"class":380},[374,611,612],{"class":414}," URL",[374,614,615],{"class":384}," }) {\n",[374,617,618,621,624,627,630,633,636,639,642,645,648,651,654,657,660,663],{"class":376,"line":421},[374,619,620],{"class":380},"  const",[374,622,623],{"class":466}," apiRes",[374,625,626],{"class":380}," =",[374,628,629],{"class":380}," await",[374,631,632],{"class":414}," fetch",[374,634,635],{"class":384},"(",[374,637,638],{"class":391},"\"/api/hello\"",[374,640,641],{"class":384},").",[374,643,644],{"class":414},"then",[374,646,647],{"class":384},"((",[374,649,650],{"class":584},"res",[374,652,653],{"class":384},") ",[374,655,656],{"class":380},"=>",[374,658,659],{"class":384}," res.",[374,661,662],{"class":414},"text",[374,664,665],{"class":384},"());\n",[374,667,668,671,674,677],{"class":376,"line":433},[374,669,670],{"class":380},"  return",[374,672,673],{"class":380}," new",[374,675,676],{"class":414}," Response",[374,678,679],{"class":384},"(\n",[374,681,682,686],{"class":376,"line":445},[374,683,685],{"class":684},"sCsY4","    /* html */",[374,687,688],{"class":391}," `\u003C!DOCTYPE html>\n",[374,690,691],{"class":376,"line":513},[374,692,693],{"class":391},"    \u003Chtml>\n",[374,695,696],{"class":376,"line":521},[374,697,698],{"class":391},"    \u003Chead>\n",[374,700,701],{"class":376,"line":532},[374,702,703],{"class":391},"      \u003Ctitle>Custom Renderer\u003C/title>\n",[374,705,706],{"class":376,"line":538},[374,707,708],{"class":391},"    \u003C/head>\n",[374,710,712],{"class":376,"line":711},11,[374,713,714],{"class":391},"    \u003Cbody>\n",[374,716,718],{"class":376,"line":717},12,[374,719,720],{"class":391},"      \u003Ch1>Hello from custom renderer!\u003C/h1>\n",[374,722,724,727,729,732,735],{"class":376,"line":723},13,[374,725,726],{"class":391},"      \u003Cp>Current path: ${",[374,728,585],{"class":384},[374,730,731],{"class":391},".",[374,733,734],{"class":384},"pathname",[374,736,737],{"class":391},"}\u003C/p>\n",[374,739,741,744,747],{"class":376,"line":740},14,[374,742,743],{"class":391},"      \u003Cp>API says: ${",[374,745,746],{"class":384},"apiRes",[374,748,737],{"class":391},[374,750,752],{"class":376,"line":751},15,[374,753,754],{"class":391},"    \u003C/body>\n",[374,756,758,761],{"class":376,"line":757},16,[374,759,760],{"class":391},"    \u003C/html>`",[374,762,430],{"class":384},[374,764,766,769,772,774,777],{"class":376,"line":765},17,[374,767,768],{"class":384},"    { headers: { ",[374,770,771],{"class":391},"\"content-type\"",[374,773,470],{"class":384},[374,775,776],{"class":391},"\"text/html; charset=utf-8\"",[374,778,779],{"class":384}," } }\n",[374,781,783],{"class":376,"line":782},18,[374,784,785],{"class":384},"  );\n",[374,787,789],{"class":376,"line":788},19,[374,790,541],{"class":384},[364,792,795],{"className":451,"code":793,"filename":794,"language":454,"meta":5,"style":5},"{\n  \"extends\": \"nitro/tsconfig\"\n}\n","tsconfig.json",[371,796,797,801,811],{"__ignoreMap":5},[374,798,799],{"class":376,"line":377},[374,800,461],{"class":384},[374,802,803,806,808],{"class":376,"line":398},[374,804,805],{"class":466},"  \"extends\"",[374,807,470],{"class":384},[374,809,810],{"class":391},"\"nitro/tsconfig\"\n",[374,812,813],{"class":376,"line":405},[374,814,541],{"class":384},[364,816,819],{"className":366,"code":817,"filename":818,"language":369,"meta":5,"style":5},"import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro/vite\";\n\nexport default defineConfig({ plugins: [nitro()] });\n","vite.config.ts",[371,820,821,834,848,852],{"__ignoreMap":5},[374,822,823,825,827,829,832],{"class":376,"line":377},[374,824,381],{"class":380},[374,826,385],{"class":384},[374,828,388],{"class":380},[374,830,831],{"class":391}," \"vite\"",[374,833,395],{"class":384},[374,835,836,838,841,843,846],{"class":376,"line":398},[374,837,381],{"class":380},[374,839,840],{"class":384}," { nitro } ",[374,842,388],{"class":380},[374,844,845],{"class":391}," \"nitro/vite\"",[374,847,395],{"class":384},[374,849,850],{"class":376,"line":405},[374,851,402],{"emptyLinePlaceholder":401},[374,853,854,856,858,860,863,866],{"class":376,"line":421},[374,855,408],{"class":380},[374,857,411],{"class":380},[374,859,415],{"class":414},[374,861,862],{"class":384},"({ plugins: [",[374,864,865],{"class":414},"nitro",[374,867,868],{"class":384},"()] });\n",[364,870,873],{"className":366,"code":871,"filename":872,"language":369,"meta":5,"style":5},"import { defineHandler } from \"nitro/h3\";\n\nexport default defineHandler(() => \"Nitro is amazing!\");\n","api/hello.ts",[371,874,875,889,893],{"__ignoreMap":5},[374,876,877,879,882,884,887],{"class":376,"line":377},[374,878,381],{"class":380},[374,880,881],{"class":384}," { defineHandler } ",[374,883,388],{"class":380},[374,885,886],{"class":391}," \"nitro/h3\"",[374,888,395],{"class":384},[374,890,891],{"class":376,"line":398},[374,892,402],{"emptyLinePlaceholder":401},[374,894,895,897,899,902,905,907,910],{"class":376,"line":405},[374,896,408],{"class":380},[374,898,411],{"class":380},[374,900,901],{"class":414}," defineHandler",[374,903,904],{"class":384},"(() ",[374,906,656],{"class":380},[374,908,909],{"class":391}," \"Nitro is amazing!\"",[374,911,912],{"class":384},");\n",[914,915,916,917,920],"p",{},"Create a custom renderer that generates HTML responses with data from API routes. Use Nitro's internal ",[371,918,919],{},"fetch"," to call routes without network overhead.",[922,923,18],"h2",{"id":924},"renderer",[364,926,927],{"className":366,"code":544,"filename":362,"language":369,"meta":5,"style":5},[371,928,929,941,945,983,1017,1027,1033,1037,1041,1045,1049,1053,1057,1069,1077,1081,1087,1099,1103],{"__ignoreMap":5},[374,930,931,933,935,937,939],{"class":376,"line":377},[374,932,381],{"class":380},[374,934,553],{"class":384},[374,936,388],{"class":380},[374,938,392],{"class":391},[374,940,395],{"class":384},[374,942,943],{"class":376,"line":398},[374,944,402],{"emptyLinePlaceholder":401},[374,946,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,977,979,981],{"class":376,"line":405},[374,948,408],{"class":380},[374,950,411],{"class":380},[374,952,572],{"class":380},[374,954,575],{"class":380},[374,956,578],{"class":414},[374,958,581],{"class":384},[374,960,585],{"class":584},[374,962,588],{"class":384},[374,964,591],{"class":380},[374,966,594],{"class":384},[374,968,597],{"class":584},[374,970,591],{"class":380},[374,972,602],{"class":414},[374,974,605],{"class":384},[374,976,585],{"class":584},[374,978,591],{"class":380},[374,980,612],{"class":414},[374,982,615],{"class":384},[374,984,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015],{"class":376,"line":421},[374,986,620],{"class":380},[374,988,623],{"class":466},[374,990,626],{"class":380},[374,992,629],{"class":380},[374,994,632],{"class":414},[374,996,635],{"class":384},[374,998,638],{"class":391},[374,1000,641],{"class":384},[374,1002,644],{"class":414},[374,1004,647],{"class":384},[374,1006,650],{"class":584},[374,1008,653],{"class":384},[374,1010,656],{"class":380},[374,1012,659],{"class":384},[374,1014,662],{"class":414},[374,1016,665],{"class":384},[374,1018,1019,1021,1023,1025],{"class":376,"line":433},[374,1020,670],{"class":380},[374,1022,673],{"class":380},[374,1024,676],{"class":414},[374,1026,679],{"class":384},[374,1028,1029,1031],{"class":376,"line":445},[374,1030,685],{"class":684},[374,1032,688],{"class":391},[374,1034,1035],{"class":376,"line":513},[374,1036,693],{"class":391},[374,1038,1039],{"class":376,"line":521},[374,1040,698],{"class":391},[374,1042,1043],{"class":376,"line":532},[374,1044,703],{"class":391},[374,1046,1047],{"class":376,"line":538},[374,1048,708],{"class":391},[374,1050,1051],{"class":376,"line":711},[374,1052,714],{"class":391},[374,1054,1055],{"class":376,"line":717},[374,1056,720],{"class":391},[374,1058,1059,1061,1063,1065,1067],{"class":376,"line":723},[374,1060,726],{"class":391},[374,1062,585],{"class":384},[374,1064,731],{"class":391},[374,1066,734],{"class":384},[374,1068,737],{"class":391},[374,1070,1071,1073,1075],{"class":376,"line":740},[374,1072,743],{"class":391},[374,1074,746],{"class":384},[374,1076,737],{"class":391},[374,1078,1079],{"class":376,"line":751},[374,1080,754],{"class":391},[374,1082,1083,1085],{"class":376,"line":757},[374,1084,760],{"class":391},[374,1086,430],{"class":384},[374,1088,1089,1091,1093,1095,1097],{"class":376,"line":765},[374,1090,768],{"class":384},[374,1092,771],{"class":391},[374,1094,470],{"class":384},[374,1096,776],{"class":391},[374,1098,779],{"class":384},[374,1100,1101],{"class":376,"line":782},[374,1102,785],{"class":384},[374,1104,1105],{"class":376,"line":788},[374,1106,541],{"class":384},[914,1108,1109,1110,1112,1113,731],{},"Nitro auto-detects ",[371,1111,362],{}," in your project root and uses it for all non-API routes. The renderer function receives the request URL and returns a ",[371,1114,1115],{},"Response",[914,1117,1118,1119,1121,1122,1124],{},"Use ",[371,1120,919],{}," from ",[371,1123,865],{}," to call API routes without network overhead—these requests stay in-process.",[922,1126,1128],{"id":1127},"api-route","API Route",[364,1130,1131],{"className":366,"code":871,"filename":872,"language":369,"meta":5,"style":5},[371,1132,1133,1145,1149],{"__ignoreMap":5},[374,1134,1135,1137,1139,1141,1143],{"class":376,"line":377},[374,1136,381],{"class":380},[374,1138,881],{"class":384},[374,1140,388],{"class":380},[374,1142,886],{"class":391},[374,1144,395],{"class":384},[374,1146,1147],{"class":376,"line":398},[374,1148,402],{"emptyLinePlaceholder":401},[374,1150,1151,1153,1155,1157,1159,1161,1163],{"class":376,"line":405},[374,1152,408],{"class":380},[374,1154,411],{"class":380},[374,1156,901],{"class":414},[374,1158,904],{"class":384},[374,1160,656],{"class":380},[374,1162,909],{"class":391},[374,1164,912],{"class":384},[914,1166,1167,1168,1171,1172,1175],{},"Define API routes in the ",[371,1169,1170],{},"api/"," directory. When the renderer calls ",[371,1173,1174],{},"fetch(\"/api/hello\")",", this handler runs and returns its response.",[922,1177,1179],{"id":1178},"learn-more","Learn More",[1181,1182,1183],"ul",{},[1184,1185,1186],"li",{},[1187,1188,18],"a",{"href":19},[1190,1191,1192],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":5,"searchDepth":398,"depth":398,"links":1194},[1195,1196,1197],{"id":924,"depth":398,"text":18},{"id":1127,"depth":398,"text":1128},{"id":1178,"depth":398,"text":1179},"md","i-lucide-code",{"automd":401},{},{"title":288,"description":289},"examples/renderer/README","9KPRI0BwqpgftgkXm-nOIeIAepzl2vPcmL5Pu0XXt0E",[1206,1209],{"title":281,"path":1207,"stem":1208,"description":282,"children":-1},"/examples/nano-jsx","examples/nano-jsx/README",{"title":318,"path":1210,"stem":1211,"description":319,"children":-1},"/examples/vite-ssr-html","examples/vite-ssr-html/README",1773050253404]