{"version":3,"sources":["jsdelivr-header.js","/npm/node-todo-sxf@0.0.1/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,GAAK,QAAQ,WACb,SAAW,QAAQ,YAsBzB,SAAS,WAAW,EAAM,GACxB,EAAK,GAAO,MAAO,EACnB,GAAG,MAAM,EACX,CAEA,SAAS,aAAa,EAAM,GAC1B,EAAK,GAAO,MAAO,EACnB,GAAG,MAAM,EACX,CAEA,SAAS,YAAY,EAAM,GACzB,SACG,OAAO,CACN,KAAM,QACN,KAAM,QACN,QAAS,UACT,QAAS,EAAK,GAAO,QACpB,MAAK,IACR,EAAK,GAAO,MAAQ,EAAQ,MAC5B,GAAG,MAAM,EAAI,GAEjB,CAEA,SAAS,OAAO,EAAM,GACpB,EAAK,OAAO,EAAO,GACnB,GAAG,MAAM,EACX,CAEA,SAAS,aAAa,EAAM,GAC1B,MAAM,EAAU,CACd,sBAAY,0BAAc,wBAAa,eAEzC,SACG,OAAO,CACN,KAAM,OACN,KAAM,QACN,QAAS,QACT,QAAS,CACP,CAAC,KAAM,KAAM,MAAO,QACpB,CAAC,KAAM,MAAO,MAAO,cACrB,CAAC,KAAM,MAAO,MAAO,gBACrB,CAAC,KAAM,OAAQ,MAAO,eACtB,CAAC,KAAM,KAAM,MAAO,aAErB,MAAK,IACN,MAAM,EAAS,EAAQ,EAAQ,OAC/B,GAAU,EAAO,EAAM,EAAK,GAElC,CAEA,SAAS,WAAW,GAClB,SACG,OAAO,CACN,KAAM,QACN,KAAM,QACN,QAAS,YACR,MAAK,IACR,MAAM,EAAO,CAAC,MAAO,EAAQ,MAAO,MAAM,GAC1C,EAAK,KAAK,GACV,GAAG,MAAM,EAAI,GAEjB,CAGA,SAAS,UAAU,GACjB,SACG,OAAO,CACN,KAAM,OACN,KAAM,QACN,QAAS,aACT,QAAS,IAAK,EAAK,KAAI,CAAC,EAAM,KACrB,CAAC,KAAM,GAAG,EAAK,KAAO,MAAQ,WAAW,EAAQ,OAAO,EAAK,QAAS,MAAO,EAAM,eACxF,CAAC,KAAM,SAAU,OAAQ,GAAI,CAAC,KAAM,KAAM,OAAQ,MAEvD,MAAM,IACL,MAAM,EAAQ,EAAQ,MAClB,GAAS,EAEX,aAAa,EAAM,IACC,IAAX,GACT,WAAW,EACb,GAEN,CAvGA,OAAO,QAAQ,IAAM,MAAO,IAE1B,MAAM,QAAa,GAAG,OAEtB,EAAK,KAAK,CAAC,QAAO,MAAM,UAElB,GAAG,MAAM,EAAI,EAGrB,OAAO,QAAQ,MAAQ,gBACf,GAAG,MAAM,GAAE,EAInB,OAAO,QAAQ,QAAU,UAGvB,gBAFmB,GAAG,OAER","file":"/npm/node-todo-sxf@0.0.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/node-todo-sxf@0.0.1/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","const db = require('./db.js')\r\nconst inquirer = require('inquirer')\r\n\r\nmodule.exports.add = async (title) => {\r\n  // 读取之前的任务\r\n  const list = await db.read()\r\n  // 往里面添加一个title任务\r\n  list.push({title, done: false})\r\n  // 存储任务到文件\r\n  await db.write(list)\r\n}\r\n\r\nmodule.exports.clear = async () => {\r\n  await db.write([])\r\n}\r\n\r\n\r\nmodule.exports.showAll = async () => {\r\n  const list = await db.read()\r\n  // 打印任务\r\n  printTask(list)\r\n}\r\n\r\nfunction markAsDone(list, index) {\r\n  list[index].done = true\r\n  db.write(list)\r\n}\r\n\r\nfunction markAsUndone(list, index) {\r\n  list[index].done = false\r\n  db.write(list)\r\n}\r\n\r\nfunction updateTitle(list, index) {\r\n  inquirer\r\n    .prompt({\r\n      type: 'input',\r\n      name: 'title',\r\n      message: '请输入新的标题',\r\n      default: list[index].title\r\n    }).then(answer3 => {\r\n    list[index].title = answer3.title\r\n    db.write(list)\r\n  })\r\n}\r\n\r\nfunction remove(list, index) {\r\n  list.splice(index, 1)\r\n  db.write(list)\r\n}\r\n\r\nfunction askForAction(list, index) {\r\n  const actions = {\r\n    markAsDone, markAsUndone, updateTitle, remove\r\n  }\r\n  inquirer\r\n    .prompt({\r\n      type: 'list',\r\n      name: 'value',\r\n      message: '请选择操作',\r\n      choices: [\r\n        {name: '退出', value: 'quit'},\r\n        {name: '已完成', value: 'markAsDone'},\r\n        {name: '未完成', value: 'markAsUndone'},\r\n        {name: '编辑标题', value: 'updateTitle'},\r\n        {name: '删除', value: 'remove'}\r\n      ]\r\n    }).then(answer2 => {\r\n      const action = actions[answer2.value]\r\n      action && action(list, index)\r\n  })\r\n}\r\n\r\nfunction createTask(list) {\r\n  inquirer\r\n    .prompt({\r\n      type: 'input',\r\n      name: 'title',\r\n      message: '请输入任务标题',\r\n    }).then(answer4 => {\r\n    const task = {title: answer4.title, done: false}\r\n    list.push(task)\r\n    db.write(list)\r\n  })\r\n}\r\n\r\n\r\nfunction printTask(list) {\r\n  inquirer\r\n    .prompt({\r\n      type: 'list',\r\n      name: 'value',\r\n      message: '请选择你想操作的任务',\r\n      choices: [ ...list.map((task, index) => {\r\n        return {name: `${task.done ? '[x]' : '[_]'} - ${index + 1} - ${task.title}`, value: index.toString()}\r\n      }), {name: '+ 创建任务', value: -2}, {name: '退出', value: -1}],\r\n    })\r\n    .then((answers) => {\r\n      const index = answers.value\r\n      if (index >= 0) {\r\n        // 操作任务\r\n        askForAction(list, index)\r\n      } else if (index === -2) {\r\n        createTask(list)\r\n      }\r\n    })\r\n}\r\n\r\n"]}