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