[{"data":1,"prerenderedAt":1600},["ShallowReactive",2],{"navigation":3,"examples-nav":389,"-examples-api-routes":490,"-examples-api-routes-surround":1596},[4,83,212,218,374,386],{"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,225,230,235,240,245,249,254,259,264,269,274,279,283,288,292,296,301,306,311,316,321,326,331,336,341,345,350,355,359,364,369],{"title":219,"path":220,"stem":221,"icon":224},"i-lucide-folder-code",{"title":226,"path":227,"stem":228,"icon":229},"API Routes","/examples/api-routes","4.examples/api-routes","i-lucide-route",{"title":231,"path":232,"stem":233,"icon":234},"Auto Imports","/examples/auto-imports","4.examples/auto-imports","i-lucide-import",{"title":236,"path":237,"stem":238,"icon":239},"Cached Handler","/examples/cached-handler","4.examples/cached-handler","i-lucide-clock",{"title":241,"path":242,"stem":243,"icon":244},"Custom Error Handler","/examples/custom-error-handler","4.examples/custom-error-handler","i-lucide-alert-circle",{"title":38,"path":246,"stem":247,"icon":248},"/examples/database","4.examples/database","i-lucide-database",{"title":250,"path":251,"stem":252,"icon":253},"Elysia","/examples/elysia","4.examples/elysia","i-skill-icons-elysia-dark",{"title":255,"path":256,"stem":257,"icon":258},"Express","/examples/express","4.examples/express","i-simple-icons-express",{"title":260,"path":261,"stem":262,"icon":263},"Fastify","/examples/fastify","4.examples/fastify","i-simple-icons-fastify",{"title":265,"path":266,"stem":267,"icon":268},"Hello World","/examples/hello-world","4.examples/hello-world","i-lucide-sparkles",{"title":270,"path":271,"stem":272,"icon":273},"Hono","/examples/hono","4.examples/hono","i-logos-hono",{"title":275,"path":276,"stem":277,"icon":278},"Import Alias","/examples/import-alias","4.examples/import-alias","i-lucide-at-sign",{"title":280,"path":281,"stem":282,"icon":46},"Middleware","/examples/middleware","4.examples/middleware",{"title":284,"path":285,"stem":286,"icon":287},"Mono JSX","/examples/mono-jsx","4.examples/mono-jsx","i-lucide-brackets",{"title":289,"path":290,"stem":291,"icon":287},"Nano JSX","/examples/nano-jsx","4.examples/nano-jsx",{"title":48,"path":293,"stem":294,"icon":295},"/examples/plugins","4.examples/plugins","i-lucide-plug",{"title":297,"path":298,"stem":299,"icon":300},"Custom Renderer","/examples/renderer","4.examples/renderer","i-lucide-code",{"title":302,"path":303,"stem":304,"icon":305},"Runtime Config","/examples/runtime-config","4.examples/runtime-config","i-lucide-settings",{"title":307,"path":308,"stem":309,"icon":310},"Server Fetch","/examples/server-fetch","4.examples/server-fetch","i-lucide-arrow-right-left",{"title":312,"path":313,"stem":314,"icon":315},"Shiki","/examples/shiki","4.examples/shiki","i-lucide-highlighter",{"title":317,"path":318,"stem":319,"icon":320},"Virtual Routes","/examples/virtual-routes","4.examples/virtual-routes","i-lucide-box",{"title":322,"path":323,"stem":324,"icon":325},"Vite Nitro Plugin","/examples/vite-nitro-plugin","4.examples/vite-nitro-plugin","i-logos-vitejs",{"title":327,"path":328,"stem":329,"icon":330},"Vite RSC","/examples/vite-rsc","4.examples/vite-rsc","i-logos-react",{"title":332,"path":333,"stem":334,"icon":335},"Vite SSR HTML","/examples/vite-ssr-html","4.examples/vite-ssr-html","i-logos-html-5",{"title":337,"path":338,"stem":339,"icon":340},"SSR with Preact","/examples/vite-ssr-preact","4.examples/vite-ssr-preact","i-logos-preact",{"title":342,"path":343,"stem":344,"icon":330},"SSR with React","/examples/vite-ssr-react","4.examples/vite-ssr-react",{"title":346,"path":347,"stem":348,"icon":349},"SSR with SolidJS","/examples/vite-ssr-solid","4.examples/vite-ssr-solid","i-logos-solidjs-icon",{"title":351,"path":352,"stem":353,"icon":354},"SSR with TanStack Router","/examples/vite-ssr-tsr-react","4.examples/vite-ssr-tsr-react","i-simple-icons-tanstack",{"title":356,"path":357,"stem":358,"icon":354},"SSR with TanStack Start","/examples/vite-ssr-tss-react","4.examples/vite-ssr-tss-react",{"title":360,"path":361,"stem":362,"icon":363},"SSR with Vue Router","/examples/vite-ssr-vue-router","4.examples/vite-ssr-vue-router","i-logos-vue",{"title":365,"path":366,"stem":367,"icon":368},"Vite + tRPC","/examples/vite-trpc","4.examples/vite-trpc","i-simple-icons-trpc",{"title":370,"path":371,"stem":372,"icon":373},"WebSocket","/examples/websocket","4.examples/websocket","i-lucide-radio",{"title":375,"path":376,"stem":377,"children":378},"Blog","/blog","9.blog",[379,382],{"title":375,"path":376,"stem":380,"icon":381},"9.blog/index","i-lucide-file-text",{"title":383,"path":384,"stem":385,"icon":381},"Nitro v3 Beta is here!","/blog/v3-beta","9.blog/1.v3-beta",{"title":5,"path":387,"stem":388},"/","index",[390,395,399,402,405,408,412,415,418,421,424,427,430,434,437,440,443,446,449,453,456,460,463,466,469,472,475,478,481,484,487],{"title":226,"description":391,"meta":392,"path":227},"File-based API routing with HTTP method support and dynamic parameters.",{"automd":393,"category":394,"icon":229},true,"features",{"title":231,"description":396,"meta":397,"path":232},"Automatic imports for utilities and composables.",{"automd":393,"category":398,"icon":234},"config",{"title":236,"description":400,"meta":401,"path":237},"Cache route responses with configurable bypass logic.",{"automd":393,"category":394,"icon":239},{"title":241,"description":403,"meta":404,"path":242},"Customize error responses with a global error handler.",{"automd":393,"category":394,"icon":244},{"title":38,"description":406,"meta":407,"path":246},"Built-in database support with SQL template literals.",{"automd":393,"category":394,"icon":248},{"title":250,"description":409,"meta":410,"path":251},"Integrate Elysia with Nitro using the server entry.",{"automd":393,"category":411,"icon":253},"backend frameworks",{"title":255,"description":413,"meta":414,"path":256},"Integrate Express with Nitro using the server entry.",{"automd":393,"category":411,"icon":258},{"title":260,"description":416,"meta":417,"path":261},"Integrate Fastify with Nitro using the server entry.",{"automd":393,"category":411,"icon":263},{"title":265,"description":419,"meta":420,"path":266},"Minimal Nitro server using the web standard fetch handler.",{"automd":393,"category":394,"icon":268},{"title":270,"description":422,"meta":423,"path":271},"Integrate Hono with Nitro using the server entry.",{"automd":393,"category":411,"icon":273},{"title":275,"description":425,"meta":426,"path":276},"Custom import aliases for cleaner module paths.",{"automd":393,"category":398,"icon":278},{"title":280,"description":428,"meta":429,"path":281},"Request middleware for authentication, logging, and request modification.",{"automd":393,"category":394,"icon":46},{"title":284,"description":431,"meta":432,"path":285},"Server-side JSX rendering in Nitro with mono-jsx.",{"automd":393,"category":433,"icon":287},"server side rendering",{"title":289,"description":435,"meta":436,"path":290},"Server-side JSX rendering in Nitro with nano-jsx.",{"automd":393,"category":433,"icon":287},{"title":48,"description":438,"meta":439,"path":293},"Extend Nitro with custom plugins for hooks and lifecycle events.",{"automd":393,"category":394,"icon":295},{"title":297,"description":441,"meta":442,"path":298},"Build a custom HTML renderer in Nitro with server-side data fetching.",{"automd":393,"category":433,"icon":300},{"title":302,"description":444,"meta":445,"path":303},"Environment-aware configuration with runtime access.",{"automd":393,"category":398,"icon":305},{"title":307,"description":447,"meta":448,"path":308},"Internal server-to-server requests without network overhead.",{"automd":393,"category":394,"icon":310},{"title":312,"description":450,"meta":451,"path":313},"Server-side syntax highlighting in Nitro with Shiki.",{"automd":393,"category":452,"icon":315},"integrations",{"title":317,"description":454,"meta":455,"path":318},"Define routes programmatically using Nitro's virtual module system.",{"automd":393,"category":394,"icon":320},{"title":322,"description":457,"meta":458,"path":323},"Use Nitro as a Vite plugin for programmatic configuration.",{"automd":393,"category":459,"icon":325},"vite",{"title":327,"description":461,"meta":462,"path":328},"React Server Components with Vite and Nitro.",{"automd":393,"category":459,"icon":330},{"title":332,"description":464,"meta":465,"path":333},"Server-side rendering with vanilla HTML, Vite, and Nitro.",{"automd":393,"category":433,"icon":335},{"title":337,"description":467,"meta":468,"path":338},"Server-side rendering with Preact in Nitro using Vite.",{"automd":393,"category":433,"icon":340},{"title":342,"description":470,"meta":471,"path":343},"Server-side rendering with React in Nitro using Vite.",{"automd":393,"category":433,"icon":330},{"title":346,"description":473,"meta":474,"path":347},"Server-side rendering with SolidJS in Nitro using Vite.",{"automd":393,"category":433,"icon":349},{"title":351,"description":476,"meta":477,"path":352},"Client-side routing with TanStack Router in Nitro using Vite.",{"automd":393,"category":433,"icon":354},{"title":356,"description":479,"meta":480,"path":357},"Full-stack React with TanStack Start in Nitro using Vite.",{"automd":393,"category":433,"icon":354},{"title":360,"description":482,"meta":483,"path":361},"Server-side rendering with Vue Router in Nitro using Vite.",{"automd":393,"category":433,"icon":363},{"title":365,"description":485,"meta":486,"path":366},"End-to-end typesafe APIs with tRPC in Nitro using Vite.",{"automd":393,"category":459,"icon":368},{"title":370,"description":488,"meta":489,"path":371},"Real-time bidirectional communication with WebSocket support.",{"automd":393,"category":394,"icon":373},{"id":491,"title":226,"body":492,"description":391,"extension":1591,"meta":1592,"navigation":1593,"path":227,"seo":1594,"stem":228,"__hash__":1595},"content/4.examples/api-routes.md",{"type":493,"value":494,"toc":1582,"icon":229},"minimark",[495,1270,1282,1286,1292,1328,1335,1339,1350,1408,1418,1422,1439,1444,1480,1484,1568,1572,1578],[496,497,500,788,849,938,962,1016,1059,1098,1202],"code-tree",{":expand-all":498,"default-value":499},"true","api/hello.ts",[501,502,507],"pre",{"className":503,"code":504,"filename":505,"language":506,"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",[508,509,510,530,550,561,581,606,621,631,641,656,666,701,730,759,769,778],"code",{"__ignoreMap":5},[511,512,515,519,523,527],"span",{"class":513,"line":514},"line",1,[511,516,518],{"class":517},"slsVL","\u003C!",[511,520,522],{"class":521},"sByVh","doctype",[511,524,526],{"class":525},"shcOC"," html",[511,528,529],{"class":517},">\n",[511,531,533,536,538,541,544,548],{"class":513,"line":532},2,[511,534,535],{"class":517},"\u003C",[511,537,506],{"class":521},[511,539,540],{"class":525}," lang",[511,542,543],{"class":517},"=",[511,545,547],{"class":546},"sfrk1","\"en\"",[511,549,529],{"class":517},[511,551,553,556,559],{"class":513,"line":552},3,[511,554,555],{"class":517},"  \u003C",[511,557,558],{"class":521},"head",[511,560,529],{"class":517},[511,562,564,567,570,573,575,578],{"class":513,"line":563},4,[511,565,566],{"class":517},"    \u003C",[511,568,569],{"class":521},"meta",[511,571,572],{"class":525}," charset",[511,574,543],{"class":517},[511,576,577],{"class":546},"\"utf-8\"",[511,579,580],{"class":517}," />\n",[511,582,584,586,588,591,593,596,599,601,604],{"class":513,"line":583},5,[511,585,566],{"class":517},[511,587,569],{"class":521},[511,589,590],{"class":525}," name",[511,592,543],{"class":517},[511,594,595],{"class":546},"\"viewport\"",[511,597,598],{"class":525}," content",[511,600,543],{"class":517},[511,602,603],{"class":546},"\"width=device-width,initial-scale=1\"",[511,605,580],{"class":517},[511,607,609,611,614,617,619],{"class":513,"line":608},6,[511,610,566],{"class":517},[511,612,613],{"class":521},"title",[511,615,616],{"class":517},">API Routes\u003C/",[511,618,613],{"class":521},[511,620,529],{"class":517},[511,622,624,627,629],{"class":513,"line":623},7,[511,625,626],{"class":517},"  \u003C/",[511,628,558],{"class":521},[511,630,529],{"class":517},[511,632,634,636,639],{"class":513,"line":633},8,[511,635,555],{"class":517},[511,637,638],{"class":521},"body",[511,640,529],{"class":517},[511,642,644,646,649,652,654],{"class":513,"line":643},9,[511,645,566],{"class":517},[511,647,648],{"class":521},"h2",[511,650,651],{"class":517},">API Routes:\u003C/",[511,653,648],{"class":521},[511,655,529],{"class":517},[511,657,659,661,664],{"class":513,"line":658},10,[511,660,566],{"class":517},[511,662,663],{"class":521},"ul",[511,665,529],{"class":517},[511,667,669,672,675,678,681,684,686,689,692,694,697,699],{"class":513,"line":668},11,[511,670,671],{"class":517},"      \u003C",[511,673,674],{"class":521},"li",[511,676,677],{"class":517},">\u003C",[511,679,680],{"class":521},"a",[511,682,683],{"class":525}," href",[511,685,543],{"class":517},[511,687,688],{"class":546},"\"/api/hello\"",[511,690,691],{"class":517},">/api/hello\u003C/",[511,693,680],{"class":521},[511,695,696],{"class":517},">\u003C/",[511,698,674],{"class":521},[511,700,529],{"class":517},[511,702,704,706,708,710,712,714,716,719,722,724,726,728],{"class":513,"line":703},12,[511,705,671],{"class":517},[511,707,674],{"class":521},[511,709,677],{"class":517},[511,711,680],{"class":521},[511,713,683],{"class":525},[511,715,543],{"class":517},[511,717,718],{"class":546},"\"/api/hello/world\"",[511,720,721],{"class":517},">/api/hello/world\u003C/",[511,723,680],{"class":521},[511,725,696],{"class":517},[511,727,674],{"class":521},[511,729,529],{"class":517},[511,731,733,735,737,739,741,743,745,748,751,753,755,757],{"class":513,"line":732},13,[511,734,671],{"class":517},[511,736,674],{"class":521},[511,738,677],{"class":517},[511,740,680],{"class":521},[511,742,683],{"class":525},[511,744,543],{"class":517},[511,746,747],{"class":546},"\"/api/test\"",[511,749,750],{"class":517},">/api/test\u003C/",[511,752,680],{"class":521},[511,754,696],{"class":517},[511,756,674],{"class":521},[511,758,529],{"class":517},[511,760,762,765,767],{"class":513,"line":761},14,[511,763,764],{"class":517},"    \u003C/",[511,766,663],{"class":521},[511,768,529],{"class":517},[511,770,772,774,776],{"class":513,"line":771},15,[511,773,626],{"class":517},[511,775,638],{"class":521},[511,777,529],{"class":517},[511,779,781,784,786],{"class":513,"line":780},16,[511,782,783],{"class":517},"\u003C/",[511,785,506],{"class":521},[511,787,529],{"class":517},[501,789,794],{"className":790,"code":791,"filename":792,"language":793,"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",[508,795,796,814,819,833,844],{"__ignoreMap":5},[511,797,798,802,805,808,811],{"class":513,"line":514},[511,799,801],{"class":800},"so5gQ","import",[511,803,804],{"class":517}," { defineConfig } ",[511,806,807],{"class":800},"from",[511,809,810],{"class":546}," \"nitro\"",[511,812,813],{"class":517},";\n",[511,815,816],{"class":513,"line":532},[511,817,818],{"emptyLinePlaceholder":393},"\n",[511,820,821,824,827,830],{"class":513,"line":552},[511,822,823],{"class":800},"export",[511,825,826],{"class":800}," default",[511,828,829],{"class":525}," defineConfig",[511,831,832],{"class":517},"({\n",[511,834,835,838,841],{"class":513,"line":563},[511,836,837],{"class":517},"  serverDir: ",[511,839,840],{"class":546},"\"./\"",[511,842,843],{"class":517},",\n",[511,845,846],{"class":513,"line":583},[511,847,848],{"class":517},"});\n",[501,850,855],{"className":851,"code":852,"filename":853,"language":854,"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",[508,856,857,862,876,884,896,906,911,918,928,933],{"__ignoreMap":5},[511,858,859],{"class":513,"line":514},[511,860,861],{"class":517},"{\n",[511,863,864,868,871,874],{"class":513,"line":532},[511,865,867],{"class":866},"suiK_","  \"type\"",[511,869,870],{"class":517},": ",[511,872,873],{"class":546},"\"module\"",[511,875,843],{"class":517},[511,877,878,881],{"class":513,"line":552},[511,879,880],{"class":866},"  \"scripts\"",[511,882,883],{"class":517},": {\n",[511,885,886,889,891,894],{"class":513,"line":563},[511,887,888],{"class":866},"    \"dev\"",[511,890,870],{"class":517},[511,892,893],{"class":546},"\"nitro dev\"",[511,895,843],{"class":517},[511,897,898,901,903],{"class":513,"line":583},[511,899,900],{"class":866},"    \"build\"",[511,902,870],{"class":517},[511,904,905],{"class":546},"\"nitro build\"\n",[511,907,908],{"class":513,"line":608},[511,909,910],{"class":517},"  },\n",[511,912,913,916],{"class":513,"line":623},[511,914,915],{"class":866},"  \"devDependencies\"",[511,917,883],{"class":517},[511,919,920,923,925],{"class":513,"line":633},[511,921,922],{"class":866},"    \"nitro\"",[511,924,870],{"class":517},[511,926,927],{"class":546},"\"latest\"\n",[511,929,930],{"class":513,"line":643},[511,931,932],{"class":517},"  }\n",[511,934,935],{"class":513,"line":658},[511,936,937],{"class":517},"}\n",[501,939,942],{"className":851,"code":940,"filename":941,"language":854,"meta":5,"style":5},"{\n  \"extends\": \"nitro/tsconfig\"\n}\n","tsconfig.json",[508,943,944,948,958],{"__ignoreMap":5},[511,945,946],{"class":513,"line":514},[511,947,861],{"class":517},[511,949,950,953,955],{"class":513,"line":532},[511,951,952],{"class":866},"  \"extends\"",[511,954,870],{"class":517},[511,956,957],{"class":546},"\"nitro/tsconfig\"\n",[511,959,960],{"class":513,"line":552},[511,961,937],{"class":517},[501,963,966],{"className":790,"code":964,"filename":965,"language":793,"meta":5,"style":5},"import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro/vite\";\n\nexport default defineConfig({ plugins: [nitro()] });\n","vite.config.ts",[508,967,968,981,995,999],{"__ignoreMap":5},[511,969,970,972,974,976,979],{"class":513,"line":514},[511,971,801],{"class":800},[511,973,804],{"class":517},[511,975,807],{"class":800},[511,977,978],{"class":546}," \"vite\"",[511,980,813],{"class":517},[511,982,983,985,988,990,993],{"class":513,"line":532},[511,984,801],{"class":800},[511,986,987],{"class":517}," { nitro } ",[511,989,807],{"class":800},[511,991,992],{"class":546}," \"nitro/vite\"",[511,994,813],{"class":517},[511,996,997],{"class":513,"line":552},[511,998,818],{"emptyLinePlaceholder":393},[511,1000,1001,1003,1005,1007,1010,1013],{"class":513,"line":563},[511,1002,823],{"class":800},[511,1004,826],{"class":800},[511,1006,829],{"class":525},[511,1008,1009],{"class":517},"({ plugins: [",[511,1011,1012],{"class":525},"nitro",[511,1014,1015],{"class":517},"()] });\n",[501,1017,1019],{"className":790,"code":1018,"filename":499,"language":793,"meta":5,"style":5},"import { defineHandler } from \"nitro\";\n\nexport default defineHandler(() => \"Nitro is amazing!\");\n",[508,1020,1021,1034,1038],{"__ignoreMap":5},[511,1022,1023,1025,1028,1030,1032],{"class":513,"line":514},[511,1024,801],{"class":800},[511,1026,1027],{"class":517}," { defineHandler } ",[511,1029,807],{"class":800},[511,1031,810],{"class":546},[511,1033,813],{"class":517},[511,1035,1036],{"class":513,"line":532},[511,1037,818],{"emptyLinePlaceholder":393},[511,1039,1040,1042,1044,1047,1050,1053,1056],{"class":513,"line":552},[511,1041,823],{"class":800},[511,1043,826],{"class":800},[511,1045,1046],{"class":525}," defineHandler",[511,1048,1049],{"class":517},"(() ",[511,1051,1052],{"class":800},"=>",[511,1054,1055],{"class":546}," \"Nitro is amazing!\"",[511,1057,1058],{"class":517},");\n",[501,1060,1063],{"className":790,"code":1061,"filename":1062,"language":793,"meta":5,"style":5},"import { defineHandler } from \"nitro\";\n\nexport default defineHandler(() => \"Test get handler\");\n","api/test.get.ts",[508,1064,1065,1077,1081],{"__ignoreMap":5},[511,1066,1067,1069,1071,1073,1075],{"class":513,"line":514},[511,1068,801],{"class":800},[511,1070,1027],{"class":517},[511,1072,807],{"class":800},[511,1074,810],{"class":546},[511,1076,813],{"class":517},[511,1078,1079],{"class":513,"line":532},[511,1080,818],{"emptyLinePlaceholder":393},[511,1082,1083,1085,1087,1089,1091,1093,1096],{"class":513,"line":552},[511,1084,823],{"class":800},[511,1086,826],{"class":800},[511,1088,1046],{"class":525},[511,1090,1049],{"class":517},[511,1092,1052],{"class":800},[511,1094,1095],{"class":546}," \"Test get handler\"",[511,1097,1058],{"class":517},[501,1099,1102],{"className":790,"code":1100,"filename":1101,"language":793,"meta":5,"style":5},"import { defineHandler } from \"nitro\";\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",[508,1103,1104,1116,1120,1149,1171,1178,1188,1193,1198],{"__ignoreMap":5},[511,1105,1106,1108,1110,1112,1114],{"class":513,"line":514},[511,1107,801],{"class":800},[511,1109,1027],{"class":517},[511,1111,807],{"class":800},[511,1113,810],{"class":546},[511,1115,813],{"class":517},[511,1117,1118],{"class":513,"line":532},[511,1119,818],{"emptyLinePlaceholder":393},[511,1121,1122,1124,1126,1128,1131,1134,1137,1141,1144,1146],{"class":513,"line":552},[511,1123,823],{"class":800},[511,1125,826],{"class":800},[511,1127,1046],{"class":525},[511,1129,1130],{"class":517},"(",[511,1132,1133],{"class":800},"async",[511,1135,1136],{"class":517}," (",[511,1138,1140],{"class":1139},"sQHwn","event",[511,1142,1143],{"class":517},") ",[511,1145,1052],{"class":800},[511,1147,1148],{"class":517}," {\n",[511,1150,1151,1154,1157,1160,1163,1166,1168],{"class":513,"line":563},[511,1152,1153],{"class":800},"  const",[511,1155,1156],{"class":866}," body",[511,1158,1159],{"class":800}," =",[511,1161,1162],{"class":800}," await",[511,1164,1165],{"class":517}," event.req.",[511,1167,854],{"class":525},[511,1169,1170],{"class":517},"();\n",[511,1172,1173,1176],{"class":513,"line":583},[511,1174,1175],{"class":800},"  return",[511,1177,1148],{"class":517},[511,1179,1180,1183,1186],{"class":513,"line":608},[511,1181,1182],{"class":517},"    message: ",[511,1184,1185],{"class":546},"\"Test post handler\"",[511,1187,843],{"class":517},[511,1189,1190],{"class":513,"line":623},[511,1191,1192],{"class":517},"    body,\n",[511,1194,1195],{"class":513,"line":633},[511,1196,1197],{"class":517},"  };\n",[511,1199,1200],{"class":513,"line":643},[511,1201,848],{"class":517},[501,1203,1206],{"className":790,"code":1204,"filename":1205,"language":793,"meta":5,"style":5},"import { defineHandler } from \"nitro\";\n\nexport default defineHandler((event) => `Hello (param: ${event.context.params!.name})!`);\n","api/hello/[name].ts",[508,1207,1208,1220,1224],{"__ignoreMap":5},[511,1209,1210,1212,1214,1216,1218],{"class":513,"line":514},[511,1211,801],{"class":800},[511,1213,1027],{"class":517},[511,1215,807],{"class":800},[511,1217,810],{"class":546},[511,1219,813],{"class":517},[511,1221,1222],{"class":513,"line":532},[511,1223,818],{"emptyLinePlaceholder":393},[511,1225,1226,1228,1230,1232,1235,1237,1239,1241,1244,1246,1249,1252,1254,1257,1260,1262,1265,1268],{"class":513,"line":552},[511,1227,823],{"class":800},[511,1229,826],{"class":800},[511,1231,1046],{"class":525},[511,1233,1234],{"class":517},"((",[511,1236,1140],{"class":1139},[511,1238,1143],{"class":517},[511,1240,1052],{"class":800},[511,1242,1243],{"class":546}," `Hello (param: ${",[511,1245,1140],{"class":517},[511,1247,1248],{"class":546},".",[511,1250,1251],{"class":517},"context",[511,1253,1248],{"class":546},[511,1255,1256],{"class":517},"params",[511,1258,1259],{"class":800},"!",[511,1261,1248],{"class":546},[511,1263,1264],{"class":517},"name",[511,1266,1267],{"class":546},"})!`",[511,1269,1058],{"class":517},[1271,1272,1273,1274,1277,1278,1281],"p",{},"Nitro supports file-based routing in the ",[508,1275,1276],{},"api/"," or ",[508,1279,1280],{},"routes/"," directory. Each file becomes an API endpoint based on its path.",[648,1283,1285],{"id":1284},"basic-route","Basic Route",[1271,1287,1288,1289,1291],{},"Create a file in the ",[508,1290,1276],{}," directory to define a route. The file path becomes the URL path:",[501,1293,1294],{"className":790,"code":1018,"filename":499,"language":793,"meta":5,"style":5},[508,1295,1296,1308,1312],{"__ignoreMap":5},[511,1297,1298,1300,1302,1304,1306],{"class":513,"line":514},[511,1299,801],{"class":800},[511,1301,1027],{"class":517},[511,1303,807],{"class":800},[511,1305,810],{"class":546},[511,1307,813],{"class":517},[511,1309,1310],{"class":513,"line":532},[511,1311,818],{"emptyLinePlaceholder":393},[511,1313,1314,1316,1318,1320,1322,1324,1326],{"class":513,"line":552},[511,1315,823],{"class":800},[511,1317,826],{"class":800},[511,1319,1046],{"class":525},[511,1321,1049],{"class":517},[511,1323,1052],{"class":800},[511,1325,1055],{"class":546},[511,1327,1058],{"class":517},[1271,1329,1330,1331,1334],{},"This creates a ",[508,1332,1333],{},"GET /api/hello"," endpoint.",[648,1336,1338],{"id":1337},"dynamic-routes","Dynamic Routes",[1271,1340,1341,1342,1345,1346,1349],{},"Use square brackets ",[508,1343,1344],{},"[param]"," for dynamic URL segments. Access params via ",[508,1347,1348],{},"event.context.params",":",[501,1351,1352],{"className":790,"code":1204,"filename":1205,"language":793,"meta":5,"style":5},[508,1353,1354,1366,1370],{"__ignoreMap":5},[511,1355,1356,1358,1360,1362,1364],{"class":513,"line":514},[511,1357,801],{"class":800},[511,1359,1027],{"class":517},[511,1361,807],{"class":800},[511,1363,810],{"class":546},[511,1365,813],{"class":517},[511,1367,1368],{"class":513,"line":532},[511,1369,818],{"emptyLinePlaceholder":393},[511,1371,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406],{"class":513,"line":552},[511,1373,823],{"class":800},[511,1375,826],{"class":800},[511,1377,1046],{"class":525},[511,1379,1234],{"class":517},[511,1381,1140],{"class":1139},[511,1383,1143],{"class":517},[511,1385,1052],{"class":800},[511,1387,1243],{"class":546},[511,1389,1140],{"class":517},[511,1391,1248],{"class":546},[511,1393,1251],{"class":517},[511,1395,1248],{"class":546},[511,1397,1256],{"class":517},[511,1399,1259],{"class":800},[511,1401,1248],{"class":546},[511,1403,1264],{"class":517},[511,1405,1267],{"class":546},[511,1407,1058],{"class":517},[1271,1409,1330,1410,1413,1414,1417],{},[508,1411,1412],{},"GET /api/hello/:name"," endpoint (e.g., ",[508,1415,1416],{},"/api/hello/world",").",[648,1419,1421],{"id":1420},"http-methods","HTTP Methods",[1271,1423,1424,1425,1428,1429,1428,1432,1428,1435,1438],{},"Suffix your file with the HTTP method (",[508,1426,1427],{},".get.ts",", ",[508,1430,1431],{},".post.ts",[508,1433,1434],{},".put.ts",[508,1436,1437],{},".delete.ts",", etc.):",[1440,1441,1443],"h3",{"id":1442},"get-handler","GET Handler",[501,1445,1446],{"className":790,"code":1061,"filename":1062,"language":793,"meta":5,"style":5},[508,1447,1448,1460,1464],{"__ignoreMap":5},[511,1449,1450,1452,1454,1456,1458],{"class":513,"line":514},[511,1451,801],{"class":800},[511,1453,1027],{"class":517},[511,1455,807],{"class":800},[511,1457,810],{"class":546},[511,1459,813],{"class":517},[511,1461,1462],{"class":513,"line":532},[511,1463,818],{"emptyLinePlaceholder":393},[511,1465,1466,1468,1470,1472,1474,1476,1478],{"class":513,"line":552},[511,1467,823],{"class":800},[511,1469,826],{"class":800},[511,1471,1046],{"class":525},[511,1473,1049],{"class":517},[511,1475,1052],{"class":800},[511,1477,1095],{"class":546},[511,1479,1058],{"class":517},[1440,1481,1483],{"id":1482},"post-handler","POST Handler",[501,1485,1486],{"className":790,"code":1100,"filename":1101,"language":793,"meta":5,"style":5},[508,1487,1488,1500,1504,1526,1542,1548,1556,1560,1564],{"__ignoreMap":5},[511,1489,1490,1492,1494,1496,1498],{"class":513,"line":514},[511,1491,801],{"class":800},[511,1493,1027],{"class":517},[511,1495,807],{"class":800},[511,1497,810],{"class":546},[511,1499,813],{"class":517},[511,1501,1502],{"class":513,"line":532},[511,1503,818],{"emptyLinePlaceholder":393},[511,1505,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524],{"class":513,"line":552},[511,1507,823],{"class":800},[511,1509,826],{"class":800},[511,1511,1046],{"class":525},[511,1513,1130],{"class":517},[511,1515,1133],{"class":800},[511,1517,1136],{"class":517},[511,1519,1140],{"class":1139},[511,1521,1143],{"class":517},[511,1523,1052],{"class":800},[511,1525,1148],{"class":517},[511,1527,1528,1530,1532,1534,1536,1538,1540],{"class":513,"line":563},[511,1529,1153],{"class":800},[511,1531,1156],{"class":866},[511,1533,1159],{"class":800},[511,1535,1162],{"class":800},[511,1537,1165],{"class":517},[511,1539,854],{"class":525},[511,1541,1170],{"class":517},[511,1543,1544,1546],{"class":513,"line":583},[511,1545,1175],{"class":800},[511,1547,1148],{"class":517},[511,1549,1550,1552,1554],{"class":513,"line":608},[511,1551,1182],{"class":517},[511,1553,1185],{"class":546},[511,1555,843],{"class":517},[511,1557,1558],{"class":513,"line":623},[511,1559,1192],{"class":517},[511,1561,1562],{"class":513,"line":633},[511,1563,1197],{"class":517},[511,1565,1566],{"class":513,"line":643},[511,1567,848],{"class":517},[648,1569,1571],{"id":1570},"learn-more","Learn More",[663,1573,1574],{},[674,1575,1576],{},[680,1577,23],{"href":24},[1579,1580,1581],"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":532,"depth":532,"links":1583},[1584,1585,1586,1590],{"id":1284,"depth":532,"text":1285},{"id":1337,"depth":532,"text":1338},{"id":1420,"depth":532,"text":1421,"children":1587},[1588,1589],{"id":1442,"depth":552,"text":1443},{"id":1482,"depth":552,"text":1483},{"id":1570,"depth":532,"text":1571},"md",{"automd":393,"category":394,"icon":229},{"icon":229},{"title":226,"description":391},"C1WDM3IE7Pfe9DlBpLkISze0wbaMCAZigpcVdHYcHSE",[1597,1599],{"title":219,"path":220,"stem":221,"description":1598,"icon":224,"children":-1},"Explore Nitro examples to learn how to build full-stack applications",{"title":231,"path":232,"stem":233,"description":396,"icon":234,"children":-1},1775141595540]