{"_id":"@aimwhy/run","name":"@aimwhy/run","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aimwhy/run","version":"0.1.0","description":"run","homepage":"https://github.com/AimWhy/run#readme","type":"module","keywords":["dataTransform","接口数据","aimwhy","转换"],"repository":{"type":"git","url":"git+https://github.com/AimWhy/run.git"},"bugs":{"url":"https://github.com/AimWhy/run/issues"},"license":"MIT","author":{"name":"aimWhy"},"funding":"https://github.com/AimWhy/run","engines":{"node":">= 16"},"main":"dist/run.module.js","module":"dist/run.module.js","types":"dist/run.module.d.ts","sideEffects":false,"dependencies":{},"devDependencies":{"@babel/core":"^7.20.5","@babel/eslint-parser":"^7.19.1","@babel/plugin-syntax-import-assertions":"^7.20.0","@rollup/plugin-commonjs":"^23.0.2","@rollup/plugin-image":"^3.0.1","@rollup/plugin-node-resolve":"^15.0.1","@rollup/plugin-replace":"^5.0.1","cross-env":"^7.0.3","del-cli":"^5.0.0","eslint":"^8.29.0","eslint-plugin-jsdoc":"^39.6.2","rollup":"^3.2.5","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-string":"^3.0.0","terser":"^5.15.1","typescript":"^4.8.4"},"scripts":{"build":"npm run lint && rollup -c --silent","dist":" npm run build && mkdir dist && cp -fR build/*.* dist/ && npm run types","lint":"eslint src/** rollup.config.mjs","prepublishOnly":"npm run clean && npm run dist","clean":"del-cli --force build dist docs","types":"tsc src/index.js --declaration --allowJs --emitDeclarationOnly --outfile dist/run.module.d.ts"},"gitHead":"5c0dc7ef4c1591bd1de90006949607c2e3652375","_id":"@aimwhy/run@0.1.0","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-G8a/G9/NBa16COYX02adX0K4ZnBIDN7C8GzIxzuQkMP+JVbzSMXtD1CQ+56IIaQQcwl67Rz+WGPE7Oh8P0emCA==","shasum":"906fea64e66f853c523313f795f7282f0ef8b007","tarball":"https://registry.npmjs.org/@aimwhy/run/-/run-0.1.0.tgz","fileCount":11,"unpackedSize":9698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHZG1I1IecUh4uUI4n+JNsOEIKNvjb20gpZd3m0juoT4AiEA0g/6inmX0RUrU5lsQ9t2xBOgDzGl0IR2vTIGxhiaeCs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkXlHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXmw/7BlOdOu4xkSQM8R59WswnvExxTjLNftot0wk5dunpfi6jQVM/\r\nQWx9YQt/ZeQKXjbcfMkr3cM0QVYCAxi/Gn8bYnEN6YcARfPcEMcDbCc8J165\r\nGKVsXx3caTCwqNkACJV9XA4UTTIJ/3ftncDhs+LyaDB4Bz3CkNeE1lmZVncv\r\nfNaZpIyWmmird6q8S8YVGCmQLg8juzmitWAU8uQjmGG3q2rVoPjuCF/5AYFP\r\nIqUitrcxrMWHhwveciJpz9Weme5z7pmHUaA3xDZf3upxIVLZBk3xcW+iNZ5u\r\nwbq5FkUGLePhOXkp0Po8gTzr/2L1zDBc+NeRtkXNst7WYmwBsN5j5voWR8E+\r\nmfm0BGzEgLmXTLa16/6DWbhhf+ZDRwFVFuFThBhL26jH6OYDWSM+japwlnFw\r\n3lkxLXwSUKfBZAIe+D34oF5CSjoQKYh5uUo9rNAvIJrcd4yNqnDdzi0g6nLE\r\nrj0LKlygOAyBHc2bJawZCSb1r5poSR5ZvDz3m7O5ZdzhBVvnvGkoHB2TPVUJ\r\nb4+3j1jXOe3x+aJm+AGyl3vpDIZHg6QNrviMiSvr4+Na3RljCEyRBBJKm9r1\r\nD3j8zKpA5/U/GlQulVAW8EAoFzpd0ZkkVmD2BeJ8vrHuWf/h4qArDaIZ/x5F\r\nLuKVYP9J7CPQkJ0ifiJvcG5wRujlo453+iY=\r\n=h0Gd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aimwhy","email":"aimwhy@qq.com"},"directories":{},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/run_0.1.0_1670478150869_0.20534718157564935"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-08T05:42:30.790Z","0.1.0":"2022-12-08T05:42:31.015Z","modified":"2022-12-08T05:42:31.183Z"},"maintainers":[{"name":"aimwhy","email":"aimwhy@qq.com"}],"description":"run","homepage":"https://github.com/AimWhy/run#readme","keywords":["dataTransform","接口数据","aimwhy","转换"],"repository":{"type":"git","url":"git+https://github.com/AimWhy/run.git"},"author":{"name":"aimWhy"},"bugs":{"url":"https://github.com/AimWhy/run/issues"},"license":"MIT","readme":"## 解决问题\n\n1. 异常捕获，支持同步和异步\n\n```js\ntry {\n   // 一堆逻辑\n   \n   try {\n    // 一堆逻辑\n   } catch() {\n\n   }\n} catch() {\n\n}\n```\n到处写， 且嵌套层级过深不易读\n\n2.异步方法调用，常出现竞态返回的问题\n\n3.小巧、总代码量不到 60 行， 无依赖\n\n\n```js\nimport { run } from \"@aimwhy/run\";\n\nfunction delay(ms, value) {\n   return new Promise((res) => window.setTimeout(res, ms, value))\n}\n\nasync function test(ms, v) {\n   let [err, val] = await run(delay, [ms, v], true);\n\n   if(err && err.isRace) {\n      return console.warn('已被抢占')\n   }\n\n   console.log(val)\n}\n\ntest(3000, 3)\n\nsetTimeout(() => {\n   test(1000, 1)\n})\n\n```\n\n\n```js\nimport { run } from \"@aimwhy/run\";\n\nfunction test(a) {\n  console.log(a)\n  throw new Error('test');\n}\n\nlet [err, data] = run(test, [22]);\n\nif (err) {\n  return console.log(err);\n}\n\nconsole.log(data);\n\n```","readmeFilename":"README.md"}