{"_id":"@doggos/doggos-worker","_rev":"2-181ce6c4404b0400896afe357cdbc070","name":"@doggos/doggos-worker","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.3":{"name":"@doggos/doggos-worker","version":"0.1.3","description":"This is prototype of saga implementation, written in Node.","engines":{"node":">= 10.13 <11"},"main":"./build/index.js","scripts":{"clean":"rimraf coverage build tmp","build":"npm run clean & tsc -p tsconfig.release.json","build:watch":"npm run clean & tsc -w -p tsconfig.release.json","lint":"tslint -t stylish --project \"tsconfig.json\"","test":"jest --coverage","test:watch":"jest --watch","prepublish":"npm run build"},"author":{"name":"NV4RE"},"license":"Apache-2.0","dependencies":{"@types/ramda":"^0.26.16","node-rdkafka":"2.6.1","ramda":"^0.26.1","tslib":"~1.10.0"},"devDependencies":{"@types/jest":"^24.0.15","@types/node":"^10.14.19","jest":"~24.8.0","prettier":"1.18.2","rimraf":"^2.6.3","ts-jest":"^24.0.0","ts-node":"^8.3.0","tslint":"~5.18.0","tslint-config-prettier":"1.18.0","tslint-microsoft-contrib":"~6.2.0","tsutils":"~3.14.0","typescript":"~3.5.0"},"gitHead":"16ba141a56dec6f29d7e2e9255565889ed5459ca","_id":"@doggos/doggos-worker@0.1.3","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tosbodes","email":"tosbodesz@gmail.com"},"dist":{"integrity":"sha512-65rTApCMRXfjURyMyz0WJshnyEGiqK8o6YHCJPyYC2deoVzlS/Aw1oCoLMJNoo7YPNOC7Y99IkOaZE4Py1Pzpw==","shasum":"9ab45419b56758df89218b883a55adbbef43e02d","tarball":"https://registry.npmjs.org/@doggos/doggos-worker/-/doggos-worker-0.1.3.tgz","fileCount":49,"unpackedSize":100263,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdlJtTCRA9TVsSAnZWagAAtRYQAJMLSO2zCULv3KtdBKYD\nSOMQea/+IXK6KqEXyz04zmLGsDm2NcIsTIzOOVFDfbBThALpjx4RNwaGlT/A\ncy8TJIB1EQnz3wkWi7VTPm6kVT5EzcmoAAUvuAzjTP5Fw08inUokt0vsDuQ7\n2OycAsii2Oj/GieQ7jQou31R9aS6D+pqsUrVUyZD1qT8bI/VGrL9jkrmI1uj\nCLgs72j/gVrGvYmbl3IWwG8JG8wcCJBLLaye647wSbR9AvcNdfZ0zana7mOp\nucjdqpiN/R7hnE/7BV4WESZSjFPZOetsNOo1iqD+hi2SIJS20e3K2CYDgD0c\nRzRlcJFTyKT0XccoFK/te3HrNHs52ySAD2/diX1YUZ0XaWf7LjsORRRF2ZEw\nPvV+sF+5rX0/rBGwHlbABY2spdzBAB2zId7Zh3Ll8xy/1vDGfw+EeSfiiGBb\neXnWp2gC76ZCvT5YfxSsTf9p3mJV5J+klHAlGCrjDbO68vQ/8edFw/YVueDD\nMQ3sb+yFJO3akUSgRJYOao/zEZSGBfa5MMLho59wOOQ0VVTDbktai/9viuyX\noS9ADlW3z10C2Se4mMmXVFhaxyR7eVbweilzaR103CWRuPhqIrLD7ScwFghf\nodDVBguF/aNoCznhhQNXbFht5AHLL12DpDgGR1hPcv6IKkB3O5Czdk6iE91X\n8FEF\r\n=iVBA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrd0mhELs2lA3CoYgFMsGm6OqUDSIpjdUt5XSSoMphVAIgJtwTobVpE3u1W8Gdvkv7t06D640FD+q2Z+uP4u3LALk="}]},"maintainers":[{"name":"tosbodes","email":"tosbodesz@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/doggos-worker_0.1.3_1570020178439_0.20988356964390587"},"_hasShrinkwrap":false}},"time":{"created":"2019-10-02T12:42:58.229Z","0.1.3":"2019-10-02T12:42:58.651Z","modified":"2022-04-05T05:06:34.910Z"},"maintainers":[{"email":"tosbodesz@gmail.com","name":"nv4re"},{"email":"tosbodesz@gmail.com","name":"tosbodes"}],"description":"This is prototype of saga implementation, written in Node.","author":{"name":"NV4RE"},"license":"Apache-2.0","readme":"# node-saga-client\n\nThis is prototype of saga implementation, written in Node.\n\n## Worker\n\n- [ ] Manage rebalance callback to hold working task\n- [ ] List working task method (for graceful shutdown)\n\n## Example\n\n```javascript\nconst { Worker } = require('node-saga-client');\n\nconst sagaConfig = {\n  kafkaServers: 'kafka.namespace.svc.blablabla.k8s.local',\n};\n\nconst blablabla = time => new Promise(resolve => setTimeout(resolve, time));\n\nnew Worker(\n  // Task name\n  'TASK_1',\n  // Task callback\n  async (task, logger) => {\n    console.log(`Processing ${task.taskName}: ${task.taskId}`);\n\n    // You can log to task whenever you want (until task is finish)\n    logger(\"I'm doing step 1\");\n    // Do some job\n    await blablabla(100);\n\n    // this can help you debug what step is gone wrong\n    logger(\"I'm doing step 2\");\n    await blablabla(100);\n\n    logger(\"I'm doing step 3\");\n    await blablabla(100);\n\n    logger(\"I'm doing step 4\");\n    //throw new Error(\"I'm done for this 💩, CYA\")\n\n    // To finish task you have to return result in this format\n    // interface ITaskResponse {\n    // status: 'INPROGRESS' | 'COMPLETED' | 'FAILED';\n    // output?: any;\n    // logs?: string | string[];\n    // }\n    return {\n      status: 'COMPLETED',\n      output: {\n        eiei: 'lol',\n      },\n    };\n  },\n\n  task => {\n    // Task compensation callback\n    console.log(`Compensating ${task.taskName}: ${task.taskId}`);\n    return {\n      status: 'COMPLETED',\n    };\n  },\n  sagaConfig,\n);\n\nnew Worker(\n  'TASK_2',\n  task => {\n    console.log(`Processing ${task.taskName}: ${task.taskId}`);\n    return {\n      status: 'COMPLETED',\n      output: {\n        time: Date.now(),\n        eiei: 'lol',\n      },\n    };\n  },\n  task => {\n    console.log(`Compensating ${task.taskName}: ${task.taskId}`);\n    return {\n      status: 'COMPLETED',\n    };\n  },\n  sagaConfig,\n);\n\nnew Worker(\n  'TASK_3',\n  task => {\n    console.log(`Processing ${task.taskName}: ${task.taskId}`);\n    return {\n      status: 'COMPLETED',\n      output: {\n        time: Date.now(),\n        eiei: 'lol',\n      },\n    };\n  },\n  task => {\n    console.log(`Compensating ${task.taskName}: ${task.taskId}`);\n    return {\n      status: 'COMPLETED',\n    };\n  },\n  sagaConfig,\n);\n\nnew Worker(\n  'TASK_4',\n  task => {\n    console.log(`Processing ${task.taskName}: ${task.taskId}`);\n    return {\n      status: 'COMPLETED',\n      output: {\n        time: Date.now(),\n        eiei: 'lol',\n      },\n    };\n  },\n  task => {\n    console.log(`Compensating ${task.taskName}: ${task.taskId}`);\n    return {\n      status: 'COMPLETED',\n    };\n  },\n  sagaConfig,\n);\n```\n","readmeFilename":"README.md"}