{"_id":"graph-simple-sequencer","_rev":"5-e803f528c975f9618d350f44b3df0870","name":"graph-simple-sequencer","description":"Sort items in a graph using a topological sort into chunks","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"graph-simple-sequencer","version":"1.0.0","description":"Sort items in a graph using a topological sort into chunks","main":"index.js","author":{"name":"James Kyle","email":"me@thejameskyle.com"},"repository":{"type":"git","url":"git+https://github.com/thejameskyle/graph-simple-sequencer.git"},"license":"MIT","keywords":["graph","adjacency","list","tasks","priority","priorities","sort","dependencies","topological","topo","sequencer"],"files":["index.js"],"scripts":{"test":"ava test.js"},"devDependencies":{"ava":"^0.24.0","flow-bin":"^0.61.0"},"gitHead":"d29ef70f762ffba2464118e0f9703d79a4ba1438","bugs":{"url":"https://github.com/thejameskyle/graph-simple-sequencer/issues"},"homepage":"https://github.com/thejameskyle/graph-simple-sequencer#readme","_id":"graph-simple-sequencer@1.0.0","_shasum":"fb66493eca35fdb9dedecaffc4b89141cc89b56b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"thejameskyle","email":"me@thejameskyle.com"},"dist":{"shasum":"fb66493eca35fdb9dedecaffc4b89141cc89b56b","tarball":"https://registry.npmjs.org/graph-simple-sequencer/-/graph-simple-sequencer-1.0.0.tgz","integrity":"sha512-2lKDw97XnRKCZGc2EDFvcpA01Aa5MvvcXqW+FqSRK0byLpw9so5owC/YTOrHjnKHAa1IYvtlpt0Zd+MargiYDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGQxh0UWjNl3HuAABN9uiIEupm/nTrClCwLC+Dqwb/9rAiEAnJrEX17CrrYF7Te/vKKM2xdyRQMYZ4FyoAhG0RzrQzQ="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graph-simple-sequencer-1.0.0.tgz_1513918101780_0.4825414849910885"}},"1.0.1":{"name":"graph-simple-sequencer","version":"1.0.1","description":"Sort items in a graph using a topological sort into chunks","main":"index.js","author":{"name":"James Kyle","email":"me@thejameskyle.com"},"repository":{"type":"git","url":"git+https://github.com/thejameskyle/graph-simple-sequencer.git"},"license":"MIT","keywords":["graph","adjacency","list","tasks","priority","priorities","sort","dependencies","topological","topo","sequencer"],"files":["index.js"],"scripts":{"test":"ava test.js"},"devDependencies":{"ava":"^0.24.0","flow-bin":"^0.61.0"},"gitHead":"02c29b376b7dff71f4fabff55c956311971b0836","bugs":{"url":"https://github.com/thejameskyle/graph-simple-sequencer/issues"},"homepage":"https://github.com/thejameskyle/graph-simple-sequencer#readme","_id":"graph-simple-sequencer@1.0.1","_shasum":"7aaf80e2e7e33cb5f65fb3c6cd1457546c9d6133","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"thejameskyle","email":"me@thejameskyle.com"},"dist":{"shasum":"7aaf80e2e7e33cb5f65fb3c6cd1457546c9d6133","tarball":"https://registry.npmjs.org/graph-simple-sequencer/-/graph-simple-sequencer-1.0.1.tgz","integrity":"sha512-vVmPEB4wr19Q/0fQBa+0oiPzQLdOUz0z/FWpAyOQWdtdprdh0HQafdHxSBfYzu24AjO1tKOn9MCFm2kWiomc2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFPPqPacImOzjX4ntsH4hq1YOSnrWiW46qooA7YoeLNlAiEAhUNKrg30xE6HZ1dcOXUE42dywVhO+1usMAug7XkCqII="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graph-simple-sequencer-1.0.1.tgz_1513918615946_0.37354189227335155"}},"1.0.2":{"name":"graph-simple-sequencer","version":"1.0.2","description":"Sort items in a graph using a topological sort into chunks","main":"index.js","author":{"name":"James Kyle","email":"me@thejameskyle.com"},"repository":{"type":"git","url":"git+https://github.com/thejameskyle/graph-simple-sequencer.git"},"license":"MIT","keywords":["graph","adjacency","list","tasks","priority","priorities","sort","dependencies","topological","topo","sequencer"],"files":["index.js"],"scripts":{"test":"ava test.js"},"devDependencies":{"ava":"^0.24.0","flow-bin":"^0.61.0"},"gitHead":"855957caf3755bd5bc9e29db8b39d027d48d9b9d","bugs":{"url":"https://github.com/thejameskyle/graph-simple-sequencer/issues"},"homepage":"https://github.com/thejameskyle/graph-simple-sequencer#readme","_id":"graph-simple-sequencer@1.0.2","_shasum":"ebbb4093a1cce7872af05bce7f2df262a4226853","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"thejameskyle","email":"me@thejameskyle.com"},"dist":{"shasum":"ebbb4093a1cce7872af05bce7f2df262a4226853","tarball":"https://registry.npmjs.org/graph-simple-sequencer/-/graph-simple-sequencer-1.0.2.tgz","integrity":"sha512-nD4pX2j089OojZ7IFSHk4xZSGhsHDva4rd3b/OWyBrB3BabdgZRdx96mYWReXIcM4GnXkgw8DdTKRwHoexA4YA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgr765au4Q+OYNE6PqPvXMbLKoTkPDv/A61CflrQfaKAiBks6QtU9lLCiJAyX4CatOj1u0cuk01XIsEw6cnN6+mLw=="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graph-simple-sequencer-1.0.2.tgz_1513918913340_0.9762259828858078"}},"1.0.3":{"name":"graph-simple-sequencer","version":"1.0.3","description":"Sort items in a graph using a topological sort into chunks","main":"index.js","author":{"name":"James Kyle","email":"me@thejameskyle.com"},"repository":{"type":"git","url":"git+https://github.com/thejameskyle/graph-simple-sequencer.git"},"license":"MIT","keywords":["graph","adjacency","list","tasks","priority","priorities","sort","dependencies","topological","topo","sequencer"],"files":["index.js"],"scripts":{"test":"ava test.js"},"devDependencies":{"ava":"^0.24.0","flow-bin":"^0.61.0"},"dependencies":{"array-includes":"^3.0.3"},"gitHead":"76cb4ff21cd8d74fa42d02240ea4517b8eb86725","bugs":{"url":"https://github.com/thejameskyle/graph-simple-sequencer/issues"},"homepage":"https://github.com/thejameskyle/graph-simple-sequencer#readme","_id":"graph-simple-sequencer@1.0.3","_shasum":"80e040ba3ca3b44cffb1b3db8afa6484166982fc","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.8.4","_npmUser":{"name":"thejameskyle","email":"me@thejameskyle.com"},"dist":{"shasum":"80e040ba3ca3b44cffb1b3db8afa6484166982fc","tarball":"https://registry.npmjs.org/graph-simple-sequencer/-/graph-simple-sequencer-1.0.3.tgz","integrity":"sha512-Yg43YTKFNbr9H8LUMoQeR50WiSufspJNd0y81sKgxR9VxGthRYpWxKRcKLRwuHIV0Cjn7moGqKSJyV1Z8beNMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4HR3FX5KsjZP6De+wlg4k+Q51vAIlMoOSN/nwMDLKgQIhAI7SLtHeECKDNHEEPY1ryk2MUJNVcsxzjLmer5OOv5dv"}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graph-simple-sequencer-1.0.3.tgz_1513919416101_0.41625158465467393"}}},"readme":"# graph-simple-sequencer\n\n> Sort items in a graph using a topological sort into chunks\n\n## Install\n\n```sh\nyarn add graph-simple-sequencer\n```\n\n## Usage\n\n```js\nimport graphSimpleSequencer from 'graph-simple-sequencer';\n\nlet graph = new Map([\n  [\"task-a\", [\"task-d\"]], // task-a depends on task-d\n  [\"task-b\", [\"task-d\", \"task-a\"]],\n  [\"task-c\", [\"task-d\"]],\n  [\"task-d\", [\"task-a\"]],\n]);\n\nlet { safe, chunks } = graphSimpleSequencer(graph);\n// { safe: false,\n//   chunks: [['task-d'], ['task-a', 'task-b', 'task-c']] }\n\nfor (let chunk of chunks) {\n  // Running tasks in parallel\n  await Promise.all(chunk.map(task => exec(task)));\n}\n```\n\n## Cycles\n\nGraph cycles are resolved by creating a new chunk with the item that has:\n\n1. The fewest number of remaining dependencies (to reduce risk of missing dependencies)\n2. The highest number of remaining dependents (to increase chance of unblocking dependents)\n","maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"}],"time":{"modified":"2022-06-18T13:51:13.341Z","created":"2017-12-22T04:48:21.915Z","1.0.0":"2017-12-22T04:48:21.915Z","1.0.1":"2017-12-22T04:56:56.132Z","1.0.2":"2017-12-22T05:01:53.417Z","1.0.3":"2017-12-22T05:10:16.182Z"},"homepage":"https://github.com/thejameskyle/graph-simple-sequencer#readme","keywords":["graph","adjacency","list","tasks","priority","priorities","sort","dependencies","topological","topo","sequencer"],"repository":{"type":"git","url":"git+https://github.com/thejameskyle/graph-simple-sequencer.git"},"author":{"name":"James Kyle","email":"me@thejameskyle.com"},"bugs":{"url":"https://github.com/thejameskyle/graph-simple-sequencer/issues"},"license":"MIT","readmeFilename":"README.md"}