{"_id":"@brainsights/promise-task","_rev":"8-8aae68909796595f99c493e56a4c3e7a","time":{"1.0.0":"2018-02-19T07:06:30.465Z","created":"2018-02-19T07:07:45.150Z","1.0.1":"2018-02-19T07:07:45.227Z","modified":"2022-04-04T20:21:36.561Z","2.0.0":"2018-02-19T07:09:23.111Z","2.1.0":"2018-02-21T04:38:00.365Z","2.2.0":"2018-02-21T19:13:03.353Z","2.2.1":"2018-09-20T18:14:58.239Z"},"name":"@brainsights/promise-task","dist-tags":{"latest":"2.2.1"},"versions":{"1.0.1":{"name":"@brainsights/promise-task","version":"1.0.1","description":"Lazy promises with support for cancellation and progress events","main":"index.js","scripts":{"test":"node node_modules/mocha/bin/mocha test/"},"author":{"name":"ack@praxis.gdn"},"license":"MIT","devDependencies":{"mocha":"^5.0.1","should":"^13.2.1"},"dependencies":{"lodash":"^4.17.5"},"_id":"@brainsights/promise-task@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"modeswitch","email":"npm@ack.modeswitch.org"},"dist":{"integrity":"sha512-0hmNITmrQrCkjjuXEqE4vsUHqNlvxHM7PzLJHExNDYs7mxjbstwK6UbQt0dSJ+6q8HYgTu0yacdxjoZGa6lZIg==","shasum":"bf81c9fd080ba6fc0cba65d722e88df04fb18cfe","tarball":"https://registry.npmjs.org/@brainsights/promise-task/-/promise-task-1.0.1.tgz","fileCount":4,"unpackedSize":5836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5izF63R0K9sxicpFD9MXtouUKFnhpqBWTb+b42VPQ/QIhALGQ5J33j9e7h/lekhmZCXGWQCg+M8fERmGA7PpXnFXl"}]},"maintainers":[{"name":"modeswitch","email":"npm@ack.modeswitch.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-task_1.0.1_1519024065150_0.9032978040108168"},"_hasShrinkwrap":false},"2.0.0":{"name":"@brainsights/promise-task","version":"2.0.0","description":"Lazy promises with support for cancellation and progress events","main":"index.js","scripts":{"test":"node node_modules/mocha/bin/mocha test/"},"author":{"name":"ack@praxis.gdn"},"license":"MIT","devDependencies":{"mocha":"^5.0.1","should":"^13.2.1"},"dependencies":{"lodash":"^4.17.5"},"_id":"@brainsights/promise-task@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"modeswitch","email":"npm@ack.modeswitch.org"},"dist":{"integrity":"sha512-VQ+Qv1D9r4PySrl3NnbQDdNN01yImvRE98yi4eT9orUx1hwh3IiQkhCUMIxWPlteymMm8d1xb/PpNvvNNZM3dw==","shasum":"aa614ae1f2628912d2aaecc8db3c4eb2527390db","tarball":"https://registry.npmjs.org/@brainsights/promise-task/-/promise-task-2.0.0.tgz","fileCount":4,"unpackedSize":4956,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0bAfZrUUAjoD2kpNHdSrffcAX8bhWPR1MIqJo1GHO7AiAeWi+krXVd1o0+hS+KL6yEJwuoH7tlwWoa5SAgWA24rQ=="}]},"maintainers":[{"name":"modeswitch","email":"npm@ack.modeswitch.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-task_2.0.0_1519024162559_0.5352352172236836"},"_hasShrinkwrap":false},"2.1.0":{"name":"@brainsights/promise-task","version":"2.1.0","description":"Lazy promises with support for cancellation and progress events","main":"index.js","scripts":{"test":"node node_modules/mocha/bin/mocha test/"},"author":{"name":"ack@praxis.gdn"},"license":"MIT","devDependencies":{"mocha":"^5.0.1","should":"^13.2.1"},"dependencies":{"@brainsights/uuid":"1.1.0","lodash":"^4.17.5"},"gitHead":"15da1673f073ea716a4efeb554434c4e19ee3f8a","_id":"@brainsights/promise-task@2.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"modeswitch","email":"npm@ack.modeswitch.org"},"dist":{"integrity":"sha512-7Tw3Q2MwAVoV9QuyUFeJyGf2S/A3wvPS3o5urEVNWwdYev6w0KwzZRnJ94BsK4abLdwy4eYPlVQYCJqGGpdAcA==","shasum":"bf77db5dc3ea161186bb5395dfcdf55d02ccfb68","tarball":"https://registry.npmjs.org/@brainsights/promise-task/-/promise-task-2.1.0.tgz","fileCount":4,"unpackedSize":5255,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCy+/7S2MjGG1VpSSL32XTrRdiOZRn+6ksh1k70laRPAiEA9eipinUtKvaMvgPN9srf4gSi6CHmSVZl7QXmxnZZfK0="}]},"maintainers":[{"name":"modeswitch","email":"npm@ack.modeswitch.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-task_2.1.0_1519187880183_0.803004383500634"},"_hasShrinkwrap":false},"2.2.0":{"name":"@brainsights/promise-task","version":"2.2.0","description":"Lazy promises with support for cancellation and progress events","main":"index.js","scripts":{"test":"node node_modules/mocha/bin/mocha test/"},"author":{"name":"ack@praxis.gdn"},"license":"MIT","devDependencies":{"mocha":"^5.0.1","should":"^13.2.1"},"dependencies":{"@brainsights/uuid":"1.1.0","lodash":"^4.17.5"},"gitHead":"15da1673f073ea716a4efeb554434c4e19ee3f8a","_id":"@brainsights/promise-task@2.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"modeswitch","email":"npm@ack.modeswitch.org"},"dist":{"integrity":"sha512-pS69978sRfflHnumdhKYRPC8OoFGW7TNLNkrusk6IxMxC51iDzWBEebR00TBeF75bJJY8ckQeqYgYAJSd1N4Xg==","shasum":"441c7e04370c36f08c828478c9b202fdae0cdb98","tarball":"https://registry.npmjs.org/@brainsights/promise-task/-/promise-task-2.2.0.tgz","fileCount":4,"unpackedSize":5308,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDsCCMfvUmiL/uCNxBuotVuN6kIIwau8uRanB1v2ao+JAiB0FwKfOovCZk0SZ7NIo911Z4c/FUz97N1QilPQKtCqow=="}]},"maintainers":[{"name":"modeswitch","email":"npm@ack.modeswitch.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-task_2.2.0_1519240383306_0.9272197844028258"},"_hasShrinkwrap":false},"2.2.1":{"name":"@brainsights/promise-task","version":"2.2.1","description":"Lazy promises with support for cancellation and progress events","main":"index.js","scripts":{"test":"node node_modules/mocha/bin/mocha test/"},"author":{"name":"ack@praxis.gdn"},"license":"MIT","devDependencies":{"mocha":"^5.0.1","should":"^13.2.1"},"dependencies":{"@brainsights/uuid":"1.1.0","lodash":"4.17.5"},"gitHead":"1ba55a5a5f2f7aacb5cfe6fa84bbdf2320420fe9","_id":"@brainsights/promise-task@2.2.1","_npmVersion":"6.4.1","_nodeVersion":"8.11.3","_npmUser":{"name":"modeswitch","email":"npm@ack.modeswitch.org"},"dist":{"integrity":"sha512-TP3F4KLvAOKCI06ZaRcysD8NgFYUEtoRuPALb0fIjABvGrC1FIYoQpzIxPu8QoycMF6NpFlBNl41anJBAuuVnA==","shasum":"c8b213179d489c239d8123d2751267d4f3adfb08","tarball":"https://registry.npmjs.org/@brainsights/promise-task/-/promise-task-2.2.1.tgz","fileCount":4,"unpackedSize":5649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbo+OiCRA9TVsSAnZWagAA3eoP/1RbrteXWZOC07XyBJ+2\nWvfgAmaHK8EJXuBrdLkQSuiyF1TDfd/EfuOZ0/j9NaRUp2SaGaKhCA1yKdlm\nKzYnk6Z5sgKEqbJJms2/EyDS6bnIG6Lz38Il9L+KjY72UvWWDmbB+0Vnr8df\n0cZEFAUztkjg1xwxIOYHnP13XGLu2kFKujew/Jx2YBHZTR2YpM147wc8rmoo\nC2M0yBUbfOxBEMzwH/GXKakmqrJOzqMMHmsMvtonjxFPRN9vH/Gbno+iRzi6\n00iesQHNO67niHJbFM0srtK4nl1V4abD/39NVh0Ou5BhuvNCsJAUx6pKnZEi\nNyt4HzmKe11eUhfO+ZPjxPanFk9fpfX88MKdUnvItBoYMoRSNNx3seiRX4NJ\nhLgfOxrI/ykG8dbfPVK0vqbi0kOTUh26fV8zVzMVEQczVDG+ChiS5O07leTx\nLFCKOC2AT9Mpf32jehkl5Ctjy6O71iJdQ/Qtusf6B2xxOv8r6RX01voml+D4\nMLt+DKxOS9ahLGSuWrmDLneYuyeVMzDeyRKTL8hvgUz0jjis0cwkY5nDaI+S\ngmD0SAYK/bpCf1joWSdHuV82RetGUYcuu1buI0ViN3Mo/zOzlOjt/9HpqZ/w\nilNr+GSYT8bfPSOMkyZAD470CalKDKCvLXgnWOHalZz0+X6JXgeGF3DPLE9G\nvHia\r\n=XrDG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICnc50FdvfAjzlJ+irKmeiE7lKKhX0tvVJwwI3bYr6rWAiAhHMBxYHq1qEsvH+Z/JEzWOLiH+5WW0Pz+VaodHOOlsg=="}]},"maintainers":[{"name":"modeswitch","email":"npm@ack.modeswitch.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-task_2.2.1_1537467298139_0.7009144157330116"},"_hasShrinkwrap":false}},"maintainers":[{"name":"modeswitch","email":"npm@ack.modeswitch.org"}],"description":"Lazy promises with support for cancellation and progress events","author":{"name":"ack@praxis.gdn"},"license":"MIT","readme":"Lazy promises with progress and cancelation.\n\n## Installation\n\n```sh\nnpm install promise-task\n```\n\n## Usage\n\nUse a task anywhere you would use a promise, with a few minor changes.\n\n```javascript\nconst Task = require(\"promise-task\");\n\nlet task = new Task((context) => {\n\tlet progress = 0;\n\tlet timer;\n\ttimer = setInterval(() => {\n\t\tprogress += 1;\n\t\tif(progress >= 100) {\n\t\t\tclearTimeout(timer);\n\t\t\tcontext.progress(100);\n\t\t\tcontext.resolve(true);\n\t\t} else {\n\t\t\tcontext.progress(progress);\n\t\t}\n\t}, 100);\n\n\tcontext.onCancel = () => {\n\t\tclearTimeout(timer);\n\t};\n});\n\ntask.on(\"progress\", (progress) => console.log(progress));\nawait task.run();\n```\n\n### Task#constructor\n\nCreate a new task by `new Task(executor)`.\n\n* `executor (Function)` accepts a single argument, `context`.\n\n### Task#run()\n\nInvoke this to begin executing the task. Returns a `Promise` that is resolved or rejected when the task completes.\n\n### Task#progress()\n\nReturns the current progress as number.\n\n### Task#cancel()\n\nCancels execution and rejects the associated promise.\n\n### Task#isCanceled()\n\nReturns true if the task is canceled, false otherwise.\n\n### Task#clone()\n\nCreates a copy of a task instance.\n\n### Task#series(tasks)\n\nReturns a new `Task` that wraps one or more tasks that are executed one-at-a-time.\n\n`tasks (Array)`: A list of tasks to execute in series when `run()` is invoked.\n\n### Task.error\n\nTask property that contains the last `Error` if there is one, or null.\n\n### Context#resolve(result)\n\nInvoke this from the `executor` to resolve the associated promise.\n\n* `result (Any)`: The successful result of the completed task.\n\n### Context#reject(error)\n\nInvoke this from the `exectutor` to reject the associated promise.\n\n* `error (Error)`: An error explaining why the task failed.\n\n### Context#progress(value)\n\nInvoke this from the `executor` to update the task progress.\n\n* `value`: A number between 0 and 100 (inclusive).\n\n### Context.onCancel(callback)\n\nSet this property to the callback that should be invoked if the task is canceled. This property is only writable, and cannot be read.\n\n* `callback (Function)`: A callback function invoked when `Task.cancel()` is called.","readmeFilename":"README.md"}