{"_id":"turbo-combine-reducers","_rev":"3-4922a43ed29cc1267365790c433a8258","name":"turbo-combine-reducers","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"turbo-combine-reducers","version":"1.0.0","description":"Speed-optimized drop-in replacement for Redux's combineReducers","main":"index.js","scripts":{"build":"NODE_ENV=production rollup -c rollup.config.js","postbuild":"npm run minify","minify":"uglifyjs dist/turbo-combine-reducers.js -c -m > dist/turbo-combine-reducers.min.js","test:lint":"eslint .","test:unit":"jest","test":"npm run test:unit && npm run test:lint","benchmark":"node benchmark","prepublishOnly":"npm test && npm run build"},"keywords":["redux","reducer","reducers"],"author":{"name":"Andrew Duthie","email":"andrew@andrewduthie.com","url":"https://andrewduthie.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aduth/turbo-combine-reducers.git"},"bugs":{"url":"https://github.com/aduth/turbo-combine-reducers/issues"},"devDependencies":{"@aduth/eslint-config":"^2.0.0","benchmark":"^2.1.4","eslint":"^5.7.0","eslint-plugin-jsdoc":"^3.9.0","jest":"^23.6.0","redux":"^4.0.1","rollup":"^0.66.6","rollup-plugin-commonjs":"^9.2.0","uglify-js":"^3.4.9"},"gitHead":"dc055d62a52ab4295d0214ffc78a930e15af0b50","homepage":"https://github.com/aduth/turbo-combine-reducers#readme","_id":"turbo-combine-reducers@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"aduth","email":"andrew@andrewduthie.com"},"dist":{"integrity":"sha512-eARVs4EBfgaM4jzoiEptIXmMnI0j4LtV8VZjdDbo42E+0MNte3I1UV33+w7Kuesrjp+CuvCMO6rbHUvAOycOvQ==","shasum":"43ae97c51fa2cb9fadc5b0dabcbdc1d4743037fe","tarball":"https://registry.npmjs.org/turbo-combine-reducers/-/turbo-combine-reducers-1.0.0.tgz","fileCount":6,"unpackedSize":8350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJby81qCRA9TVsSAnZWagAAsYsP/39QCPr3eMdxSb/U/FM2\nf5whEX1G41/FT1i/2pycn1zUqnN9QffmPZsQVx7RMV80q4JmxwD1ZyzaEmSj\nDSL1b/ALs9AyACoxhDDxgtOK/TbsXJXk2kLmCL2bpBcBMYpf6uSa7Vinogeg\nW3FcHVfN2XNEseI1A5Eb9jW/LtLFIu8SDQMmv/m36AMbUEgo6evaXJh7WdW6\neWXPiqUJnqmkYnvZmytijPR7Oa+xatir3oWSkdwy/k/a5XjjMg/tVT3YQ54F\nea8e+1cVed84vDBiJGNpfplyQdxk5iCE52zAjXpEHhNjfP+90vQ9hBdgjDbq\nfDa+Xo8rfQwE+nNeBFm6b4KtthLEk5/bYsdJnNJPANsooaAWDtM+mkIThA3q\n2dFMoWvYIeCtfaE+T1TTSOC7P5V0JjKbxyt4hwPWhL/dBvU5tzl5HCgn1NbN\nWtRI25HtEqlcrH266296dzelCMW1sr0irHXd5xti7wFOMca8uIk3dnpalT+v\ni97z9aPeRubHyxx3kNZk7NUqfKEL1kQpizFflfCTAkeGOZFtS8jiogNRIC/C\npHTvlU1Q572YNXioyJ/fCJ6RQq1BVGDXtUIQEL/OczET7IyYv1mG8t6/Mokg\n2xaCWrdp6P8bczwdh91B+wgUuiqK3gdKCvpGakbPJqHMmRHr5+SCukb0p+1f\nEayz\r\n=/nI4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuOMkC24YeCmBCSQgcjkSIQFgW0TqaNS0IdtRGmtBxQQIgLYkhumydtehu49b/8TRb7a5sjy/FsOi6NDgzCUEoRYk="}]},"maintainers":[{"name":"aduth","email":"andrew@andrewduthie.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/turbo-combine-reducers_1.0.0_1540083049318_0.8591820611834706"},"_hasShrinkwrap":false},"1.0.1":{"name":"turbo-combine-reducers","version":"1.0.1","description":"Speed-optimized drop-in replacement for Redux's combineReducers","main":"index.js","scripts":{"build":"NODE_ENV=production rollup -c rollup.config.js","postbuild":"npm run minify","minify":"uglifyjs dist/turbo-combine-reducers.js -c -m > dist/turbo-combine-reducers.min.js","test:lint":"eslint .","test:unit":"jest","test":"npm run test:unit && npm run test:lint","benchmark":"node benchmark","prepublishOnly":"npm test && npm run build"},"keywords":["redux","reducer","reducers"],"author":{"name":"Andrew Duthie","email":"andrew@andrewduthie.com","url":"https://andrewduthie.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aduth/turbo-combine-reducers.git"},"bugs":{"url":"https://github.com/aduth/turbo-combine-reducers/issues"},"devDependencies":{"@aduth/eslint-config":"^2.0.0","benchmark":"^2.1.4","eslint":"^5.7.0","eslint-plugin-jsdoc":"^3.9.0","jest":"^23.6.0","redux":"^4.0.1","rollup":"^0.66.6","rollup-plugin-commonjs":"^9.2.0","uglify-js":"^3.4.9"},"gitHead":"52400d0980d6db910050d643b7e59218a05afe43","homepage":"https://github.com/aduth/turbo-combine-reducers#readme","_id":"turbo-combine-reducers@1.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"aduth","email":"andrew@andrewduthie.com"},"dist":{"integrity":"sha512-dc8++JMf8dQIogj4t8FbxaOxReQprKRweeNKCviV0rPoOOaDPX5TWnkiP7V8rjnLw1Piya874Oqhs7oXnejR4A==","shasum":"21749524b4461a7f613dcdba1261faa64aacd49c","tarball":"https://registry.npmjs.org/turbo-combine-reducers/-/turbo-combine-reducers-1.0.1.tgz","fileCount":7,"unpackedSize":9182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJby+b2CRA9TVsSAnZWagAAJNYP+gOX/Bb7/flobeH+cKrI\ntJr6Xg7FZIlRW7jiJHM5AhU/lkyUXg/G2/uKevPKI8a5qrg9b8UKavH5bSEw\nZ0UZoXofwxGskId1+2wTsDOiaBddUei1LI3+JUrOS28EKrTGE5sl2aefzs+d\nrDzxcpm05pNwcAw+lm7s6KrwD5JoYIXXAy5IrZFRc7tJqyxJlHA30mshlZ9L\ngzOWe/TBePszWeiuXOjkM8uu2MoyGOo74pBwbBRJhoPmL4cwxBWsyFH5f3hi\nsq6RDuZesQX+laAoo1as+tow6lwW5mpK0+aMB9D1GeiJYgya2u9jXZs6d4qP\nlNA5Lmd0v61t9H9DiK1ilCSQtBQgHflLgwlL+dzfE9XXKanKj+FBffkp/V7Y\nOdVVCpTkrRlJgyrP/W5diYm/85HfCBFH7E/VVUn6QB9HqKcC6Ltjeq0Ugb5L\n9PWZ2+E2Cad2+aO1PbR1dCw9RrOBQZPnMue3tVciyEQ0LagRNNZpc+skcf8/\nW1UTJ+VMM41dyriUA6a+t+F/fcqv0V7ODc/q0OafrGIgXN5xnvV8SVUtTu0N\nfAknIfJgbeWRnL8rO+CxJNXAt1IPxIRxy+HQLzbM2eCTwAc4P+kCgtFOFziF\nJoeELjDCkV+McCd9RP726s4SMUIgbW6rM1C+d+i+cfRc+OIh8ms0+gG2MpfO\nNByl\r\n=tWVq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAEAvTjFaKmxS7NerpeLBapG99X3EZpfjpjy7rDUtESYAiBR4aedrhu/HsashnvAqsRbsDP3zuRm+Sdm5tcMMq1OTA=="}]},"maintainers":[{"name":"aduth","email":"andrew@andrewduthie.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/turbo-combine-reducers_1.0.1_1540089589951_0.6320472420881798"},"_hasShrinkwrap":false},"1.0.2":{"name":"turbo-combine-reducers","version":"1.0.2","description":"Speed-optimized drop-in replacement for Redux's combineReducers","main":"index.js","scripts":{"build":"NODE_ENV=production rollup -c rollup.config.js","postbuild":"npm run minify","minify":"uglifyjs dist/turbo-combine-reducers.js -c -m > dist/turbo-combine-reducers.min.js","test:lint":"eslint .","test:unit":"jest","test":"npm run test:unit && npm run test:lint","benchmark":"node benchmark","prepublishOnly":"npm test && npm run build"},"keywords":["redux","reducer","reducers"],"author":{"name":"Andrew Duthie","email":"andrew@andrewduthie.com","url":"https://andrewduthie.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aduth/turbo-combine-reducers.git"},"bugs":{"url":"https://github.com/aduth/turbo-combine-reducers/issues"},"devDependencies":{"@aduth/eslint-config":"^2.0.0","benchmark":"^2.1.4","eslint":"^5.7.0","eslint-plugin-jsdoc":"^3.9.0","jest":"^23.6.0","redux":"^4.0.1","rollup":"^0.66.6","rollup-plugin-commonjs":"^9.2.0","uglify-js":"^3.4.9"},"gitHead":"5f8678b63e7d204ab08be87a5abdb73739e12cda","homepage":"https://github.com/aduth/turbo-combine-reducers#readme","_id":"turbo-combine-reducers@1.0.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"aduth","email":"andrew@andrewduthie.com"},"dist":{"integrity":"sha512-gHbdMZlA6Ym6Ur5pSH/UWrNQMIM9IqTH6SoL1DbHpqEdQ8i+cFunSmSlFykPt0eGQwZ4d/XTHOl74H0/kFBVWw==","shasum":"aa3650b3c63daa6804d35a4042014f6d31df1e47","tarball":"https://registry.npmjs.org/turbo-combine-reducers/-/turbo-combine-reducers-1.0.2.tgz","fileCount":7,"unpackedSize":9117,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzAGiCRA9TVsSAnZWagAAHyEP/RkCixE1S5AzwdvQ/JaT\nAVa22OmCU5FguGgoyRPDRXU2G2wasNpdxohT2uTH8LMTq/8XCUiE+t3X/m8J\nDtxe8dhbOEI+YuceguumWZhBhcwfKp2cr43HyVRex1qa6EG/tv3iwS7+jDpd\nfSMQ6c/D76hcqFsI3oUqXKg6D3P7J/lccg6oiEq6zR8KmTKDwy/55ZSZ5KDy\n2N/NZev8MR4Gj/pX/y9gL9mqY9Xl1YWEGW2YjvYqul+lLII8Wl63/CJgAx4a\nIp5D3V8BTsv9K7m7YVeQ6zOMcuzQd+UOsRLRt3B5JxuXgEe7H23r5XneHumY\nOwh7gZcwyMuwD//5cqvzHItlPiyIbW5u+FdWT/hKja9unqHA/yvSUjqbJamO\nE4OArL112HmACO/6l2NSlXOioHoAtE3sTlI9uqBFjKrrEqdNlisDMZIuNm9m\n8QjlYg4WJYodo0RwBAKrRiQsqSGNSc7+Oifcr1020XEFT64X9r9793trLdp8\n8IpeHqSEAF0IL0uXBASp5Zk844uS6t6pm/sxOXOJf4/JQYAZljXOtjPd3T/Z\nl2il/5aPH35LROPNAa8naOqdmGiiry8z7uRjETV1Ivn8yd768RjrafeoeXYq\nrLuIvyUu/Aew1QddE1traN7CvA/LI9yVxw8xeB3pPaQmNlg3D21SecBCGsUz\nOfro\r\n=D0Sl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE0lxB4sDV7FEOmcxuFrkR/MSWORoHQWHi7VCj4QnHSJAiEA8+DMyQhA7+jKlKIXv/2M6udPrmKgieJMML0WR8NXJzw="}]},"maintainers":[{"name":"aduth","email":"andrew@andrewduthie.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/turbo-combine-reducers_1.0.2_1540096418110_0.5137474770796877"},"_hasShrinkwrap":false}},"time":{"created":"2018-10-21T00:50:49.316Z","1.0.0":"2018-10-21T00:50:49.451Z","modified":"2022-05-22T10:04:48.677Z","1.0.1":"2018-10-21T02:39:50.114Z","1.0.2":"2018-10-21T04:33:38.257Z"},"maintainers":[{"name":"aduth","email":"andrew@andrewduthie.com"}],"description":"Speed-optimized drop-in replacement for Redux's combineReducers","homepage":"https://github.com/aduth/turbo-combine-reducers#readme","keywords":["redux","reducer","reducers"],"repository":{"type":"git","url":"git+https://github.com/aduth/turbo-combine-reducers.git"},"author":{"name":"Andrew Duthie","email":"andrew@andrewduthie.com","url":"https://andrewduthie.com"},"bugs":{"url":"https://github.com/aduth/turbo-combine-reducers/issues"},"license":"MIT","readme":"# Turbo Combine Reducers\n\n[![Build Status](https://travis-ci.org/aduth/turbo-combine-reducers.svg?branch=master)](https://travis-ci.org/aduth/turbo-combine-reducers)\n\nDrop-in replacement for [Redux's `combineReducers`](https://redux.js.org/api/combinereducers), optimized for speed and bundle size.\n\nApplying a technique of [partial evaluation](https://en.wikipedia.org/wiki/Partial_evaluation) by pre-compiling a reducer updater function, it achieves upwards of **82x improved performance** for an assumed typical real-world scenario (unchanging state for a medium-size object). See [Benchmarks](#benchmarks) for specific performance metrics.\n\nTurbo Combine Reducers has no dependencies, and weighs in at **260 bytes** minified and gzipped.\n\n## Installation\n\nUsing [npm](https://www.npmjs.com/) as a package manager:\n\n```\nnpm install turbo-combine-reducers\n```\n\nOtherwise, download a pre-built copy from unpkg:\n\n[https://unpkg.com/turbo-combine-reducers/dist/turbo-combine-reducers.min.js](https://unpkg.com/turbo-combine-reducers/dist/turbo-combine-reducers.min.js)\n\n## Usage\n\nAs an imported package, the default export is the `combineReducers` function. If using the browser-ready distributable from unpkg, the same function is available at the `window.turboCombineReducers` global.\n\n```js\nimport combineReducers from 'turbo-combine-reducers';\n// Or:\n// var combineReducers = window.turboCombineReducers;\n\nconst reducer = combineReducers( {\n\tcount( state = 0, action ) {\n\t\t// ...\n\t},\n} );\n```\n\nAs it is intended to serve as a drop-in replacement, refer to the documentation of [Redux's `combineReducers`](https://redux.js.org/api/combinereducers) for usage instructions.\n\n## Benchmarks\n\nThe following benchmarks are performed in Node 10.12.0 on a MacBook Pro (Late 2016), 2.9 GHz Intel Core i7.\n\n```\nturbo-combine-reducers - unchanging (4 properties) x 120,638,598 ops/sec ±0.37% (87 runs sampled)\nturbo-combine-reducers - unchanging (20 properties) x 23,740,676 ops/sec ±1.20% (90 runs sampled)\nturbo-combine-reducers - changing (4 properties) x 40,028,499 ops/sec ±0.82% (90 runs sampled)\nturbo-combine-reducers - changing (20 properties) x 23,338,161 ops/sec ±0.86% (88 runs sampled)\nredux - unchanging (4 properties) x 1,480,178 ops/sec ±0.42% (93 runs sampled)\nredux - unchanging (20 properties) x 594,068 ops/sec ±0.39% (90 runs sampled)\nredux - changing (4 properties) x 1,390,904 ops/sec ±0.28% (92 runs sampled)\nredux - changing (20 properties) x 589,844 ops/sec ±0.47% (92 runs sampled)\n```\n\n## License\n\nCopyright 2018 Andrew Duthie\n\nReleased under the [MIT License](./LICENSE.md).\n","readmeFilename":"README.md"}