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