[{"data":1,"prerenderedAt":1394},["ShallowReactive",2],{"navigation":3,"-docs-tasks":228,"-docs-tasks-surround":1389},[4,83,212,218,225],{"title":5,"path":6,"stem":7,"children":8,"icon":82},"","/docs","1.docs/1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","/docs/quick-start","1.docs/2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","/docs/renderer","1.docs/4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/docs/routing","1.docs/5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","/docs/assets","1.docs/50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","/docs/configuration","1.docs/50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","/docs/database","1.docs/50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","/docs/lifecycle","1.docs/50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"Plugins","/docs/plugins","1.docs/50.plugins","ri:plug-line",{"title":53,"path":54,"stem":55,"icon":56},"Tasks","/docs/tasks","1.docs/50.tasks","codicon:run-all",{"title":58,"path":59,"stem":60,"icon":61},"Server Entry","/docs/server-entry","1.docs/6.server-entry","ri:server-line",{"title":63,"path":64,"stem":65,"icon":66},"Cache","/docs/cache","1.docs/7.cache","ri:speed-line",{"title":68,"path":69,"stem":70,"icon":71},"KV Storage","/docs/storage","1.docs/8.storage","carbon:datastore",{"title":73,"path":74,"stem":75,"icon":76},"Migration Guide","/docs/migration","1.docs/99.migration","ri:arrow-right-up-line",{"title":78,"path":79,"stem":80,"icon":81},"Nightly Channel","/docs/nightly","1.docs/99.nightly","ri:moon-fill","i-lucide-book-open",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Deploy","/deploy","2.deploy/0.index",[88,90,111],{"title":84,"path":85,"stem":86,"icon":89},"ri:upload-cloud-2-line",{"title":91,"path":92,"stem":93,"children":94,"page":110},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[95,100,105],{"title":96,"path":97,"stem":98,"icon":99},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":101,"path":102,"stem":103,"icon":104},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":106,"path":107,"stem":108,"icon":109},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":112,"path":113,"stem":114,"children":115,"page":110},"Providers","/deploy/providers","2.deploy/20.providers",[116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208],{"title":117,"path":118,"stem":119},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":121,"path":122,"stem":123},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":125,"path":126,"stem":127},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":129,"path":130,"stem":131},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":133,"path":134,"stem":135},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":137,"path":138,"stem":139},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":141,"path":142,"stem":143},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":145,"path":146,"stem":147},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":149,"path":150,"stem":151},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":153,"path":154,"stem":155},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":157,"path":158,"stem":159},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":161,"path":162,"stem":163},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":165,"path":166,"stem":167},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":169,"path":170,"stem":171},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":173,"path":174,"stem":175},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":177,"path":178,"stem":179},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":181,"path":182,"stem":183},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":185,"path":186,"stem":187},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":189,"path":190,"stem":191},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":193,"path":194,"stem":195},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":197,"path":198,"stem":199},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":201,"path":202,"stem":203},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":205,"path":206,"stem":207},"Zephyr Cloud","/deploy/providers/zephyr","2.deploy/20.providers/zephyr",{"title":209,"path":210,"stem":211},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":213,"path":214,"stem":215,"children":216,"icon":36},"Config","/config","3.config/0.index",[217],{"title":213,"path":214,"stem":215,"icon":36},{"title":219,"path":220,"stem":221,"children":222,"icon":224},"Examples","/examples","4.examples/0.index",[223],{"title":219,"path":220,"stem":221,"icon":224},"i-lucide-folder-code",{"title":5,"path":226,"stem":227},"/","index",{"id":229,"title":53,"body":230,"description":1383,"extension":1384,"meta":1385,"navigation":1386,"path":54,"seo":1387,"stem":55,"__hash__":1388},"content/1.docs/50.tasks.md",{"type":231,"value":232,"toc":1367,"icon":56},"minimark",[233,240,245,259,262,346,350,357,372,378,489,493,496,560,572,578,581,593,676,681,737,741,748,752,857,861,864,868,875,878,1016,1022,1029,1275,1281,1285,1294,1298,1316,1320,1343,1347,1351,1358,1363],[234,235,236],"warning",{},[237,238,239],"p",{},"Nitro v3 Alpha docs are a work in progress — expect updates, rough edges, and occasional inaccuracies.",[241,242,244],"h2",{"id":243},"opt-in-to-the-experimental-feature","Opt-in to the experimental feature",[246,247,248],"important",{},[237,249,250,251,258],{},"\nTasks support is currently experimental.\nSee ",[252,253,257],"a",{"href":254,"rel":255},"https://github.com/nitrojs/nitro/issues/1974",[256],"nofollow","nitrojs/nitro#1974"," for the relevant discussion.",[237,260,261],{},"In order to use the tasks API you need to enable experimental feature flag.",[263,264,269],"pre",{"className":265,"code":266,"filename":267,"language":268,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n  experimental: {\n    tasks: true\n  }\n})\n","nitro.config.ts","ts",[270,271,272,295,302,318,324,334,340],"code",{"__ignoreMap":5},[273,274,277,281,285,288,292],"span",{"class":275,"line":276},"line",1,[273,278,280],{"class":279},"so5gQ","import",[273,282,284],{"class":283},"slsVL"," { defineNitroConfig } ",[273,286,287],{"class":279},"from",[273,289,291],{"class":290},"sfrk1"," \"nitro/config\"",[273,293,294],{"class":283},";\n",[273,296,298],{"class":275,"line":297},2,[273,299,301],{"emptyLinePlaceholder":300},true,"\n",[273,303,305,308,311,315],{"class":275,"line":304},3,[273,306,307],{"class":279},"export",[273,309,310],{"class":279}," default",[273,312,314],{"class":313},"shcOC"," defineNitroConfig",[273,316,317],{"class":283},"({\n",[273,319,321],{"class":275,"line":320},4,[273,322,323],{"class":283},"  experimental: {\n",[273,325,327,330],{"class":275,"line":326},5,[273,328,329],{"class":283},"    tasks: ",[273,331,333],{"class":332},"suiK_","true\n",[273,335,337],{"class":275,"line":336},6,[273,338,339],{"class":283},"  }\n",[273,341,343],{"class":275,"line":342},7,[273,344,345],{"class":283},"})\n",[241,347,349],{"id":348},"define-tasks","Define tasks",[237,351,352,353,356],{},"Tasks can be defined in ",[270,354,355],{},"tasks/[name].ts"," files.",[237,358,359,360,363,364,367,368,371],{},"Nested directories are supported. The task name will be joined with ",[270,361,362],{},":",". (Example: ",[270,365,366],{},"tasks/db/migrate.ts","task name will be ",[270,369,370],{},"db:migrate",")",[237,373,374],{},[375,376,377],"strong",{},"Example:",[263,379,381],{"className":265,"code":380,"filename":366,"language":268,"meta":5,"style":5},"export default defineTask({\n  meta: {\n    name: \"db:migrate\",\n    description: \"Run database migrations\",\n  },\n  run({ payload, context }) {\n    console.log(\"Running DB migration task...\");\n    return { result: \"Success\" };\n  },\n});\n",[270,382,383,394,399,410,420,425,446,463,478,483],{"__ignoreMap":5},[273,384,385,387,389,392],{"class":275,"line":276},[273,386,307],{"class":279},[273,388,310],{"class":279},[273,390,391],{"class":313}," defineTask",[273,393,317],{"class":283},[273,395,396],{"class":275,"line":297},[273,397,398],{"class":283},"  meta: {\n",[273,400,401,404,407],{"class":275,"line":304},[273,402,403],{"class":283},"    name: ",[273,405,406],{"class":290},"\"db:migrate\"",[273,408,409],{"class":283},",\n",[273,411,412,415,418],{"class":275,"line":320},[273,413,414],{"class":283},"    description: ",[273,416,417],{"class":290},"\"Run database migrations\"",[273,419,409],{"class":283},[273,421,422],{"class":275,"line":326},[273,423,424],{"class":283},"  },\n",[273,426,427,430,433,437,440,443],{"class":275,"line":336},[273,428,429],{"class":313},"  run",[273,431,432],{"class":283},"({ ",[273,434,436],{"class":435},"sQHwn","payload",[273,438,439],{"class":283},", ",[273,441,442],{"class":435},"context",[273,444,445],{"class":283}," }) {\n",[273,447,448,451,454,457,460],{"class":275,"line":342},[273,449,450],{"class":283},"    console.",[273,452,453],{"class":313},"log",[273,455,456],{"class":283},"(",[273,458,459],{"class":290},"\"Running DB migration task...\"",[273,461,462],{"class":283},");\n",[273,464,466,469,472,475],{"class":275,"line":465},8,[273,467,468],{"class":279},"    return",[273,470,471],{"class":283}," { result: ",[273,473,474],{"class":290},"\"Success\"",[273,476,477],{"class":283}," };\n",[273,479,481],{"class":275,"line":480},9,[273,482,424],{"class":283},[273,484,486],{"class":275,"line":485},10,[273,487,488],{"class":283},"});\n",[241,490,492],{"id":491},"scheduled-tasks","Scheduled tasks",[237,494,495],{},"You can define scheduled tasks using Nitro configuration to automatically run after each period of time.",[263,497,499],{"className":265,"code":498,"filename":267,"language":268,"meta":5,"style":5},"import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n  scheduledTasks: {\n    // Run `cms:update` task every minute\n    '* * * * *': ['cms:update']\n  }\n})\n",[270,500,501,513,517,527,532,538,552,556],{"__ignoreMap":5},[273,502,503,505,507,509,511],{"class":275,"line":276},[273,504,280],{"class":279},[273,506,284],{"class":283},[273,508,287],{"class":279},[273,510,291],{"class":290},[273,512,294],{"class":283},[273,514,515],{"class":275,"line":297},[273,516,301],{"emptyLinePlaceholder":300},[273,518,519,521,523,525],{"class":275,"line":304},[273,520,307],{"class":279},[273,522,310],{"class":279},[273,524,314],{"class":313},[273,526,317],{"class":283},[273,528,529],{"class":275,"line":320},[273,530,531],{"class":283},"  scheduledTasks: {\n",[273,533,534],{"class":275,"line":326},[273,535,537],{"class":536},"sCsY4","    // Run `cms:update` task every minute\n",[273,539,540,543,546,549],{"class":275,"line":336},[273,541,542],{"class":290},"    '* * * * *'",[273,544,545],{"class":283},": [",[273,547,548],{"class":290},"'cms:update'",[273,550,551],{"class":283},"]\n",[273,553,554],{"class":275,"line":342},[273,555,339],{"class":283},[273,557,558],{"class":275,"line":465},[273,559,345],{"class":283},[561,562,563],"tip",{},[237,564,565,566,571],{},"\nYou can use ",[252,567,570],{"href":568,"rel":569},"https://crontab.guru/",[256],"crontab.guru"," to easily generate and understand cron tab patterns.",[241,573,575],{"id":574},"waituntil",[270,576,577],{},"waitUntil",[237,579,580],{},"When running background tasks, you might want to make sure the server or worker waits until the task is done.",[237,582,583,584,587,588,592],{},"An optional ",[270,585,586],{},"context.waitUntil"," function ",[589,590,591],"em",{},"might"," be available depending on the runtime.",[263,594,596],{"className":265,"code":595,"language":268,"meta":5,"style":5},"export default defineTask({\n  run({ context }) {\n    const promise = fetch(...)\n    context.waitUntil?.(promise);\n    await promise;\n    return { result: \"Success\" };\n  },\n});\n",[270,597,598,608,618,640,650,658,668,672],{"__ignoreMap":5},[273,599,600,602,604,606],{"class":275,"line":276},[273,601,307],{"class":279},[273,603,310],{"class":279},[273,605,391],{"class":313},[273,607,317],{"class":283},[273,609,610,612,614,616],{"class":275,"line":297},[273,611,429],{"class":313},[273,613,432],{"class":283},[273,615,442],{"class":435},[273,617,445],{"class":283},[273,619,620,623,626,629,632,634,637],{"class":275,"line":304},[273,621,622],{"class":279},"    const",[273,624,625],{"class":332}," promise",[273,627,628],{"class":279}," =",[273,630,631],{"class":313}," fetch",[273,633,456],{"class":283},[273,635,636],{"class":279},"...",[273,638,639],{"class":283},")\n",[273,641,642,645,647],{"class":275,"line":320},[273,643,644],{"class":283},"    context.",[273,646,577],{"class":313},[273,648,649],{"class":283},"?.(promise);\n",[273,651,652,655],{"class":275,"line":326},[273,653,654],{"class":279},"    await",[273,656,657],{"class":283}," promise;\n",[273,659,660,662,664,666],{"class":275,"line":336},[273,661,468],{"class":279},[273,663,471],{"class":283},[273,665,474],{"class":290},[273,667,477],{"class":283},[273,669,670],{"class":275,"line":342},[273,671,424],{"class":283},[273,673,674],{"class":275,"line":465},[273,675,488],{"class":283},[677,678,680],"h3",{"id":679},"platform-support","Platform support",[682,683,684,707,719,734],"ul",{},[685,686,687,439,690,439,693,696,697,700,701,706],"li",{},[270,688,689],{},"dev",[270,691,692],{},"node-server",[270,694,695],{},"bun"," and ",[270,698,699],{},"deno-server"," presets are supported with ",[252,702,705],{"href":703,"rel":704},"https://croner.56k.guru/",[256],"croner"," engine.",[685,708,709,712,713,718],{},[270,710,711],{},"cloudflare_module"," preset has native integration with ",[252,714,717],{"href":715,"rel":716},"https://developers.cloudflare.com/workers/configuration/cron-triggers/",[256],"Cron Triggers",". Nitro automatically generates the cron triggers in the wrangler config at build time - no manual wrangler setup required.",[685,720,721,712,724,729,730,733],{},[270,722,723],{},"vercel",[252,725,728],{"href":726,"rel":727},"https://vercel.com/docs/cron-jobs",[256],"Vercel Cron Jobs",". Nitro automatically generates the cron job configuration at build time - no manual ",[270,731,732],{},"vercel.json"," setup required.",[685,735,736],{},"More presets (with native primitives support) are planned to be supported!",[241,738,740],{"id":739},"programmatically-run-tasks","Programmatically run tasks",[237,742,743,744,747],{},"To manually run tasks, you can use ",[270,745,746],{},"runTask(name, { payload? })"," utility.",[237,749,750],{},[375,751,377],{},[263,753,756],{"className":265,"code":754,"filename":755,"language":268,"meta":5,"style":5},"export default eventHandler(async (event) => {\n  // IMPORTANT: Authenticate user and validate payload!\n  const payload = { ...getQuery(event) };\n  const { result } = await runTask(\"db:migrate\", { payload });\n\n  return { result };\n});\n","api/migrate.ts",[270,757,758,787,792,813,841,845,853],{"__ignoreMap":5},[273,759,760,762,764,767,769,772,775,778,781,784],{"class":275,"line":276},[273,761,307],{"class":279},[273,763,310],{"class":279},[273,765,766],{"class":313}," eventHandler",[273,768,456],{"class":283},[273,770,771],{"class":279},"async",[273,773,774],{"class":283}," (",[273,776,777],{"class":435},"event",[273,779,780],{"class":283},") ",[273,782,783],{"class":279},"=>",[273,785,786],{"class":283}," {\n",[273,788,789],{"class":275,"line":297},[273,790,791],{"class":536},"  // IMPORTANT: Authenticate user and validate payload!\n",[273,793,794,797,800,802,805,807,810],{"class":275,"line":304},[273,795,796],{"class":279},"  const",[273,798,799],{"class":332}," payload",[273,801,628],{"class":279},[273,803,804],{"class":283}," { ",[273,806,636],{"class":279},[273,808,809],{"class":313},"getQuery",[273,811,812],{"class":283},"(event) };\n",[273,814,815,817,819,822,825,828,831,834,836,838],{"class":275,"line":320},[273,816,796],{"class":279},[273,818,804],{"class":283},[273,820,821],{"class":332},"result",[273,823,824],{"class":283}," } ",[273,826,827],{"class":279},"=",[273,829,830],{"class":279}," await",[273,832,833],{"class":313}," runTask",[273,835,456],{"class":283},[273,837,406],{"class":290},[273,839,840],{"class":283},", { payload });\n",[273,842,843],{"class":275,"line":326},[273,844,301],{"emptyLinePlaceholder":300},[273,846,847,850],{"class":275,"line":336},[273,848,849],{"class":279},"  return",[273,851,852],{"class":283}," { result };\n",[273,854,855],{"class":275,"line":342},[273,856,488],{"class":283},[241,858,860],{"id":859},"run-tasks-with-dev-server","Run tasks with dev server",[237,862,863],{},"Nitro's built-in dev server exposes tasks to be easily executed without programmatic usage.",[677,865,867],{"id":866},"using-api-routes","Using API routes",[869,870,872],"h4",{"id":871},"_nitrotasks",[270,873,874],{},"/_nitro/tasks",[237,876,877],{},"This endpoint returns a list of available task names and their meta.",[263,879,883],{"className":880,"code":881,"language":882,"meta":5,"style":5},"language-json shiki shiki-themes github-light github-dark github-dark","// [GET] /_nitro/tasks\n{\n  \"tasks\": {\n    \"db:migrate\": {\n      \"description\": \"Run database migrations\"\n    },\n     \"cms:update\": {\n      \"description\": \"Update CMS content\"\n    }\n  },\n  \"scheduledTasks\": [\n    {\n      \"cron\": \"* * * * *\",\n      \"tasks\": [\n        \"cms:update\"\n      ]\n    }\n  ]\n}\n","json",[270,884,885,890,895,903,910,921,926,933,942,947,951,960,966,979,987,993,999,1004,1010],{"__ignoreMap":5},[273,886,887],{"class":275,"line":276},[273,888,889],{"class":536},"// [GET] /_nitro/tasks\n",[273,891,892],{"class":275,"line":297},[273,893,894],{"class":283},"{\n",[273,896,897,900],{"class":275,"line":304},[273,898,899],{"class":332},"  \"tasks\"",[273,901,902],{"class":283},": {\n",[273,904,905,908],{"class":275,"line":320},[273,906,907],{"class":332},"    \"db:migrate\"",[273,909,902],{"class":283},[273,911,912,915,918],{"class":275,"line":326},[273,913,914],{"class":332},"      \"description\"",[273,916,917],{"class":283},": ",[273,919,920],{"class":290},"\"Run database migrations\"\n",[273,922,923],{"class":275,"line":336},[273,924,925],{"class":283},"    },\n",[273,927,928,931],{"class":275,"line":342},[273,929,930],{"class":332},"     \"cms:update\"",[273,932,902],{"class":283},[273,934,935,937,939],{"class":275,"line":465},[273,936,914],{"class":332},[273,938,917],{"class":283},[273,940,941],{"class":290},"\"Update CMS content\"\n",[273,943,944],{"class":275,"line":480},[273,945,946],{"class":283},"    }\n",[273,948,949],{"class":275,"line":485},[273,950,424],{"class":283},[273,952,954,957],{"class":275,"line":953},11,[273,955,956],{"class":332},"  \"scheduledTasks\"",[273,958,959],{"class":283},": [\n",[273,961,963],{"class":275,"line":962},12,[273,964,965],{"class":283},"    {\n",[273,967,969,972,974,977],{"class":275,"line":968},13,[273,970,971],{"class":332},"      \"cron\"",[273,973,917],{"class":283},[273,975,976],{"class":290},"\"* * * * *\"",[273,978,409],{"class":283},[273,980,982,985],{"class":275,"line":981},14,[273,983,984],{"class":332},"      \"tasks\"",[273,986,959],{"class":283},[273,988,990],{"class":275,"line":989},15,[273,991,992],{"class":290},"        \"cms:update\"\n",[273,994,996],{"class":275,"line":995},16,[273,997,998],{"class":283},"      ]\n",[273,1000,1002],{"class":275,"line":1001},17,[273,1003,946],{"class":283},[273,1005,1007],{"class":275,"line":1006},18,[273,1008,1009],{"class":283},"  ]\n",[273,1011,1013],{"class":275,"line":1012},19,[273,1014,1015],{"class":283},"}\n",[869,1017,1019],{"id":1018},"_nitrotasksname",[270,1020,1021],{},"/_nitro/tasks/:name",[237,1023,1024,1025,1028],{},"This endpoint executes a task. You can provide a payload using both query parameters and body JSON payload. The payload sent in the JSON body payload must be under the ",[270,1026,1027],{},"\"payload\""," property.",[1030,1031,1032,1116,1164],"code-group",{},[263,1033,1036],{"className":265,"code":1034,"filename":1035,"language":268,"meta":5,"style":5},"export default defineTask({\n  meta: {\n    name: \"echo:payload\",\n    description: \"Returns the provided payload\",\n  },\n  run({ payload, context }) {\n    console.log(\"Running echo task...\");\n    return { result: payload };\n  },\n});\n","tasks/echo/payload.ts",[270,1037,1038,1048,1052,1061,1070,1074,1088,1101,1108,1112],{"__ignoreMap":5},[273,1039,1040,1042,1044,1046],{"class":275,"line":276},[273,1041,307],{"class":279},[273,1043,310],{"class":279},[273,1045,391],{"class":313},[273,1047,317],{"class":283},[273,1049,1050],{"class":275,"line":297},[273,1051,398],{"class":283},[273,1053,1054,1056,1059],{"class":275,"line":304},[273,1055,403],{"class":283},[273,1057,1058],{"class":290},"\"echo:payload\"",[273,1060,409],{"class":283},[273,1062,1063,1065,1068],{"class":275,"line":320},[273,1064,414],{"class":283},[273,1066,1067],{"class":290},"\"Returns the provided payload\"",[273,1069,409],{"class":283},[273,1071,1072],{"class":275,"line":326},[273,1073,424],{"class":283},[273,1075,1076,1078,1080,1082,1084,1086],{"class":275,"line":336},[273,1077,429],{"class":313},[273,1079,432],{"class":283},[273,1081,436],{"class":435},[273,1083,439],{"class":283},[273,1085,442],{"class":435},[273,1087,445],{"class":283},[273,1089,1090,1092,1094,1096,1099],{"class":275,"line":342},[273,1091,450],{"class":283},[273,1093,453],{"class":313},[273,1095,456],{"class":283},[273,1097,1098],{"class":290},"\"Running echo task...\"",[273,1100,462],{"class":283},[273,1102,1103,1105],{"class":275,"line":465},[273,1104,468],{"class":279},[273,1106,1107],{"class":283}," { result: payload };\n",[273,1109,1110],{"class":275,"line":480},[273,1111,424],{"class":283},[273,1113,1114],{"class":275,"line":485},[273,1115,488],{"class":283},[263,1117,1120],{"className":880,"code":1118,"filename":1119,"language":882,"meta":5,"style":5},"// [GET] /_nitro/tasks/echo:payload?field=value&array=1&array=2\n{\n  \"field\": \"value\",\n  \"array\": [\"1\", \"2\"]\n}\n","GET",[270,1121,1122,1127,1131,1143,1160],{"__ignoreMap":5},[273,1123,1124],{"class":275,"line":276},[273,1125,1126],{"class":536},"// [GET] /_nitro/tasks/echo:payload?field=value&array=1&array=2\n",[273,1128,1129],{"class":275,"line":297},[273,1130,894],{"class":283},[273,1132,1133,1136,1138,1141],{"class":275,"line":304},[273,1134,1135],{"class":332},"  \"field\"",[273,1137,917],{"class":283},[273,1139,1140],{"class":290},"\"value\"",[273,1142,409],{"class":283},[273,1144,1145,1148,1150,1153,1155,1158],{"class":275,"line":320},[273,1146,1147],{"class":332},"  \"array\"",[273,1149,545],{"class":283},[273,1151,1152],{"class":290},"\"1\"",[273,1154,439],{"class":283},[273,1156,1157],{"class":290},"\"2\"",[273,1159,551],{"class":283},[273,1161,1162],{"class":275,"line":326},[273,1163,1015],{"class":283},[263,1165,1168],{"className":880,"code":1166,"filename":1167,"language":882,"meta":5,"style":5},"/**\n * [POST] /_nitro/tasks/echo:payload?field=value\n * body: {\n *   \"payload\": {\n *     \"answer\": 42,\n *     \"nested\": {\n *       \"value\": true\n *     }\n *   }\n * }\n */\n{\n  \"field\": \"value\",\n  \"answer\": 42,\n  \"nested\": {\n    \"value\": true\n  }\n}\n","POST",[270,1169,1170,1175,1180,1185,1190,1195,1200,1205,1210,1215,1220,1225,1229,1239,1251,1258,1267,1271],{"__ignoreMap":5},[273,1171,1172],{"class":275,"line":276},[273,1173,1174],{"class":536},"/**\n",[273,1176,1177],{"class":275,"line":297},[273,1178,1179],{"class":536}," * [POST] /_nitro/tasks/echo:payload?field=value\n",[273,1181,1182],{"class":275,"line":304},[273,1183,1184],{"class":536}," * body: {\n",[273,1186,1187],{"class":275,"line":320},[273,1188,1189],{"class":536}," *   \"payload\": {\n",[273,1191,1192],{"class":275,"line":326},[273,1193,1194],{"class":536}," *     \"answer\": 42,\n",[273,1196,1197],{"class":275,"line":336},[273,1198,1199],{"class":536}," *     \"nested\": {\n",[273,1201,1202],{"class":275,"line":342},[273,1203,1204],{"class":536}," *       \"value\": true\n",[273,1206,1207],{"class":275,"line":465},[273,1208,1209],{"class":536}," *     }\n",[273,1211,1212],{"class":275,"line":480},[273,1213,1214],{"class":536}," *   }\n",[273,1216,1217],{"class":275,"line":485},[273,1218,1219],{"class":536}," * }\n",[273,1221,1222],{"class":275,"line":953},[273,1223,1224],{"class":536}," */\n",[273,1226,1227],{"class":275,"line":962},[273,1228,894],{"class":283},[273,1230,1231,1233,1235,1237],{"class":275,"line":968},[273,1232,1135],{"class":332},[273,1234,917],{"class":283},[273,1236,1140],{"class":290},[273,1238,409],{"class":283},[273,1240,1241,1244,1246,1249],{"class":275,"line":981},[273,1242,1243],{"class":332},"  \"answer\"",[273,1245,917],{"class":283},[273,1247,1248],{"class":332},"42",[273,1250,409],{"class":283},[273,1252,1253,1256],{"class":275,"line":989},[273,1254,1255],{"class":332},"  \"nested\"",[273,1257,902],{"class":283},[273,1259,1260,1263,1265],{"class":275,"line":995},[273,1261,1262],{"class":332},"    \"value\"",[273,1264,917],{"class":283},[273,1266,333],{"class":332},[273,1268,1269],{"class":275,"line":1001},[273,1270,339],{"class":283},[273,1272,1273],{"class":275,"line":1006},[273,1274,1015],{"class":283},[1276,1277,1278],"note",{},[237,1279,1280],{},"\nThe JSON payload included in the body will overwrite the keys present in the query params.",[677,1282,1284],{"id":1283},"using-cli","Using CLI",[246,1286,1287],{},[237,1288,1289,1290,1293],{},"\nIt is only possible to run these commands while the ",[375,1291,1292],{},"dev server is running",". You should run them in a second terminal.",[869,1295,1297],{"id":1296},"list-tasks","List tasks",[263,1299,1303],{"className":1300,"code":1301,"language":1302,"meta":5,"style":5},"language-sh shiki shiki-themes github-light github-dark github-dark","nitro task list\n","sh",[270,1304,1305],{"__ignoreMap":5},[273,1306,1307,1310,1313],{"class":275,"line":276},[273,1308,1309],{"class":313},"nitro",[273,1311,1312],{"class":290}," task",[273,1314,1315],{"class":290}," list\n",[869,1317,1319],{"id":1318},"run-a-task","Run a task",[263,1321,1323],{"className":1300,"code":1322,"language":1302,"meta":5,"style":5},"nitro task run db:migrate --payload \"{}\"\n",[270,1324,1325],{"__ignoreMap":5},[273,1326,1327,1329,1331,1334,1337,1340],{"class":275,"line":276},[273,1328,1309],{"class":313},[273,1330,1312],{"class":290},[273,1332,1333],{"class":290}," run",[273,1335,1336],{"class":290}," db:migrate",[273,1338,1339],{"class":332}," --payload",[273,1341,1342],{"class":290}," \"{}\"\n",[241,1344,1346],{"id":1345},"notes","Notes",[677,1348,1350],{"id":1349},"concurrency","Concurrency",[237,1352,1353,1354,1357],{},"Each task can have ",[375,1355,1356],{},"one running instance",". Calling a task of same name multiple times in parallel, results in calling it once and all callers will get the same return value.",[1276,1359,1360],{},[237,1361,1362],{},"\nNitro tasks can be running multiple times and in parallel.",[1364,1365,1366],"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 pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}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 .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":5,"searchDepth":297,"depth":297,"links":1368},[1369,1370,1371,1372,1375,1376,1380],{"id":243,"depth":297,"text":244},{"id":348,"depth":297,"text":349},{"id":491,"depth":297,"text":492},{"id":574,"depth":297,"text":577,"children":1373},[1374],{"id":679,"depth":304,"text":680},{"id":739,"depth":297,"text":740},{"id":859,"depth":297,"text":860,"children":1377},[1378,1379],{"id":866,"depth":304,"text":867},{"id":1283,"depth":304,"text":1284},{"id":1345,"depth":297,"text":1346,"children":1381},[1382],{"id":1349,"depth":304,"text":1350},"Nitro tasks allow on-off operations in runtime.","md",{"icon":56},{"icon":56},{"title":53,"description":1383},"5QxaFm_l94RZ35CswuBP_m9VMXXRgbIPniwBI9nsQ-M",[1390,1392],{"title":48,"path":49,"stem":50,"description":1391,"icon":51,"children":-1},"Use plugins to extend Nitro's runtime behavior.",{"title":58,"path":59,"stem":60,"description":1393,"icon":61,"children":-1},"Use a server entry to create a global middleware that runs for all routes before they are matched.",1773176970103]