[{"data":1,"prerenderedAt":1011},["ShallowReactive",2],{"navigation":3,"-docs-quick-start":445,"-docs-quick-start-surround":1006},[4,123,260,266,430,442],{"title":5,"path":6,"stem":7,"children":8,"icon":122},"","\u002Fdocs","1.docs\u002F1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77,82,87,92,97,102,107,112,117],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","\u002Fdocs\u002Fquick-start","1.docs\u002F2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","\u002Fdocs\u002Frenderer","1.docs\u002F4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","\u002Fdocs\u002Frouting","1.docs\u002F5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","\u002Fdocs\u002Fassets","1.docs\u002F50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","\u002Fdocs\u002Fconfiguration","1.docs\u002F50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","\u002Fdocs\u002Fdatabase","1.docs\u002F50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","\u002Fdocs\u002Flifecycle","1.docs\u002F50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"OpenAPI","\u002Fdocs\u002Fopenapi","1.docs\u002F50.openapi","ri:contract-line",{"title":53,"path":54,"stem":55,"icon":56},"Plugins","\u002Fdocs\u002Fplugins","1.docs\u002F50.plugins","ri:plug-line",{"title":58,"path":59,"stem":60,"icon":61},"Prerendering","\u002Fdocs\u002Fprerendering","1.docs\u002F50.prerendering","ri:file-copy-2-line",{"title":63,"path":64,"stem":65,"icon":66},"Tasks","\u002Fdocs\u002Ftasks","1.docs\u002F50.tasks","codicon:run-all",{"title":68,"path":69,"stem":70,"icon":71},"WebSocket","\u002Fdocs\u002Fwebsocket","1.docs\u002F50.websocket","ri:broadcast-fill",{"title":73,"path":74,"stem":75,"icon":76},"Modules","\u002Fdocs\u002Fmodules","1.docs\u002F55.modules","i-lucide-puzzle",{"title":78,"path":79,"stem":80,"icon":81},"Server Entry","\u002Fdocs\u002Fserver-entry","1.docs\u002F6.server-entry","ri:server-line",{"title":83,"path":84,"stem":85,"icon":86},"CLI","\u002Fdocs\u002Fcli","1.docs\u002F60.cli","i-lucide-terminal",{"title":88,"path":89,"stem":90,"icon":91},"Vite","\u002Fdocs\u002Fvite","1.docs\u002F61.vite","i-logos-vitejs",{"title":93,"path":94,"stem":95,"icon":96},"Utils","\u002Fdocs\u002Futils","1.docs\u002F62.utils","i-lucide-braces",{"title":98,"path":99,"stem":100,"icon":101},"TypeScript","\u002Fdocs\u002Ftypescript","1.docs\u002F63.typescript","i-logos-typescript-icon",{"title":103,"path":104,"stem":105,"icon":106},"Cache","\u002Fdocs\u002Fcache","1.docs\u002F7.cache","ri:speed-line",{"title":108,"path":109,"stem":110,"icon":111},"KV Storage","\u002Fdocs\u002Fstorage","1.docs\u002F8.storage","carbon:datastore",{"title":113,"path":114,"stem":115,"icon":116},"Migration Guide","\u002Fdocs\u002Fmigration","1.docs\u002F99.migration","ri:arrow-right-up-line",{"title":118,"path":119,"stem":120,"icon":121},"Nightly Channel","\u002Fdocs\u002Fnightly","1.docs\u002F99.nightly","ri:moon-fill","i-lucide-book-open",{"title":124,"path":125,"stem":126,"children":127,"icon":129},"Deploy","\u002Fdeploy","2.deploy\u002F0.index",[128,130,155],{"title":124,"path":125,"stem":126,"icon":129},"ri:upload-cloud-2-line",{"title":131,"path":132,"stem":133,"children":134,"page":154},"Runtimes","\u002Fdeploy\u002Fruntimes","2.deploy\u002F10.runtimes",[135,140,145,150],{"title":136,"path":137,"stem":138,"icon":139},"Node.js","\u002Fdeploy\u002Fruntimes\u002Fnode","2.deploy\u002F10.runtimes\u002F1.node","akar-icons:node-fill",{"title":141,"path":142,"stem":143,"icon":144},"Bun","\u002Fdeploy\u002Fruntimes\u002Fbun","2.deploy\u002F10.runtimes\u002Fbun","simple-icons:bun",{"title":146,"path":147,"stem":148,"icon":149},"Deno","\u002Fdeploy\u002Fruntimes\u002Fdeno","2.deploy\u002F10.runtimes\u002Fdeno","simple-icons:deno",{"title":151,"path":152,"stem":153},"Standard","\u002Fdeploy\u002Fruntimes\u002Fstandard","2.deploy\u002F10.runtimes\u002Fstandard",false,{"title":156,"path":157,"stem":158,"children":159,"page":154},"Providers","\u002Fdeploy\u002Fproviders","2.deploy\u002F20.providers",[160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256],{"title":161,"path":162,"stem":163},"Alwaysdata","\u002Fdeploy\u002Fproviders\u002Falwaysdata","2.deploy\u002F20.providers\u002Falwaysdata",{"title":165,"path":166,"stem":167},"AWS Lambda","\u002Fdeploy\u002Fproviders\u002Faws","2.deploy\u002F20.providers\u002Faws",{"title":169,"path":170,"stem":171},"AWS Amplify","\u002Fdeploy\u002Fproviders\u002Faws-amplify","2.deploy\u002F20.providers\u002Faws-amplify",{"title":173,"path":174,"stem":175},"Azure","\u002Fdeploy\u002Fproviders\u002Fazure","2.deploy\u002F20.providers\u002Fazure",{"title":177,"path":178,"stem":179},"Cleavr","\u002Fdeploy\u002Fproviders\u002Fcleavr","2.deploy\u002F20.providers\u002Fcleavr",{"title":181,"path":182,"stem":183},"Cloudflare","\u002Fdeploy\u002Fproviders\u002Fcloudflare","2.deploy\u002F20.providers\u002Fcloudflare",{"title":185,"path":186,"stem":187},"Deno Deploy","\u002Fdeploy\u002Fproviders\u002Fdeno-deploy","2.deploy\u002F20.providers\u002Fdeno-deploy",{"title":189,"path":190,"stem":191},"DigitalOcean","\u002Fdeploy\u002Fproviders\u002Fdigitalocean","2.deploy\u002F20.providers\u002Fdigitalocean",{"title":193,"path":194,"stem":195},"EdgeOne Pages","\u002Fdeploy\u002Fproviders\u002Fedgeone","2.deploy\u002F20.providers\u002Fedgeone",{"title":197,"path":198,"stem":199},"Firebase","\u002Fdeploy\u002Fproviders\u002Ffirebase","2.deploy\u002F20.providers\u002Ffirebase",{"title":201,"path":202,"stem":203},"Flightcontrol","\u002Fdeploy\u002Fproviders\u002Fflightcontrol","2.deploy\u002F20.providers\u002Fflightcontrol",{"title":205,"path":206,"stem":207},"Genezio","\u002Fdeploy\u002Fproviders\u002Fgenezio","2.deploy\u002F20.providers\u002Fgenezio",{"title":209,"path":210,"stem":211},"GitHub Pages","\u002Fdeploy\u002Fproviders\u002Fgithub-pages","2.deploy\u002F20.providers\u002Fgithub-pages",{"title":213,"path":214,"stem":215},"GitLab Pages","\u002Fdeploy\u002Fproviders\u002Fgitlab-pages","2.deploy\u002F20.providers\u002Fgitlab-pages",{"title":217,"path":218,"stem":219},"Heroku","\u002Fdeploy\u002Fproviders\u002Fheroku","2.deploy\u002F20.providers\u002Fheroku",{"title":221,"path":222,"stem":223},"IIS","\u002Fdeploy\u002Fproviders\u002Fiis","2.deploy\u002F20.providers\u002Fiis",{"title":225,"path":226,"stem":227},"Koyeb","\u002Fdeploy\u002Fproviders\u002Fkoyeb","2.deploy\u002F20.providers\u002Fkoyeb",{"title":229,"path":230,"stem":231},"Netlify","\u002Fdeploy\u002Fproviders\u002Fnetlify","2.deploy\u002F20.providers\u002Fnetlify",{"title":233,"path":234,"stem":235},"Platform.sh","\u002Fdeploy\u002Fproviders\u002Fplatform-sh","2.deploy\u002F20.providers\u002Fplatform-sh",{"title":237,"path":238,"stem":239},"Render.com","\u002Fdeploy\u002Fproviders\u002Frender","2.deploy\u002F20.providers\u002Frender",{"title":241,"path":242,"stem":243},"Stormkit","\u002Fdeploy\u002Fproviders\u002Fstormkit","2.deploy\u002F20.providers\u002Fstormkit",{"title":245,"path":246,"stem":247},"Vercel","\u002Fdeploy\u002Fproviders\u002Fvercel","2.deploy\u002F20.providers\u002Fvercel",{"title":249,"path":250,"stem":251},"Zeabur","\u002Fdeploy\u002Fproviders\u002Fzeabur","2.deploy\u002F20.providers\u002Fzeabur",{"title":253,"path":254,"stem":255},"Zephyr Cloud","\u002Fdeploy\u002Fproviders\u002Fzephyr","2.deploy\u002F20.providers\u002Fzephyr",{"title":257,"path":258,"stem":259},"Zerops","\u002Fdeploy\u002Fproviders\u002Fzerops","2.deploy\u002F20.providers\u002Fzerops",{"title":261,"path":262,"stem":263,"children":264,"icon":36},"Config","\u002Fconfig","3.config\u002F0.index",[265],{"title":261,"path":262,"stem":263,"icon":36},{"title":267,"path":268,"stem":269,"children":270,"icon":272},"Examples","\u002Fexamples","4.examples\u002F0.index",[271,273,278,283,288,293,297,302,307,312,317,322,327,331,336,340,344,349,354,359,364,369,374,379,383,388,393,398,402,407,412,416,421,426],{"title":267,"path":268,"stem":269,"icon":272},"i-lucide-folder-code",{"title":274,"path":275,"stem":276,"icon":277},"API Routes","\u002Fexamples\u002Fapi-routes","4.examples\u002Fapi-routes","i-lucide-route",{"title":279,"path":280,"stem":281,"icon":282},"Auto Imports","\u002Fexamples\u002Fauto-imports","4.examples\u002Fauto-imports","i-lucide-import",{"title":284,"path":285,"stem":286,"icon":287},"Cached Handler","\u002Fexamples\u002Fcached-handler","4.examples\u002Fcached-handler","i-lucide-clock",{"title":289,"path":290,"stem":291,"icon":292},"Custom Error Handler","\u002Fexamples\u002Fcustom-error-handler","4.examples\u002Fcustom-error-handler","i-lucide-alert-circle",{"title":38,"path":294,"stem":295,"icon":296},"\u002Fexamples\u002Fdatabase","4.examples\u002Fdatabase","i-lucide-database",{"title":298,"path":299,"stem":300,"icon":301},"Elysia","\u002Fexamples\u002Felysia","4.examples\u002Felysia","i-skill-icons-elysia-dark",{"title":303,"path":304,"stem":305,"icon":306},"Express","\u002Fexamples\u002Fexpress","4.examples\u002Fexpress","i-simple-icons-express",{"title":308,"path":309,"stem":310,"icon":311},"Fastify","\u002Fexamples\u002Ffastify","4.examples\u002Ffastify","i-simple-icons-fastify",{"title":313,"path":314,"stem":315,"icon":316},"Hello World","\u002Fexamples\u002Fhello-world","4.examples\u002Fhello-world","i-lucide-sparkles",{"title":318,"path":319,"stem":320,"icon":321},"Hono","\u002Fexamples\u002Fhono","4.examples\u002Fhono","i-logos-hono",{"title":323,"path":324,"stem":325,"icon":326},"Import Alias","\u002Fexamples\u002Fimport-alias","4.examples\u002Fimport-alias","i-lucide-at-sign",{"title":328,"path":329,"stem":330,"icon":46},"Middleware","\u002Fexamples\u002Fmiddleware","4.examples\u002Fmiddleware",{"title":332,"path":333,"stem":334,"icon":335},"Mono JSX","\u002Fexamples\u002Fmono-jsx","4.examples\u002Fmono-jsx","i-lucide-brackets",{"title":337,"path":338,"stem":339,"icon":335},"Nano JSX","\u002Fexamples\u002Fnano-jsx","4.examples\u002Fnano-jsx",{"title":53,"path":341,"stem":342,"icon":343},"\u002Fexamples\u002Fplugins","4.examples\u002Fplugins","i-lucide-plug",{"title":345,"path":346,"stem":347,"icon":348},"Custom Renderer","\u002Fexamples\u002Frenderer","4.examples\u002Frenderer","i-lucide-code",{"title":350,"path":351,"stem":352,"icon":353},"Runtime Config","\u002Fexamples\u002Fruntime-config","4.examples\u002Fruntime-config","i-lucide-settings",{"title":355,"path":356,"stem":357,"icon":358},"Server Fetch","\u002Fexamples\u002Fserver-fetch","4.examples\u002Fserver-fetch","i-lucide-arrow-right-left",{"title":360,"path":361,"stem":362,"icon":363},"Shiki","\u002Fexamples\u002Fshiki","4.examples\u002Fshiki","i-lucide-highlighter",{"title":365,"path":366,"stem":367,"icon":368},"Takumi","\u002Fexamples\u002Ftakumi","4.examples\u002Ftakumi","i-lucide-image",{"title":370,"path":371,"stem":372,"icon":373},"Tracing","\u002Fexamples\u002Ftracing","4.examples\u002Ftracing","i-lucide-activity",{"title":375,"path":376,"stem":377,"icon":378},"Virtual Routes","\u002Fexamples\u002Fvirtual-routes","4.examples\u002Fvirtual-routes","i-lucide-box",{"title":380,"path":381,"stem":382,"icon":91},"Vite Nitro Plugin","\u002Fexamples\u002Fvite-nitro-plugin","4.examples\u002Fvite-nitro-plugin",{"title":384,"path":385,"stem":386,"icon":387},"Vite RSC","\u002Fexamples\u002Fvite-rsc","4.examples\u002Fvite-rsc","i-logos-react",{"title":389,"path":390,"stem":391,"icon":392},"Vite SSR HTML","\u002Fexamples\u002Fvite-ssr-html","4.examples\u002Fvite-ssr-html","i-logos-html-5",{"title":394,"path":395,"stem":396,"icon":397},"SSR with Preact","\u002Fexamples\u002Fvite-ssr-preact","4.examples\u002Fvite-ssr-preact","i-logos-preact",{"title":399,"path":400,"stem":401,"icon":387},"SSR with React","\u002Fexamples\u002Fvite-ssr-react","4.examples\u002Fvite-ssr-react",{"title":403,"path":404,"stem":405,"icon":406},"SSR with SolidJS","\u002Fexamples\u002Fvite-ssr-solid","4.examples\u002Fvite-ssr-solid","i-logos-solidjs-icon",{"title":408,"path":409,"stem":410,"icon":411},"SSR with TanStack Router","\u002Fexamples\u002Fvite-ssr-tsr-react","4.examples\u002Fvite-ssr-tsr-react","i-simple-icons-tanstack",{"title":413,"path":414,"stem":415,"icon":411},"SSR with TanStack Start","\u002Fexamples\u002Fvite-ssr-tss-react","4.examples\u002Fvite-ssr-tss-react",{"title":417,"path":418,"stem":419,"icon":420},"SSR with Vue Router","\u002Fexamples\u002Fvite-ssr-vue-router","4.examples\u002Fvite-ssr-vue-router","i-logos-vue",{"title":422,"path":423,"stem":424,"icon":425},"Vite + tRPC","\u002Fexamples\u002Fvite-trpc","4.examples\u002Fvite-trpc","i-simple-icons-trpc",{"title":68,"path":427,"stem":428,"icon":429},"\u002Fexamples\u002Fwebsocket","4.examples\u002Fwebsocket","i-lucide-radio",{"title":431,"path":432,"stem":433,"children":434},"Blog","\u002Fblog","9.blog",[435,438],{"title":431,"path":432,"stem":436,"icon":437},"9.blog\u002Findex","i-lucide-file-text",{"title":439,"path":440,"stem":441,"icon":437},"Nitro v3 Beta is here!","\u002Fblog\u002Fv3-beta","9.blog\u002F1.v3-beta",{"title":5,"path":443,"stem":444},"\u002F","index",{"id":446,"title":13,"body":447,"description":1000,"extension":1001,"meta":1002,"navigation":1003,"path":14,"seo":1004,"stem":15,"__hash__":1005},"content\u002F1.docs\u002F2.quick-start.md",{"type":448,"value":449,"toc":987,"icon":16},"minimark",[450,455,459,469,473,481,502,505,523,526,530,533,958,962,983],[451,452,454],"h2",{"id":453},"try-nitro-online","Try Nitro online",[456,457,458],"p",{},"Get a taste of Nitro in your browser using our playground.",[456,460,461],{},[462,463,468],"a",{"href":464,"rel":465,"target":467},"https:\u002F\u002Fstackblitz.com\u002Fgithub\u002Fnitrojs\u002Fstarter\u002Ftree\u002Fv3-vite?file=index.html,server.ts",[466],"nofollow","_blank","Play with Nitro in StackBlitz",[451,470,472],{"id":471},"create-a-nitro-project","Create a Nitro project",[456,474,475,476,480],{},"The fastest way to create a Nitro application is with ",[477,478,479],"code",{},"create-nitro-app",".",[482,483,484],"note",{},[456,485,486,487,491,492,496,497,501],{},"\nMake sure you have the latest LTS version of ",[462,488,136],{"href":489,"rel":490},"https:\u002F\u002Fnodejs.org\u002Fen",[466],", ",[462,493,141],{"href":494,"rel":495},"https:\u002F\u002Fbun.sh\u002F",[466],", or ",[462,498,146],{"href":499,"rel":500},"https:\u002F\u002Fdeno.com\u002F",[466]," installed.",[503,504],"pm-x",{"command":479},[506,507,508,509,508,513],"details",{},"\n  ",[510,511,512],"summary",{},"Preview",[514,515,517,518,508],"div",{"style":516},"display:flex;justify-content:center;","\n    ",[519,520],"img",{"src":521,"alt":512,"style":522},"https:\u002F\u002Fgithub.com\u002Fnitrojs\u002Fcreate-nitro-app\u002Fblob\u002Fmain\u002F.images\u002Fpreview-dark.svg?raw=true","max-width:100%;height:auto;display:block;",[456,524,525],{},"Follow the CLI instructions and you will be ready to start your development server.",[451,527,529],{"id":528},"add-to-a-vite-project","Add to a Vite project",[456,531,532],{},"You can add Nitro to any existing Vite project to get API routes, server-side rendering, and more.",[534,535,537,549,553,557,564,664,668,675,722,744,748,754,914,928,943,947,951],"steps",{"level":536},"3",[538,539,541,542,545,546],"h3",{"id":540},"install-nitro-and-vite","Install ",[477,543,544],{},"nitro"," and ",[477,547,548],{},"vite",[550,551],"pm-install",{"name":552},"nitro vite",[538,554,556],{"id":555},"add-nitro-plugin-to-vite","Add Nitro plugin to Vite",[456,558,559,560,563],{},"Add the Nitro plugin to your ",[477,561,562],{},"vite.config.ts",":",[565,566,573],"pre",{"className":567,"code":568,"filename":562,"highlights":569,"language":572,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro\u002Fvite\";\n\nexport default defineConfig({\n  plugins: [\n    nitro()\n  ],\n});\n",[570,571],2,6,"ts",[477,574,575,598,614,621,637,643,652,658],{"__ignoreMap":5},[576,577,580,584,588,591,595],"span",{"class":578,"line":579},"line",1,[576,581,583],{"class":582},"so5gQ","import",[576,585,587],{"class":586},"slsVL"," { defineConfig } ",[576,589,590],{"class":582},"from",[576,592,594],{"class":593},"sfrk1"," \"vite\"",[576,596,597],{"class":586},";\n",[576,599,602,604,607,609,612],{"class":600,"line":570},[578,601],"highlight",[576,603,583],{"class":582},[576,605,606],{"class":586}," { nitro } ",[576,608,590],{"class":582},[576,610,611],{"class":593}," \"nitro\u002Fvite\"",[576,613,597],{"class":586},[576,615,617],{"class":578,"line":616},3,[576,618,620],{"emptyLinePlaceholder":619},true,"\n",[576,622,624,627,630,634],{"class":578,"line":623},4,[576,625,626],{"class":582},"export",[576,628,629],{"class":582}," default",[576,631,633],{"class":632},"shcOC"," defineConfig",[576,635,636],{"class":586},"({\n",[576,638,640],{"class":578,"line":639},5,[576,641,642],{"class":586},"  plugins: [\n",[576,644,646,649],{"class":645,"line":571},[578,601],[576,647,648],{"class":632},"    nitro",[576,650,651],{"class":586},"()\n",[576,653,655],{"class":578,"line":654},7,[576,656,657],{"class":586},"  ],\n",[576,659,661],{"class":578,"line":660},8,[576,662,663],{"class":586},"});\n",[538,665,667],{"id":666},"configure-nitro","Configure Nitro",[456,669,670,671,674],{},"Create a ",[477,672,673],{},"nitro.config.ts"," to configure the server directory:",[565,676,678],{"className":567,"code":677,"filename":673,"language":572,"meta":5,"style":5},"import { defineConfig } from \"nitro\";\n\nexport default defineConfig({\n  serverDir: \".\u002Fserver\",\n});\n",[477,679,680,693,697,707,718],{"__ignoreMap":5},[576,681,682,684,686,688,691],{"class":578,"line":579},[576,683,583],{"class":582},[576,685,587],{"class":586},[576,687,590],{"class":582},[576,689,690],{"class":593}," \"nitro\"",[576,692,597],{"class":586},[576,694,695],{"class":578,"line":570},[576,696,620],{"emptyLinePlaceholder":619},[576,698,699,701,703,705],{"class":578,"line":616},[576,700,626],{"class":582},[576,702,629],{"class":582},[576,704,633],{"class":632},[576,706,636],{"class":586},[576,708,709,712,715],{"class":578,"line":623},[576,710,711],{"class":586},"  serverDir: ",[576,713,714],{"class":593},"\".\u002Fserver\"",[576,716,717],{"class":586},",\n",[576,719,720],{"class":578,"line":639},[576,721,663],{"class":586},[456,723,724,725,728,729,732,733,735,736,739,740,743],{},"The ",[477,726,727],{},"serverDir"," option tells Nitro where to look for your server routes. In this example, all routes will be inside the ",[477,730,731],{},"server\u002F"," directory. By default ",[477,734,727],{}," is ",[477,737,738],{},"false",", so no directories are scanned until you set it (or ",[477,741,742],{},"scanDirs",").",[538,745,747],{"id":746},"create-an-api-route","Create an API route",[456,749,750,751,563],{},"Create your first API route at ",[477,752,753],{},"server\u002Fapi\u002Ftest.ts",[755,756,757,815,857],"code-tree",{"default-value":753},[565,758,760],{"className":567,"code":759,"filename":753,"language":572,"meta":5,"style":5},"import { defineHandler } from \"nitro\";\n\nexport default defineHandler(() => {\n  return { message: \"Hello Nitro!\" };\n});\n",[477,761,762,775,779,797,811],{"__ignoreMap":5},[576,763,764,766,769,771,773],{"class":578,"line":579},[576,765,583],{"class":582},[576,767,768],{"class":586}," { defineHandler } ",[576,770,590],{"class":582},[576,772,690],{"class":593},[576,774,597],{"class":586},[576,776,777],{"class":578,"line":570},[576,778,620],{"emptyLinePlaceholder":619},[576,780,781,783,785,788,791,794],{"class":578,"line":616},[576,782,626],{"class":582},[576,784,629],{"class":582},[576,786,787],{"class":632}," defineHandler",[576,789,790],{"class":586},"(() ",[576,792,793],{"class":582},"=>",[576,795,796],{"class":586}," {\n",[576,798,799,802,805,808],{"class":578,"line":623},[576,800,801],{"class":582},"  return",[576,803,804],{"class":586}," { message: ",[576,806,807],{"class":593},"\"Hello Nitro!\"",[576,809,810],{"class":586}," };\n",[576,812,813],{"class":578,"line":639},[576,814,663],{"class":586},[565,816,817],{"className":567,"code":677,"filename":673,"language":572,"meta":5,"style":5},[477,818,819,831,835,845,853],{"__ignoreMap":5},[576,820,821,823,825,827,829],{"class":578,"line":579},[576,822,583],{"class":582},[576,824,587],{"class":586},[576,826,590],{"class":582},[576,828,690],{"class":593},[576,830,597],{"class":586},[576,832,833],{"class":578,"line":570},[576,834,620],{"emptyLinePlaceholder":619},[576,836,837,839,841,843],{"class":578,"line":616},[576,838,626],{"class":582},[576,840,629],{"class":582},[576,842,633],{"class":632},[576,844,636],{"class":586},[576,846,847,849,851],{"class":578,"line":623},[576,848,711],{"class":586},[576,850,714],{"class":593},[576,852,717],{"class":586},[576,854,855],{"class":578,"line":639},[576,856,663],{"class":586},[565,858,860],{"className":567,"code":859,"filename":562,"language":572,"meta":5,"style":5},"import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro\u002Fvite\";\n\nexport default defineConfig({\n  plugins: [nitro()],\n});\n",[477,861,862,874,886,890,900,910],{"__ignoreMap":5},[576,863,864,866,868,870,872],{"class":578,"line":579},[576,865,583],{"class":582},[576,867,587],{"class":586},[576,869,590],{"class":582},[576,871,594],{"class":593},[576,873,597],{"class":586},[576,875,876,878,880,882,884],{"class":578,"line":570},[576,877,583],{"class":582},[576,879,606],{"class":586},[576,881,590],{"class":582},[576,883,611],{"class":593},[576,885,597],{"class":586},[576,887,888],{"class":578,"line":616},[576,889,620],{"emptyLinePlaceholder":619},[576,891,892,894,896,898],{"class":578,"line":623},[576,893,626],{"class":582},[576,895,629],{"class":582},[576,897,633],{"class":632},[576,899,636],{"class":586},[576,901,902,905,907],{"class":578,"line":639},[576,903,904],{"class":586},"  plugins: [",[576,906,544],{"class":632},[576,908,909],{"class":586},"()],\n",[576,911,912],{"class":578,"line":571},[576,913,663],{"class":586},[456,915,916,917,919,920,923,924,927],{},"The file path maps directly to the route URL — ",[477,918,753],{}," becomes ",[477,921,922],{},"\u002Fapi\u002Ftest",". Handlers can return strings, JSON objects, ",[477,925,926],{},"Response"," instances, or readable streams.",[929,930,931],"tip",{},[456,932,933,934,937,938,942],{},"As an alternative to filesystem routing, you can declare routes programmatically using the ",[477,935,936],{},"routes"," config option. See ",[462,939,941],{"href":940},"\u002Fdocs\u002Frouting#programmatic-route-handlers","Programmatic route handlers"," for more details.",[538,944,946],{"id":945},"start-the-development-server","Start the development server",[948,949],"pm-run",{"script":950},"dev",[456,952,953,954,957],{},"Your API route is now accessible at ",[477,955,956],{},"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Ftest"," ✨",[451,959,961],{"id":960},"next-steps","Next steps",[963,964,965,971,977],"ul",{},[966,967,968,969,480],"li",{},"Learn about dynamic routes, methods, and middleware in ",[462,970,23],{"href":24},[966,972,973,974,480],{},"Serve HTML or a single-page app for unmatched routes with the ",[462,975,976],{"href":19},"renderer",[966,978,979,980,480],{},"Take full control of every request with a ",[462,981,982],{"href":79},"server entry",[984,985,986],"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);}",{"title":5,"searchDepth":570,"depth":570,"links":988},[989,990,991,999],{"id":453,"depth":570,"text":454},{"id":471,"depth":570,"text":472},{"id":528,"depth":570,"text":529,"children":992},[993,995,996,997,998],{"id":540,"depth":616,"text":994},"Install nitro and vite",{"id":555,"depth":616,"text":556},{"id":666,"depth":616,"text":667},{"id":746,"depth":616,"text":747},{"id":945,"depth":616,"text":946},{"id":960,"depth":570,"text":961},"Start with a fresh Nitro project or adopt it in your current Vite project.","md",{"icon":16},{"icon":16},{"title":13,"description":1000},"BabWS_10udAh9DeZUbXp_kx208c945_W0XcsXs7bP5s",[1007,1009],{"title":10,"path":6,"stem":7,"description":1008,"icon":11,"children":-1},"Nitro is a full-stack server framework, compatible with any runtime and any deployment target.",{"title":18,"path":19,"stem":20,"description":1010,"icon":21,"children":-1},"Use a renderer to handle all unmatched routes with custom HTML or a templating system.",1784019064255]