[{"data":1,"prerenderedAt":1352},["ShallowReactive",2],{"navigation":3,"-guide-tasks":225,"-guide-tasks-surround":1347},[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":1341,"extension":1342,"meta":1343,"navigation":1344,"path":18,"seo":1345,"stem":19,"__hash__":1346},"content/1.guide/10.tasks.md",{"type":228,"value":229,"toc":1326,"icon":20},"minimark",[230,235,250,253,364,368,375,390,396,508,512,515,617,629,634,694,698,705,709,818,822,825,829,836,839,976,982,989,1234,1240,1244,1253,1257,1275,1279,1302,1306,1310,1317,1322],[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,691],"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 has 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 the same patterns you define in ",[265,673,674],{},"scheduledTasks"," to be matched.",[638,677,678,665,681,686,687,690],{},[265,679,680],{},"vercel",[243,682,685],{"href":683,"rel":684},"https://vercel.com/docs/cron-jobs",[247],"Vercel Cron Jobs",". Nitro automatically generates the cron job configuration at build time — no manual ",[265,688,689],{},"vercel.json"," setup required.",[638,692,693],{},"More presets (with native primitives support) are planned to be supported!",[231,695,697],{"id":696},"programmatically-run-tasks","Programmatically run tasks",[239,699,700,701,704],{},"To manually run tasks, you can use ",[265,702,703],{},"runTask(name, { payload? })"," utility.",[239,706,707],{},[393,708,395],{},[257,710,713],{"className":259,"code":711,"filename":712,"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,714,715,744,749,772,800,806,814],{"__ignoreMap":263},[268,716,717,719,721,724,726,729,732,735,738,741],{"class":270,"line":271},[268,718,275],{"class":274},[268,720,278],{"class":274},[268,722,723],{"class":281}," eventHandler",[268,725,475],{"class":285},[268,727,728],{"class":274},"async",[268,730,731],{"class":285}," (",[268,733,734],{"class":454},"event",[268,736,737],{"class":285},") ",[268,739,740],{"class":274},"=>",[268,742,743],{"class":285}," {\n",[268,745,746],{"class":270,"line":289},[268,747,748],{"class":541},"  // IMPORTANT: Authenticate user and validate payload!\n",[268,750,751,754,757,760,763,766,769],{"class":270,"line":295},[268,752,753],{"class":274},"  const",[268,755,756],{"class":301}," payload",[268,758,759],{"class":274}," =",[268,761,762],{"class":285}," { ",[268,764,765],{"class":274},"...",[268,767,768],{"class":281},"getQuery",[268,770,771],{"class":285},"(event) };\n",[268,773,774,776,778,781,784,787,790,793,795,797],{"class":270,"line":305},[268,775,753],{"class":274},[268,777,762],{"class":285},[268,779,780],{"class":301},"result",[268,782,783],{"class":285}," } ",[268,785,786],{"class":274},"=",[268,788,789],{"class":274}," await",[268,791,792],{"class":281}," runTask",[268,794,475],{"class":285},[268,796,425],{"class":424},[268,798,799],{"class":285},", { payload });\n",[268,801,802],{"class":270,"line":311},[268,803,805],{"emptyLinePlaceholder":804},true,"\n",[268,807,808,811],{"class":270,"line":356},[268,809,810],{"class":274},"  return",[268,812,813],{"class":285}," { result };\n",[268,815,816],{"class":270,"line":361},[268,817,507],{"class":285},[231,819,821],{"id":820},"run-tasks-with-dev-server","Run tasks with dev server",[239,823,824],{},"Nitro's built-in dev server exposes tasks to be easily executed without programmatic usage.",[630,826,828],{"id":827},"using-api-routes","Using API routes",[830,831,833],"h4",{"id":832},"_nitrotasks",[265,834,835],{},"/_nitro/tasks",[239,837,838],{},"This endpoint returns a list of available task names and their meta.",[257,840,844],{"className":841,"code":842,"language":843,"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,845,846,851,856,864,871,882,887,894,903,907,911,920,926,939,947,953,959,964,970],{"__ignoreMap":263},[268,847,848],{"class":270,"line":271},[268,849,850],{"class":541},"// [GET] /_nitro/tasks\n",[268,852,853],{"class":270,"line":289},[268,854,855],{"class":285},"{\n",[268,857,858,861],{"class":270,"line":295},[268,859,860],{"class":301},"  \"tasks\"",[268,862,863],{"class":285},": {\n",[268,865,866,869],{"class":270,"line":305},[268,867,868],{"class":301},"    \"db:migrate\"",[268,870,863],{"class":285},[268,872,873,876,879],{"class":270,"line":311},[268,874,875],{"class":301},"      \"description\"",[268,877,878],{"class":285},": ",[268,880,881],{"class":424},"\"Run database migrations\"\n",[268,883,884],{"class":270,"line":356},[268,885,886],{"class":285},"    },\n",[268,888,889,892],{"class":270,"line":361},[268,890,891],{"class":301},"     \"cms:update\"",[268,893,863],{"class":285},[268,895,896,898,900],{"class":270,"line":484},[268,897,875],{"class":301},[268,899,878],{"class":285},[268,901,902],{"class":424},"\"Update CMS content\"\n",[268,904,905],{"class":270,"line":499},[268,906,353],{"class":285},[268,908,909],{"class":270,"line":504},[268,910,443],{"class":285},[268,912,914,917],{"class":270,"line":913},11,[268,915,916],{"class":301},"  \"scheduledTasks\"",[268,918,919],{"class":285},": [\n",[268,921,923],{"class":270,"line":922},12,[268,924,925],{"class":285},"    {\n",[268,927,929,932,934,937],{"class":270,"line":928},13,[268,930,931],{"class":301},"      \"cron\"",[268,933,878],{"class":285},[268,935,936],{"class":424},"\"* * * * *\"",[268,938,428],{"class":285},[268,940,942,945],{"class":270,"line":941},14,[268,943,944],{"class":301},"      \"tasks\"",[268,946,919],{"class":285},[268,948,950],{"class":270,"line":949},15,[268,951,952],{"class":424},"        \"cms:update\"\n",[268,954,956],{"class":270,"line":955},16,[268,957,958],{"class":285},"      ]\n",[268,960,962],{"class":270,"line":961},17,[268,963,353],{"class":285},[268,965,967],{"class":270,"line":966},18,[268,968,969],{"class":285},"  ]\n",[268,971,973],{"class":270,"line":972},19,[268,974,975],{"class":285},"}\n",[830,977,979],{"id":978},"_nitrotasksname",[265,980,981],{},"/_nitro/tasks/:name",[239,983,984,985,988],{},"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,986,987],{},"\"payload\""," property.",[254,990,991,1075,1123],{},[257,992,995],{"className":259,"code":993,"filename":994,"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,996,997,1007,1011,1020,1029,1033,1047,1060,1067,1071],{"__ignoreMap":263},[268,998,999,1001,1003,1005],{"class":270,"line":271},[268,1000,275],{"class":274},[268,1002,278],{"class":274},[268,1004,409],{"class":281},[268,1006,286],{"class":285},[268,1008,1009],{"class":270,"line":289},[268,1010,416],{"class":285},[268,1012,1013,1015,1018],{"class":270,"line":295},[268,1014,421],{"class":285},[268,1016,1017],{"class":424},"\"echo:payload\"",[268,1019,428],{"class":285},[268,1021,1022,1024,1027],{"class":270,"line":305},[268,1023,433],{"class":285},[268,1025,1026],{"class":424},"\"Returns the provided payload\"",[268,1028,428],{"class":285},[268,1030,1031],{"class":270,"line":311},[268,1032,443],{"class":285},[268,1034,1035,1037,1039,1041,1043,1045],{"class":270,"line":356},[268,1036,448],{"class":281},[268,1038,451],{"class":285},[268,1040,455],{"class":454},[268,1042,458],{"class":285},[268,1044,461],{"class":454},[268,1046,464],{"class":285},[268,1048,1049,1051,1053,1055,1058],{"class":270,"line":361},[268,1050,469],{"class":285},[268,1052,472],{"class":281},[268,1054,475],{"class":285},[268,1056,1057],{"class":424},"\"Running echo task...\"",[268,1059,481],{"class":285},[268,1061,1062,1064],{"class":270,"line":484},[268,1063,487],{"class":274},[268,1065,1066],{"class":285}," { result: payload };\n",[268,1068,1069],{"class":270,"line":499},[268,1070,443],{"class":285},[268,1072,1073],{"class":270,"line":504},[268,1074,507],{"class":285},[257,1076,1079],{"className":841,"code":1077,"filename":1078,"language":843,"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,1080,1081,1086,1090,1102,1119],{"__ignoreMap":263},[268,1082,1083],{"class":270,"line":271},[268,1084,1085],{"class":541},"// [GET] /_nitro/tasks/echo:payload?field=value&array=1&array=2\n",[268,1087,1088],{"class":270,"line":289},[268,1089,855],{"class":285},[268,1091,1092,1095,1097,1100],{"class":270,"line":295},[268,1093,1094],{"class":301},"  \"field\"",[268,1096,878],{"class":285},[268,1098,1099],{"class":424},"\"value\"",[268,1101,428],{"class":285},[268,1103,1104,1107,1109,1112,1114,1117],{"class":270,"line":305},[268,1105,1106],{"class":301},"  \"array\"",[268,1108,550],{"class":285},[268,1110,1111],{"class":424},"\"1\"",[268,1113,458],{"class":285},[268,1115,1116],{"class":424},"\"2\"",[268,1118,556],{"class":285},[268,1120,1121],{"class":270,"line":311},[268,1122,975],{"class":285},[257,1124,1127],{"className":841,"code":1125,"filename":1126,"language":843,"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,1128,1129,1134,1139,1144,1149,1154,1159,1164,1169,1174,1179,1184,1188,1198,1210,1217,1226,1230],{"__ignoreMap":263},[268,1130,1131],{"class":270,"line":271},[268,1132,1133],{"class":541},"/**\n",[268,1135,1136],{"class":270,"line":289},[268,1137,1138],{"class":541}," * [POST] /_nitro/tasks/echo:payload?field=value\n",[268,1140,1141],{"class":270,"line":295},[268,1142,1143],{"class":541}," * body: {\n",[268,1145,1146],{"class":270,"line":305},[268,1147,1148],{"class":541}," *   \"payload\": {\n",[268,1150,1151],{"class":270,"line":311},[268,1152,1153],{"class":541}," *     \"answer\": 42,\n",[268,1155,1156],{"class":270,"line":356},[268,1157,1158],{"class":541}," *     \"nested\": {\n",[268,1160,1161],{"class":270,"line":361},[268,1162,1163],{"class":541}," *       \"value\": true\n",[268,1165,1166],{"class":270,"line":484},[268,1167,1168],{"class":541}," *     }\n",[268,1170,1171],{"class":270,"line":499},[268,1172,1173],{"class":541}," *   }\n",[268,1175,1176],{"class":270,"line":504},[268,1177,1178],{"class":541}," * }\n",[268,1180,1181],{"class":270,"line":913},[268,1182,1183],{"class":541}," */\n",[268,1185,1186],{"class":270,"line":922},[268,1187,855],{"class":285},[268,1189,1190,1192,1194,1196],{"class":270,"line":928},[268,1191,1094],{"class":301},[268,1193,878],{"class":285},[268,1195,1099],{"class":424},[268,1197,428],{"class":285},[268,1199,1200,1203,1205,1208],{"class":270,"line":941},[268,1201,1202],{"class":301},"  \"answer\"",[268,1204,878],{"class":285},[268,1206,1207],{"class":301},"42",[268,1209,428],{"class":285},[268,1211,1212,1215],{"class":270,"line":949},[268,1213,1214],{"class":301},"  \"nested\"",[268,1216,863],{"class":285},[268,1218,1219,1222,1224],{"class":270,"line":955},[268,1220,1221],{"class":301},"    \"value\"",[268,1223,878],{"class":285},[268,1225,302],{"class":301},[268,1227,1228],{"class":270,"line":961},[268,1229,308],{"class":285},[268,1231,1232],{"class":270,"line":966},[268,1233,975],{"class":285},[1235,1236,1237],"note",{},[239,1238,1239],{},"\nThe JSON payload included in the body will overwrite the keys present in the query params.",[630,1241,1243],{"id":1242},"using-cli","Using CLI",[236,1245,1246],{},[239,1247,1248,1249,1252],{},"\nIt is only possible to run these commands while the ",[393,1250,1251],{},"dev server is running",". You should run them in a second terminal.",[830,1254,1256],{"id":1255},"list-tasks","List tasks",[257,1258,1262],{"className":1259,"code":1260,"language":1261,"meta":263,"style":263},"language-sh shiki shiki-themes github-light github-dark github-dark","nitro task list\n","sh",[265,1263,1264],{"__ignoreMap":263},[268,1265,1266,1269,1272],{"class":270,"line":271},[268,1267,1268],{"class":281},"nitro",[268,1270,1271],{"class":424}," task",[268,1273,1274],{"class":424}," list\n",[830,1276,1278],{"id":1277},"run-a-task","Run a task",[257,1280,1282],{"className":1259,"code":1281,"language":1261,"meta":263,"style":263},"nitro task run db:migrate --payload \"{}\"\n",[265,1283,1284],{"__ignoreMap":263},[268,1285,1286,1288,1290,1293,1296,1299],{"class":270,"line":271},[268,1287,1268],{"class":281},[268,1289,1271],{"class":424},[268,1291,1292],{"class":424}," run",[268,1294,1295],{"class":424}," db:migrate",[268,1297,1298],{"class":301}," --payload",[268,1300,1301],{"class":424}," \"{}\"\n",[231,1303,1305],{"id":1304},"notes","Notes",[630,1307,1309],{"id":1308},"concurrency","Concurrency",[239,1311,1312,1313,1316],{},"Each task can have ",[393,1314,1315],{},"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.",[1235,1318,1319],{},[239,1320,1321],{},"\nNitro tasks can be running multiple times and in parallel.",[1323,1324,1325],"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":1327},[1328,1329,1330,1333,1334,1338],{"id":233,"depth":289,"text":234},{"id":366,"depth":289,"text":367},{"id":510,"depth":289,"text":511,"children":1331},[1332],{"id":632,"depth":295,"text":633},{"id":696,"depth":289,"text":697},{"id":820,"depth":289,"text":821,"children":1335},[1336,1337],{"id":827,"depth":295,"text":828},{"id":1242,"depth":295,"text":1243},{"id":1304,"depth":289,"text":1305,"children":1339},[1340],{"id":1308,"depth":295,"text":1309},"Nitro tasks allow on-off operations in runtime.","md",{"icon":20},{"icon":20},{"title":17,"description":1341},"v6frseNclTmNxHOLLFi8eLwlqXsVAkJHEg63yWkjgYE",[1348,1350],{"title":12,"path":13,"stem":14,"description":1349,"icon":15,"children":-1},"Enjoy auto-imported server utils and extend with your own utils.",{"title":22,"path":23,"stem":24,"description":1351,"icon":25,"children":-1},"Nitro supports filesystem routing to automatically map files to h3 routes.",1781183123588]