[{"data":1,"prerenderedAt":1469},["ShallowReactive",2],{"navigation":3,"examples-nav":224,"-examples-api-routes":353,"-examples-api-routes-surround":1464},[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":226,"body":355,"category":228,"description":227,"extension":1457,"icon":1458,"meta":1459,"navigation":1460,"path":229,"seo":1461,"stem":1462,"__hash__":1463},"examples/examples/api-routes/README.md",{"type":356,"value":357,"toc":1448},"minimark",[358,1136,1148,1152,1158,1194,1201,1205,1216,1274,1284,1288,1305,1310,1346,1350,1434,1438,1444],[359,360,363,651,713,802,826,880,924,963,1068],"code-tree",{":expand-all":361,"default-value":362,"expand-all":5},"true","api/hello.ts",[364,365,370],"pre",{"className":366,"code":367,"filename":368,"language":369,"meta":5,"style":5},"language-html shiki shiki-themes github-light github-dark github-dark","\u003C!doctype html>\n\u003Chtml lang=\"en\">\n  \u003Chead>\n    \u003Cmeta charset=\"utf-8\" />\n    \u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n    \u003Ctitle>API Routes\u003C/title>\n  \u003C/head>\n  \u003Cbody>\n    \u003Ch2>API Routes:\u003C/h2>\n    \u003Cul>\n      \u003Cli>\u003Ca href=\"/api/hello\">/api/hello\u003C/a>\u003C/li>\n      \u003Cli>\u003Ca href=\"/api/hello/world\">/api/hello/world\u003C/a>\u003C/li>\n      \u003Cli>\u003Ca href=\"/api/test\">/api/test\u003C/a>\u003C/li>\n    \u003C/ul>\n  \u003C/body>\n\u003C/html>\n","index.html","html",[371,372,373,393,413,424,444,469,484,494,504,519,529,564,593,622,632,641],"code",{"__ignoreMap":5},[374,375,378,382,386,390],"span",{"class":376,"line":377},"line",1,[374,379,381],{"class":380},"slsVL","\u003C!",[374,383,385],{"class":384},"sByVh","doctype",[374,387,389],{"class":388},"shcOC"," html",[374,391,392],{"class":380},">\n",[374,394,396,399,401,404,407,411],{"class":376,"line":395},2,[374,397,398],{"class":380},"\u003C",[374,400,369],{"class":384},[374,402,403],{"class":388}," lang",[374,405,406],{"class":380},"=",[374,408,410],{"class":409},"sfrk1","\"en\"",[374,412,392],{"class":380},[374,414,416,419,422],{"class":376,"line":415},3,[374,417,418],{"class":380},"  \u003C",[374,420,421],{"class":384},"head",[374,423,392],{"class":380},[374,425,427,430,433,436,438,441],{"class":376,"line":426},4,[374,428,429],{"class":380},"    \u003C",[374,431,432],{"class":384},"meta",[374,434,435],{"class":388}," charset",[374,437,406],{"class":380},[374,439,440],{"class":409},"\"utf-8\"",[374,442,443],{"class":380}," />\n",[374,445,447,449,451,454,456,459,462,464,467],{"class":376,"line":446},5,[374,448,429],{"class":380},[374,450,432],{"class":384},[374,452,453],{"class":388}," name",[374,455,406],{"class":380},[374,457,458],{"class":409},"\"viewport\"",[374,460,461],{"class":388}," content",[374,463,406],{"class":380},[374,465,466],{"class":409},"\"width=device-width,initial-scale=1\"",[374,468,443],{"class":380},[374,470,472,474,477,480,482],{"class":376,"line":471},6,[374,473,429],{"class":380},[374,475,476],{"class":384},"title",[374,478,479],{"class":380},">API Routes\u003C/",[374,481,476],{"class":384},[374,483,392],{"class":380},[374,485,487,490,492],{"class":376,"line":486},7,[374,488,489],{"class":380},"  \u003C/",[374,491,421],{"class":384},[374,493,392],{"class":380},[374,495,497,499,502],{"class":376,"line":496},8,[374,498,418],{"class":380},[374,500,501],{"class":384},"body",[374,503,392],{"class":380},[374,505,507,509,512,515,517],{"class":376,"line":506},9,[374,508,429],{"class":380},[374,510,511],{"class":384},"h2",[374,513,514],{"class":380},">API Routes:\u003C/",[374,516,511],{"class":384},[374,518,392],{"class":380},[374,520,522,524,527],{"class":376,"line":521},10,[374,523,429],{"class":380},[374,525,526],{"class":384},"ul",[374,528,392],{"class":380},[374,530,532,535,538,541,544,547,549,552,555,557,560,562],{"class":376,"line":531},11,[374,533,534],{"class":380},"      \u003C",[374,536,537],{"class":384},"li",[374,539,540],{"class":380},">\u003C",[374,542,543],{"class":384},"a",[374,545,546],{"class":388}," href",[374,548,406],{"class":380},[374,550,551],{"class":409},"\"/api/hello\"",[374,553,554],{"class":380},">/api/hello\u003C/",[374,556,543],{"class":384},[374,558,559],{"class":380},">\u003C/",[374,561,537],{"class":384},[374,563,392],{"class":380},[374,565,567,569,571,573,575,577,579,582,585,587,589,591],{"class":376,"line":566},12,[374,568,534],{"class":380},[374,570,537],{"class":384},[374,572,540],{"class":380},[374,574,543],{"class":384},[374,576,546],{"class":388},[374,578,406],{"class":380},[374,580,581],{"class":409},"\"/api/hello/world\"",[374,583,584],{"class":380},">/api/hello/world\u003C/",[374,586,543],{"class":384},[374,588,559],{"class":380},[374,590,537],{"class":384},[374,592,392],{"class":380},[374,594,596,598,600,602,604,606,608,611,614,616,618,620],{"class":376,"line":595},13,[374,597,534],{"class":380},[374,599,537],{"class":384},[374,601,540],{"class":380},[374,603,543],{"class":384},[374,605,546],{"class":388},[374,607,406],{"class":380},[374,609,610],{"class":409},"\"/api/test\"",[374,612,613],{"class":380},">/api/test\u003C/",[374,615,543],{"class":384},[374,617,559],{"class":380},[374,619,537],{"class":384},[374,621,392],{"class":380},[374,623,625,628,630],{"class":376,"line":624},14,[374,626,627],{"class":380},"    \u003C/",[374,629,526],{"class":384},[374,631,392],{"class":380},[374,633,635,637,639],{"class":376,"line":634},15,[374,636,489],{"class":380},[374,638,501],{"class":384},[374,640,392],{"class":380},[374,642,644,647,649],{"class":376,"line":643},16,[374,645,646],{"class":380},"\u003C/",[374,648,369],{"class":384},[374,650,392],{"class":380},[364,652,657],{"className":653,"code":654,"filename":655,"language":656,"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});\n","nitro.config.ts","ts",[371,658,659,677,683,697,708],{"__ignoreMap":5},[374,660,661,665,668,671,674],{"class":376,"line":377},[374,662,664],{"class":663},"so5gQ","import",[374,666,667],{"class":380}," { defineConfig } ",[374,669,670],{"class":663},"from",[374,672,673],{"class":409}," \"nitro\"",[374,675,676],{"class":380},";\n",[374,678,679],{"class":376,"line":395},[374,680,682],{"emptyLinePlaceholder":681},true,"\n",[374,684,685,688,691,694],{"class":376,"line":415},[374,686,687],{"class":663},"export",[374,689,690],{"class":663}," default",[374,692,693],{"class":388}," defineConfig",[374,695,696],{"class":380},"({\n",[374,698,699,702,705],{"class":376,"line":426},[374,700,701],{"class":380},"  serverDir: ",[374,703,704],{"class":409},"\"./\"",[374,706,707],{"class":380},",\n",[374,709,710],{"class":376,"line":446},[374,711,712],{"class":380},"});\n",[364,714,719],{"className":715,"code":716,"filename":717,"language":718,"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,720,721,726,740,748,760,770,775,782,792,797],{"__ignoreMap":5},[374,722,723],{"class":376,"line":377},[374,724,725],{"class":380},"{\n",[374,727,728,732,735,738],{"class":376,"line":395},[374,729,731],{"class":730},"suiK_","  \"type\"",[374,733,734],{"class":380},": ",[374,736,737],{"class":409},"\"module\"",[374,739,707],{"class":380},[374,741,742,745],{"class":376,"line":415},[374,743,744],{"class":730},"  \"scripts\"",[374,746,747],{"class":380},": {\n",[374,749,750,753,755,758],{"class":376,"line":426},[374,751,752],{"class":730},"    \"dev\"",[374,754,734],{"class":380},[374,756,757],{"class":409},"\"nitro dev\"",[374,759,707],{"class":380},[374,761,762,765,767],{"class":376,"line":446},[374,763,764],{"class":730},"    \"build\"",[374,766,734],{"class":380},[374,768,769],{"class":409},"\"nitro build\"\n",[374,771,772],{"class":376,"line":471},[374,773,774],{"class":380},"  },\n",[374,776,777,780],{"class":376,"line":486},[374,778,779],{"class":730},"  \"devDependencies\"",[374,781,747],{"class":380},[374,783,784,787,789],{"class":376,"line":496},[374,785,786],{"class":730},"    \"nitro\"",[374,788,734],{"class":380},[374,790,791],{"class":409},"\"latest\"\n",[374,793,794],{"class":376,"line":506},[374,795,796],{"class":380},"  }\n",[374,798,799],{"class":376,"line":521},[374,800,801],{"class":380},"}\n",[364,803,806],{"className":715,"code":804,"filename":805,"language":718,"meta":5,"style":5},"{\n  \"extends\": \"nitro/tsconfig\"\n}\n","tsconfig.json",[371,807,808,812,822],{"__ignoreMap":5},[374,809,810],{"class":376,"line":377},[374,811,725],{"class":380},[374,813,814,817,819],{"class":376,"line":395},[374,815,816],{"class":730},"  \"extends\"",[374,818,734],{"class":380},[374,820,821],{"class":409},"\"nitro/tsconfig\"\n",[374,823,824],{"class":376,"line":415},[374,825,801],{"class":380},[364,827,830],{"className":653,"code":828,"filename":829,"language":656,"meta":5,"style":5},"import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro/vite\";\n\nexport default defineConfig({ plugins: [nitro()] });\n","vite.config.ts",[371,831,832,845,859,863],{"__ignoreMap":5},[374,833,834,836,838,840,843],{"class":376,"line":377},[374,835,664],{"class":663},[374,837,667],{"class":380},[374,839,670],{"class":663},[374,841,842],{"class":409}," \"vite\"",[374,844,676],{"class":380},[374,846,847,849,852,854,857],{"class":376,"line":395},[374,848,664],{"class":663},[374,850,851],{"class":380}," { nitro } ",[374,853,670],{"class":663},[374,855,856],{"class":409}," \"nitro/vite\"",[374,858,676],{"class":380},[374,860,861],{"class":376,"line":415},[374,862,682],{"emptyLinePlaceholder":681},[374,864,865,867,869,871,874,877],{"class":376,"line":426},[374,866,687],{"class":663},[374,868,690],{"class":663},[374,870,693],{"class":388},[374,872,873],{"class":380},"({ plugins: [",[374,875,876],{"class":388},"nitro",[374,878,879],{"class":380},"()] });\n",[364,881,883],{"className":653,"code":882,"filename":362,"language":656,"meta":5,"style":5},"import { defineHandler } from \"nitro/h3\";\n\nexport default defineHandler(() => \"Nitro is amazing!\");\n",[371,884,885,899,903],{"__ignoreMap":5},[374,886,887,889,892,894,897],{"class":376,"line":377},[374,888,664],{"class":663},[374,890,891],{"class":380}," { defineHandler } ",[374,893,670],{"class":663},[374,895,896],{"class":409}," \"nitro/h3\"",[374,898,676],{"class":380},[374,900,901],{"class":376,"line":395},[374,902,682],{"emptyLinePlaceholder":681},[374,904,905,907,909,912,915,918,921],{"class":376,"line":415},[374,906,687],{"class":663},[374,908,690],{"class":663},[374,910,911],{"class":388}," defineHandler",[374,913,914],{"class":380},"(() ",[374,916,917],{"class":663},"=>",[374,919,920],{"class":409}," \"Nitro is amazing!\"",[374,922,923],{"class":380},");\n",[364,925,928],{"className":653,"code":926,"filename":927,"language":656,"meta":5,"style":5},"import { defineHandler } from \"nitro/h3\";\n\nexport default defineHandler(() => \"Test get handler\");\n","api/test.get.ts",[371,929,930,942,946],{"__ignoreMap":5},[374,931,932,934,936,938,940],{"class":376,"line":377},[374,933,664],{"class":663},[374,935,891],{"class":380},[374,937,670],{"class":663},[374,939,896],{"class":409},[374,941,676],{"class":380},[374,943,944],{"class":376,"line":395},[374,945,682],{"emptyLinePlaceholder":681},[374,947,948,950,952,954,956,958,961],{"class":376,"line":415},[374,949,687],{"class":663},[374,951,690],{"class":663},[374,953,911],{"class":388},[374,955,914],{"class":380},[374,957,917],{"class":663},[374,959,960],{"class":409}," \"Test get handler\"",[374,962,923],{"class":380},[364,964,967],{"className":653,"code":965,"filename":966,"language":656,"meta":5,"style":5},"import { defineHandler } from \"h3\";\n\nexport default defineHandler(async (event) => {\n  const body = await event.req.json();\n  return {\n    message: \"Test post handler\",\n    body,\n  };\n});\n","api/test.post.ts",[371,968,969,982,986,1015,1037,1044,1054,1059,1064],{"__ignoreMap":5},[374,970,971,973,975,977,980],{"class":376,"line":377},[374,972,664],{"class":663},[374,974,891],{"class":380},[374,976,670],{"class":663},[374,978,979],{"class":409}," \"h3\"",[374,981,676],{"class":380},[374,983,984],{"class":376,"line":395},[374,985,682],{"emptyLinePlaceholder":681},[374,987,988,990,992,994,997,1000,1003,1007,1010,1012],{"class":376,"line":415},[374,989,687],{"class":663},[374,991,690],{"class":663},[374,993,911],{"class":388},[374,995,996],{"class":380},"(",[374,998,999],{"class":663},"async",[374,1001,1002],{"class":380}," (",[374,1004,1006],{"class":1005},"sQHwn","event",[374,1008,1009],{"class":380},") ",[374,1011,917],{"class":663},[374,1013,1014],{"class":380}," {\n",[374,1016,1017,1020,1023,1026,1029,1032,1034],{"class":376,"line":426},[374,1018,1019],{"class":663},"  const",[374,1021,1022],{"class":730}," body",[374,1024,1025],{"class":663}," =",[374,1027,1028],{"class":663}," await",[374,1030,1031],{"class":380}," event.req.",[374,1033,718],{"class":388},[374,1035,1036],{"class":380},"();\n",[374,1038,1039,1042],{"class":376,"line":446},[374,1040,1041],{"class":663},"  return",[374,1043,1014],{"class":380},[374,1045,1046,1049,1052],{"class":376,"line":471},[374,1047,1048],{"class":380},"    message: ",[374,1050,1051],{"class":409},"\"Test post handler\"",[374,1053,707],{"class":380},[374,1055,1056],{"class":376,"line":486},[374,1057,1058],{"class":380},"    body,\n",[374,1060,1061],{"class":376,"line":496},[374,1062,1063],{"class":380},"  };\n",[374,1065,1066],{"class":376,"line":506},[374,1067,712],{"class":380},[364,1069,1072],{"className":653,"code":1070,"filename":1071,"language":656,"meta":5,"style":5},"import { defineHandler } from \"nitro/h3\";\n\nexport default defineHandler((event) => `Hello (param: ${event.context.params!.name})!`);\n","api/hello/[name].ts",[371,1073,1074,1086,1090],{"__ignoreMap":5},[374,1075,1076,1078,1080,1082,1084],{"class":376,"line":377},[374,1077,664],{"class":663},[374,1079,891],{"class":380},[374,1081,670],{"class":663},[374,1083,896],{"class":409},[374,1085,676],{"class":380},[374,1087,1088],{"class":376,"line":395},[374,1089,682],{"emptyLinePlaceholder":681},[374,1091,1092,1094,1096,1098,1101,1103,1105,1107,1110,1112,1115,1118,1120,1123,1126,1128,1131,1134],{"class":376,"line":415},[374,1093,687],{"class":663},[374,1095,690],{"class":663},[374,1097,911],{"class":388},[374,1099,1100],{"class":380},"((",[374,1102,1006],{"class":1005},[374,1104,1009],{"class":380},[374,1106,917],{"class":663},[374,1108,1109],{"class":409}," `Hello (param: ${",[374,1111,1006],{"class":380},[374,1113,1114],{"class":409},".",[374,1116,1117],{"class":380},"context",[374,1119,1114],{"class":409},[374,1121,1122],{"class":380},"params",[374,1124,1125],{"class":663},"!",[374,1127,1114],{"class":409},[374,1129,1130],{"class":380},"name",[374,1132,1133],{"class":409},"})!`",[374,1135,923],{"class":380},[1137,1138,1139,1140,1143,1144,1147],"p",{},"Nitro supports file-based routing in the ",[371,1141,1142],{},"api/"," or ",[371,1145,1146],{},"routes/"," directory. Each file becomes an API endpoint based on its path.",[511,1149,1151],{"id":1150},"basic-route","Basic Route",[1137,1153,1154,1155,1157],{},"Create a file in the ",[371,1156,1142],{}," directory to define a route. The file path becomes the URL path:",[364,1159,1160],{"className":653,"code":882,"filename":362,"language":656,"meta":5,"style":5},[371,1161,1162,1174,1178],{"__ignoreMap":5},[374,1163,1164,1166,1168,1170,1172],{"class":376,"line":377},[374,1165,664],{"class":663},[374,1167,891],{"class":380},[374,1169,670],{"class":663},[374,1171,896],{"class":409},[374,1173,676],{"class":380},[374,1175,1176],{"class":376,"line":395},[374,1177,682],{"emptyLinePlaceholder":681},[374,1179,1180,1182,1184,1186,1188,1190,1192],{"class":376,"line":415},[374,1181,687],{"class":663},[374,1183,690],{"class":663},[374,1185,911],{"class":388},[374,1187,914],{"class":380},[374,1189,917],{"class":663},[374,1191,920],{"class":409},[374,1193,923],{"class":380},[1137,1195,1196,1197,1200],{},"This creates a ",[371,1198,1199],{},"GET /api/hello"," endpoint.",[511,1202,1204],{"id":1203},"dynamic-routes","Dynamic Routes",[1137,1206,1207,1208,1211,1212,1215],{},"Use square brackets ",[371,1209,1210],{},"[param]"," for dynamic URL segments. Access params via ",[371,1213,1214],{},"event.context.params",":",[364,1217,1218],{"className":653,"code":1070,"filename":1071,"language":656,"meta":5,"style":5},[371,1219,1220,1232,1236],{"__ignoreMap":5},[374,1221,1222,1224,1226,1228,1230],{"class":376,"line":377},[374,1223,664],{"class":663},[374,1225,891],{"class":380},[374,1227,670],{"class":663},[374,1229,896],{"class":409},[374,1231,676],{"class":380},[374,1233,1234],{"class":376,"line":395},[374,1235,682],{"emptyLinePlaceholder":681},[374,1237,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272],{"class":376,"line":415},[374,1239,687],{"class":663},[374,1241,690],{"class":663},[374,1243,911],{"class":388},[374,1245,1100],{"class":380},[374,1247,1006],{"class":1005},[374,1249,1009],{"class":380},[374,1251,917],{"class":663},[374,1253,1109],{"class":409},[374,1255,1006],{"class":380},[374,1257,1114],{"class":409},[374,1259,1117],{"class":380},[374,1261,1114],{"class":409},[374,1263,1122],{"class":380},[374,1265,1125],{"class":663},[374,1267,1114],{"class":409},[374,1269,1130],{"class":380},[374,1271,1133],{"class":409},[374,1273,923],{"class":380},[1137,1275,1196,1276,1279,1280,1283],{},[371,1277,1278],{},"GET /api/hello/:name"," endpoint (e.g., ",[371,1281,1282],{},"/api/hello/world",").",[511,1285,1287],{"id":1286},"http-methods","HTTP Methods",[1137,1289,1290,1291,1294,1295,1294,1298,1294,1301,1304],{},"Suffix your file with the HTTP method (",[371,1292,1293],{},".get.ts",", ",[371,1296,1297],{},".post.ts",[371,1299,1300],{},".put.ts",[371,1302,1303],{},".delete.ts",", etc.):",[1306,1307,1309],"h3",{"id":1308},"get-handler","GET Handler",[364,1311,1312],{"className":653,"code":926,"filename":927,"language":656,"meta":5,"style":5},[371,1313,1314,1326,1330],{"__ignoreMap":5},[374,1315,1316,1318,1320,1322,1324],{"class":376,"line":377},[374,1317,664],{"class":663},[374,1319,891],{"class":380},[374,1321,670],{"class":663},[374,1323,896],{"class":409},[374,1325,676],{"class":380},[374,1327,1328],{"class":376,"line":395},[374,1329,682],{"emptyLinePlaceholder":681},[374,1331,1332,1334,1336,1338,1340,1342,1344],{"class":376,"line":415},[374,1333,687],{"class":663},[374,1335,690],{"class":663},[374,1337,911],{"class":388},[374,1339,914],{"class":380},[374,1341,917],{"class":663},[374,1343,960],{"class":409},[374,1345,923],{"class":380},[1306,1347,1349],{"id":1348},"post-handler","POST Handler",[364,1351,1352],{"className":653,"code":965,"filename":966,"language":656,"meta":5,"style":5},[371,1353,1354,1366,1370,1392,1408,1414,1422,1426,1430],{"__ignoreMap":5},[374,1355,1356,1358,1360,1362,1364],{"class":376,"line":377},[374,1357,664],{"class":663},[374,1359,891],{"class":380},[374,1361,670],{"class":663},[374,1363,979],{"class":409},[374,1365,676],{"class":380},[374,1367,1368],{"class":376,"line":395},[374,1369,682],{"emptyLinePlaceholder":681},[374,1371,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390],{"class":376,"line":415},[374,1373,687],{"class":663},[374,1375,690],{"class":663},[374,1377,911],{"class":388},[374,1379,996],{"class":380},[374,1381,999],{"class":663},[374,1383,1002],{"class":380},[374,1385,1006],{"class":1005},[374,1387,1009],{"class":380},[374,1389,917],{"class":663},[374,1391,1014],{"class":380},[374,1393,1394,1396,1398,1400,1402,1404,1406],{"class":376,"line":426},[374,1395,1019],{"class":663},[374,1397,1022],{"class":730},[374,1399,1025],{"class":663},[374,1401,1028],{"class":663},[374,1403,1031],{"class":380},[374,1405,718],{"class":388},[374,1407,1036],{"class":380},[374,1409,1410,1412],{"class":376,"line":446},[374,1411,1041],{"class":663},[374,1413,1014],{"class":380},[374,1415,1416,1418,1420],{"class":376,"line":471},[374,1417,1048],{"class":380},[374,1419,1051],{"class":409},[374,1421,707],{"class":380},[374,1423,1424],{"class":376,"line":486},[374,1425,1058],{"class":380},[374,1427,1428],{"class":376,"line":496},[374,1429,1063],{"class":380},[374,1431,1432],{"class":376,"line":506},[374,1433,712],{"class":380},[511,1435,1437],{"id":1436},"learn-more","Learn More",[526,1439,1440],{},[537,1441,1442],{},[543,1443,23],{"href":24},[1445,1446,1447],"style",{},"html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sByVh, html code.shiki .sByVh{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#85E89D}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}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 .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}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}",{"title":5,"searchDepth":395,"depth":395,"links":1449},[1450,1451,1452,1456],{"id":1150,"depth":395,"text":1151},{"id":1203,"depth":395,"text":1204},{"id":1286,"depth":395,"text":1287,"children":1453},[1454,1455],{"id":1308,"depth":415,"text":1309},{"id":1348,"depth":415,"text":1349},{"id":1436,"depth":395,"text":1437},"md","i-lucide-route",{"automd":681},{},{"title":226,"description":227},"examples/api-routes/README","sYUbyOHZFXA8Pr7pC2TxMDHmFYXwe7DigOKftxvIKxc",[1465,1466],null,{"title":236,"path":1467,"stem":1468,"description":237,"children":-1},"/examples/cached-handler","examples/cached-handler/README",1773050453345]