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