{"version":3,"sources":["jsdelivr-header.js","/npm/@baiwusanyu/utils-task@1.1.2/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OCLS,QAAW,wBACpB,SAAS,iBAAiB,EAAS,GACjC,MAAM,EAAW,GACjB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,IAC3B,EAAS,KAAK,IAAI,SAAS,IACzB,EAAQ,EAAS,GAAG,KAGxB,OAAO,CACT,CACA,eAAe,iBAAiB,EAAS,GACvC,IAOE,aANkB,QAAQ,IACxB,iBAAiB,GAAS,MAAO,SACV,EAAS,KAKpC,CAAE,MAAO,GACP,IAAI,QAAS,EAAE,QACjB,CACF,eAGgB,WAAc,wBAC9B,eAAe,aAAa,EAAW,EAAM,EAAW,EAAG,GAAO,GAChE,MAAM,EAAY,EACZ,EAAW,GACX,EAAc,GACd,EAAY,CAAC,EACnB,eAAe,EAAY,GACzB,UACQ,EAAK,MAAM,EAAK,QACtB,EAAY,KAAK,EAAK,IACtB,GAAQ,EAAK,iBAAmB,EAAK,gBAAgB,EAAU,EAAK,IAAK,GACzE,GAAQ,OAAO,OAAQ,QAAQ,EAAK,4BACtC,CAAE,MAAO,GACP,GAAQ,OACN,QACA,yBAAyB,EAAK,OAAO,EAAM,WAE7C,EAAK,QACD,EAAK,MAAQ,GACf,EAAU,KAAK,GACf,GAAQ,OACN,OACA,QAAQ,EAAK,8BAGf,EAAS,KAAK,EAAK,IACnB,GAAQ,EAAK,cAAgB,EAAK,aAAa,EAAU,EAAK,IAAK,GACnE,GAAQ,OACN,OACA,QAAQ,EAAK,8EAGnB,CACF,CAcA,aAbA,iBACE,IAAI,EAAQ,EACZ,KAAO,EAAU,OAAS,GAAG,CAC3B,MAAM,EAAO,EAAU,QACJ,IAAf,EAAK,QACP,EAAU,EAAK,IAAM,EACrB,WAEI,EAAY,EACpB,CACF,CACM,GACN,GAAQ,EAAK,YAAc,EAAK,aACzB,CACL,QAAS,EACT,KAAM,EAEV,QAEE,iBACA,aACA","file":"/npm/@baiwusanyu/utils-task@1.1.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@baiwusanyu/utils-task@1.1.2/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// ../packages/task/src/async.ts\nimport { log } from \"@baiwusanyu/utils-log\";\nfunction setAsyncTaskList(taskNum, taskFunc) {\n  const taskList = [];\n  for (let i = 0; i < taskNum; i++) {\n    taskList.push(new Promise((resolve) => {\n      resolve(taskFunc(i));\n    }));\n  }\n  return taskList;\n}\nasync function runAsyncTaskList(taskNum, taskFunc) {\n  try {\n    const res = await Promise.all(\n      setAsyncTaskList(taskNum, async (index) => {\n        const runRes = await taskFunc(index);\n        return runRes;\n      })\n    );\n    return res;\n  } catch (e) {\n    log(\"error\", e.message);\n  }\n}\n\n// ../packages/task/src/queue.ts\nimport { log as logger } from \"@baiwusanyu/utils-log\";\nasync function runTaskQueue(taskQueue, hook, maxRetry = 5, log2 = true) {\n  const MAX_RETRY = maxRetry;\n  const failList = [];\n  const successList = [];\n  const idToIndex = {};\n  async function processTask(task) {\n    try {\n      await task.fn(...task.params);\n      successList.push(task.id);\n      hook && hook.onTaskSucceeded && hook.onTaskSucceeded(idToIndex[task.id], task);\n      log2 && logger(\"info\", `Task ${task.id} completed successfully`);\n    } catch (error) {\n      log2 && logger(\n        \"error\",\n        `Error processing task ${task.id}: ${error.message}`\n      );\n      task.retry++;\n      if (task.retry < MAX_RETRY) {\n        taskQueue.push(task);\n        log2 && logger(\n          \"info\",\n          `Task ${task.id} will be retried later`\n        );\n      } else {\n        failList.push(task.id);\n        hook && hook.onTaskFailed && hook.onTaskFailed(idToIndex[task.id], task);\n        log2 && logger(\n          \"info\",\n          `Task ${task.id} has reached the maximum number of retries and will not be retried again`\n        );\n      }\n    }\n  }\n  async function processTaskQueue() {\n    let index = 0;\n    while (taskQueue.length > 0) {\n      const task = taskQueue.shift();\n      if (task.retry === 0) {\n        idToIndex[task.id] = index;\n        index++;\n      }\n      await processTask(task);\n    }\n  }\n  await processTaskQueue();\n  hook && hook.onFinished && hook.onFinished();\n  return {\n    success: successList,\n    fail: failList\n  };\n}\nexport {\n  runAsyncTaskList,\n  runTaskQueue,\n  setAsyncTaskList\n};\n"]}