{"_id":"fairmont-multimethods","_rev":"16-2554d5235ec0f76d23e3de2d1b734087","name":"fairmont-multimethods","description":"Multi-argument dispatch for JavaScript functions","dist-tags":{"latest":"2.0.2"},"versions":{"1.0.0-beta-18":{"name":"fairmont-multimethods","version":"1.0.0-beta-18","description":"Functional reactive programming in JavaScript","files":["src/","lib/","README.md"],"main":"lib/index.js","scripts":{"prepublish":"coffee --nodejs --harmony -o lib/ -c src/*.*coffee","test":"coffee --nodejs --harmony test/index.coffee","watch":"coffee --nodejs --harmony -o lib/ -cw src/*.*coffee","version":"(node_modules/.bin/json -f package.json version > VERSION)","tag":"(cat VERSION | xargs -I version git tag -am version version) && git push --tags"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"ISC","devDependencies":{"amen":"^1.0.0-alpha-03","json":"^9.0.3"},"dependencies":{},"engine":"node >= 0.12.x","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@1.0.0-beta-18","_shasum":"0a64e7fce3eb33515d9c5979242df83066c20cd8","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"}],"dist":{"shasum":"0a64e7fce3eb33515d9c5979242df83066c20cd8","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-1.0.0-beta-18.tgz","integrity":"sha512-0OPO8j8Gqeub5I/ELfpQj1zTuMgEzIdlv+1YOCdO6MVRoTh8aX3eFl5Gonyq81nyIpE69owP/sNXtzWL0EoxaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDX/kRfknLuiNz+TeJM00VoEdbu8SuZZhDNE88R9MBTZAIhANTnvF32GMhnXyK7J0iF4A9JMTcSGAUuJp9IJnpgwgGd"}]},"directories":{}},"1.0.0-beta-19":{"name":"fairmont-multimethods","version":"1.0.0-beta-19","description":"Functional reactive programming in JavaScript","files":["src/","lib/","README.md"],"main":"lib/index.js","scripts":{"prepublish":"coffee --nodejs --harmony -o lib/ -c src/*.*coffee","test":"coffee --nodejs --harmony test/index.coffee","watch":"coffee --nodejs --harmony -o lib/ -cw src/*.*coffee","version":"(node_modules/.bin/json -f package.json version > VERSION)","tag":"(cat VERSION | xargs -I version git tag -am version version) && git push --tags"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"ISC","devDependencies":{"amen":"^1.0.0-alpha-03","json":"^9.0.3"},"dependencies":{},"engine":"node >= 0.12.x","gitHead":"f6486012c2044a7334649cb914cc06c9cfca3a69","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@1.0.0-beta-19","_shasum":"d6d47c287ca401da5cdf398fabbc01dc795dadf4","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"}],"dist":{"shasum":"d6d47c287ca401da5cdf398fabbc01dc795dadf4","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-1.0.0-beta-19.tgz","integrity":"sha512-znkqsWcdrHylgigzcMbxWbVgdwFzkqb4SsfByxftBjWR7ocWye2hi1utgEYvzCjDqWQXgxuZdr4mWcvRXpRcJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEoimfT4ST+TJ2mov7iR07yNq7FJlLNpxW73LGiOT7CQIhAJ886JSJE6vzrbyreD346qXQgEAJHLJ/2T0Zl/KVaQK1"}]},"directories":{}},"1.0.0-beta-20":{"name":"fairmont-multimethods","version":"1.0.0-beta-20","description":"True functional reactive programming for JavaScript.","files":["src/","lib/","README.md"],"main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.*coffee","test":"coffee test/index.coffee","watch":"coffee -o lib/ -cw src/*.*coffee","version":"(node_modules/.bin/json -f package.json version > VERSION)","tag":"(cat VERSION | xargs -I version git tag -am version version) && git push --tags"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"ISC","devDependencies":{"amen":"^1.0.0-alpha-03","coffee-script":"~1.10.0","fairmont-helpers":"^1.0.0-beta-24","json":"^9.0.3"},"dependencies":{},"engine":"node >= 4.0.x","gitHead":"837ca7b041d492d2b1cfc16fb26434bfe3fea3a9","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@1.0.0-beta-20","_shasum":"3efa8181dd4b23fb32da6e078ab0e3fb602f5c3f","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"}],"dist":{"shasum":"3efa8181dd4b23fb32da6e078ab0e3fb602f5c3f","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-1.0.0-beta-20.tgz","integrity":"sha512-KOMmn6EYyujRKkzw3WWbTzk0K3c31jLDe7RF4Lxv4nwiQwrpM34Lrj3BMnSrf5NwkLKF2Zy5w6W2/MmZaUlyZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDU/6RSh9Ivj3U1HQJl6WQU4IF1g3N4c+1PgLEjAz4+hQIgNE2ojRRt36GJrRrf0xl9TBtvJIXKB2mbAr1W/NDQDV8="}]},"directories":{}},"1.0.0-beta-21":{"name":"fairmont-multimethods","version":"1.0.0-beta-21","description":"True functional reactive programming for JavaScript.","files":["src/","lib/","README.md"],"main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.*coffee","test":"coffee test/index.coffee","watch":"coffee -o lib/ -cw src/*.*coffee","version":"(node_modules/.bin/json -f package.json version > VERSION)","tag":"(cat VERSION | xargs -I version git tag -am version version) && git push --tags"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"ISC","devDependencies":{"amen":"^1.0.0-alpha-03","coffee-script":"~1.10.0","fairmont-helpers":"^1.0.0-beta-26","json":"^9.0.3"},"dependencies":{},"engine":"node >= 4.0.x","gitHead":"cb1de7180ef6db03846be79c4b62503fde3834f9","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@1.0.0-beta-21","_shasum":"59727e496c21d0e0114f05f216233c3a4085ac0a","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"}],"dist":{"shasum":"59727e496c21d0e0114f05f216233c3a4085ac0a","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-1.0.0-beta-21.tgz","integrity":"sha512-htXT8QXTnavIHYe64b9kRuVIk5X3oSfb1Z/zuFaueLwAdzh1m/DLAj5ENPel1OsuKruZ8c2EzPYlEA6ewmUTjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY3CuBKyWRz7/C/xWdNS0j11OcczgmSl08rBVc1V7DoQIhANsWpIojYMGaY2g1SSkWisilj/n+wZmIUfNmn29ncHhE"}]},"directories":{}},"1.0.0":{"name":"fairmont-multimethods","version":"1.0.0","description":"True functional reactive programming for JavaScript.","files":["src/","lib/","README.md"],"main":"lib/index.js","scripts":{"test":"coffee test/index.coffee","watch":"coffee -o lib/ -cw src/*.*coffee","prepublish":"coffee -o lib/ -c src/*.*coffee","postpublish":"(node_modules/.bin/json -f package.json version | xargs -I version git tag -am version version) && git push --tags"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"ISC","devDependencies":{"amen":"^1.0.0-alpha-03","coffee-script":"~1.10.0","fairmont-helpers":"1.0.0","json":"^9.0.3"},"dependencies":{},"engine":"node >= 4.0.x","gitHead":"4e24f08d8f9ed3b8dc085ff78586c5d19fc88267","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@1.0.0","_shasum":"93c3e337d1e59853615f95a6a96a69a5dff3cc7e","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"}],"dist":{"shasum":"93c3e337d1e59853615f95a6a96a69a5dff3cc7e","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-1.0.0.tgz","integrity":"sha512-sWKQE9YMrkKwgH21iah8YXG+azRTedDqLZNXJgCweRkoVeKv5Ow0PTyPbS1wY4WOC2CspuEkjJpitOGXAY63vw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYXtUqsmrUFTNgZ9OuFtUevAwz18exE4RG8ej8AlP4uQIhAL2kaHArtqEqzkEkPD7IO910NczaMSbnxjRDvcaCYoms"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/fairmont-multimethods-1.0.0.tgz_1460687097578_0.8643194560427219"},"directories":{}},"1.0.1":{"name":"fairmont-multimethods","version":"1.0.1","description":"True functional reactive programming for JavaScript.","files":["src/","lib/","README.md"],"main":"lib/index.js","scripts":{"test":"coffee test/index.coffee","watch":"coffee -o lib/ -cw src/*.*coffee","prepublish":"coffee -o lib/ -c src/*.*coffee","postpublish":"(node_modules/.bin/json -f package.json version | xargs -I version git tag -am version version) && git push --tags"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"ISC","devDependencies":{"amen":"^1.0.0-alpha-03","coffee-script":"~1.10.0","fairmont-helpers":"1.0.x","json":"^9.0.3"},"dependencies":{},"engine":"node >= 4.0.x","gitHead":"1556d3f41e759c68874027779e36ee3719b118e3","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@1.0.1","_shasum":"5d4688cbeb6bac26206238b64c11a0c8a4202983","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"}],"dist":{"shasum":"5d4688cbeb6bac26206238b64c11a0c8a4202983","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-1.0.1.tgz","integrity":"sha512-6xlEszwlVS6it9YoN8jz037igRtkmsllhRBDktwSxBKEm8Hb7ospzhiEMGaSAKwBs+4og+EI9dkTo/di7Oql2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCy2op28Qb1OqdKzK2CnvDa1cF/3VPWIZli/hfaWVUUlwIhAOj4w1MmnnGU7W+PcLb8oCTza6rZTiVlV4u7mAyB96JA"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/fairmont-multimethods-1.0.1.tgz_1460688873856_0.5441136651206762"},"directories":{}},"2.0.0":{"name":"fairmont-multimethods","version":"2.0.0","description":"Multi-argument dispatch for JavaScript functions","files":["build/npm/lib"],"main":"build/npm/lib/index.js","scripts":{"test":"gulp test"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"MIT","devDependencies":{"amen":"^2.0.2","coffeescript":"^2.0.3","fairmont-build-tools":"^1.0.0","fairmont-helpers":"^3.0.0","gulp":"github:gulpjs/gulp#4.0","power-assert":"^1.4.4"},"dependencies":{},"engine":"node >= 6.10","gitHead":"1556d3f41e759c68874027779e36ee3719b118e3","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.2.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"dist":{"integrity":"sha512-GVc0nl889/Kw5ZIWbAED8+yaJTi6c5/SMVEiQmR+y/z5ahP0frokcdzkM5Q/CRapnIKv8GVZWIi55ZeieOS8VA==","shasum":"b18763f32e7e83655f9c4d7cbf56330e3fe763f2","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-2.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwKSmzCW5mp5mMSD5wztF775NYH6AqOr2MJdRW0uv7ugIgAQkH3iADdc03kUAHsGcURppo5IzRCoPxKSoCggRnjzM="}]},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"f1337","email":"disinnovate+npm@gmail.com"},{"name":"pandanick","email":"nick@pandastrike.com"},{"name":"pandastrike","email":"info@pandastrike.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fairmont-multimethods-2.0.0.tgz_1512868300275_0.08045357931405306"},"directories":{}},"2.0.1":{"name":"fairmont-multimethods","version":"2.0.1","description":"Multi-argument dispatch for JavaScript functions","files":["build/npm/lib"],"main":"build/npm/lib/index.js","scripts":{"test":"gulp test"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"MIT","devDependencies":{"amen":"^2.0.2","coffeescript":"^2.0.3","fairmont-build-tools":"^1.0.0","fairmont-helpers":"^3.0.0","gulp":"github:gulpjs/gulp#4.0","power-assert":"^1.4.4"},"dependencies":{},"engine":"node >= 6.10","gitHead":"0924937a37113a8bbd1d612cbb64fa802adca444","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@2.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.2.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"dist":{"integrity":"sha512-ZpomnQghtjbNkDCS2xzBolFmy8ZtZNtr3IrrrvbrhyIOzcl/00dtdv1BkFRO9tFZY8jklK+gBWAzuOgc0rgkpw==","shasum":"21d75bfc0fc963932f5de854bc45145b9d959db6","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-2.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2BN5IEUnwXI8e15TdRNFBmHLOS/iB5EGmWVockiMQ1AIhAKxV3MWaSsQg+KtDAU4RiL11qA5FKzyYc9ENz1QqUSxf"}]},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"f1337","email":"disinnovate+npm@gmail.com"},{"name":"pandanick","email":"nick@pandastrike.com"},{"name":"pandastrike","email":"info@pandastrike.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fairmont-multimethods-2.0.1.tgz_1512868512646_0.8411919213831425"},"directories":{}},"2.0.2":{"name":"fairmont-multimethods","version":"2.0.2","description":"Multi-argument dispatch for JavaScript functions","files":["build/npm/lib"],"main":"build/npm/lib/index.js","scripts":{"test":"gulp test"},"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"keywords":[],"authors":["Dan Yoder"],"license":"MIT","devDependencies":{"amen":"^2.0.2","coffeescript":"^2.0.3","fairmont-build-tools":"^1.0.0","fairmont-helpers":"^3.0.0","gulp":"github:gulpjs/gulp#4.0","power-assert":"^1.4.4"},"dependencies":{},"engine":"node >= 6.10","gitHead":"8c89f26725e2e4c9da7eb50d1ea654c5e5a9b923","bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"homepage":"https://github.com/dyoder/fairmont#readme","_id":"fairmont-multimethods@2.0.2","_npmVersion":"5.6.0","_nodeVersion":"9.2.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"dist":{"integrity":"sha512-JwJb9UWGsfVj/ATx0iGMoHzSK5gMk6gKDZJpi2G2SgaLJgFW7EhVXFnDLoF46zqckIYoJesqczV3tQbMn3Ar+A==","shasum":"f1dc1bd69c81ab699fdf4cf2d09f1174726fe1a1","tarball":"https://registry.npmjs.org/fairmont-multimethods/-/fairmont-multimethods-2.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9Oky2ElkJzHjuurtQb9B99R85K+snLtfeoburkLfebQIhAPEy3YdURou14cc22aXL9iaRelAM0+eEhl3GGvFe/388"}]},"maintainers":[{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"f1337","email":"disinnovate+npm@gmail.com"},{"name":"pandanick","email":"nick@pandastrike.com"},{"name":"pandastrike","email":"info@pandastrike.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fairmont-multimethods-2.0.2.tgz_1512868660166_0.13016200787387788"},"directories":{}}},"readme":"# Fairmont-Multimethods\n\nFairmont-Multimethods is a JavaScript library providing support for multimethods in JavaScript.\n\n## Installation\n\n`npm i -S fairmont-multimethods`\n\n## Usage\n\n```coffee\n\nequal = Method.create\n  description: \"'Deep' equality operator\"\n  default: (a, b) -> a == b # fallback to shallow equality\n\n# when comparing objects, recursively check the values\n# corresponding to the union of their properties—\n# return false on the first inequality\nMethod.define equal, isObject, isObject, (a, b) ->\n  (a == b) || do ->\n    keys = new Set (Object.keys a)..., (Object.keys b)...\n    for key from keys\n      if ! equal a[key], b[key]\n        return false\n    true\n\n# when comparing arrays, recursively check values\n# after making sure they're the same length\n# return false on the first inequality\nMethod.define equal, isArray, isArray, (ax, bx) ->\n  (ax == bx) || do ->\n    return false if ax.length != bx.length\n    for i in [0..ax.length]\n      if !equal ax[i], bx[i]\n        return false\n    true\n\nequal \"this\", \"this\"  # => true, shallow equality works here\nequal { x: 1, y: 2 }, { x: 1, y: 2 } # => true, deep equality\nequal [1..5], [1..5] # true, deep equality\nequal { x: 1, y: 2}, [1..5] # false\n```\n\n[API documentation](https://github.com/pandastrike/fairmont/wiki/API-Reference#method).\n","maintainers":[{"email":"danielyoder@gmail.com","name":"dyoder"},{"email":"disinnovate+npm@gmail.com","name":"f1337"},{"email":"nick@pandastrike.com","name":"pandanick"}],"time":{"modified":"2022-06-17T23:20:57.899Z","created":"2015-07-20T03:41:19.463Z","1.0.0-beta-18":"2015-07-20T03:41:19.463Z","1.0.0-beta-19":"2015-08-10T22:22:45.249Z","1.0.0-beta-20":"2015-10-05T20:34:34.192Z","1.0.0-beta-21":"2015-10-09T01:06:36.797Z","1.0.0":"2016-04-15T02:24:58.282Z","1.0.1":"2016-04-15T02:54:34.442Z","2.0.0":"2017-12-10T01:11:40.389Z","2.0.1":"2017-12-10T01:15:12.715Z","2.0.2":"2017-12-10T01:17:41.053Z"},"homepage":"https://github.com/dyoder/fairmont#readme","keywords":[],"repository":{"type":"git","url":"git://github.com/dyoder/fairmont.git"},"bugs":{"url":"https://github.com/dyoder/fairmont/issues"},"license":"MIT","readmeFilename":"README.md"}