{"maintainers":[{"name":"pazguille","email":"guille87paz@gmail.com"}],"keywords":["decouple","events","dom events"],"dist-tags":{"latest":"1.0.1"},"author":{"name":"Guille Paz","email":"guille87paz@gmail.com"},"description":"Decouple the DOM events from expensive functions.","readme":"# decouple\n\n[![NPM version][npm-image]][npm-link] [![License][lic-image]][npm-link] [![Build status][travis-image]][travis-link] [![Coverage Status][coverage-image]][coverage-link] [![Dependency status][deps-image]][deps-link] [![devDependency status][devdeps-image]][devdeps-link] [![downloads][dt-image]][npm-link]\n\n> Decouple the DOM events from expensive functions.\n\n## Based on\n- [Paul Lewis](https://twitter.com/aerotwist)'s article [Leaner, Meaner, Faster Animations with requestAnimationFrame](http://www.html5rocks.com/en/tutorials/speed/animations).\n- [Paul Lewis](https://twitter.com/aerotwist)'s article [Scrolling Performance](http://www.html5rocks.com/en/tutorials/speed/scrolling).\n- [How to make faster scroll effects?](https://gist.github.com/Warry/4254579)\n- [Fixing a parallax scrolling website to run in 60 FPS](http://kristerkari.github.io/adventures-in-webkit-land/blog/2013/08/30/fixing-a-parallax-scrolling-website-to-run-in-60-fps/)\n- [John Resig](https://twitter.com/jeresig)'s article [Learning from Twitter](http://ejohn.org/blog/learning-from-twitter/).\n\n\n## Installation\n\n    $ npm install decouple\n\n    $ bower install decouple\n\n    $ spm install decouple\n\n    $ component install pazguille/decouple\n\n## Usage\n```js\nfunction foo(event) {\n  console.log('foo');\n\n  // The function receive the scroll event as parameter.\n  console.log(event);\n\n  // The function context is the given node.\n  console.log(this.scrollTop);\n}\n\nfunction bar() {\n  console.log('bar');\n}\n\ndecouple(document.querySelector('#box'), 'scroll', foo);\n```\n\n## API\n\n### decouple(node, event, listener)\nDecouple the DOM `event` from the `listener` on give `node`. Returns the listener handler.\n- `node` {HTMLElement} - A given `HTMLElement`.\n- `event` {String} - A given DOM `event`.\n- `listener` {Function} - A given `listener` to execute when the given `event` is fired.\n\n```js\ndecouple(window, 'scroll', fn);\n```\n\n## With ❤ by\n- Guille Paz (Front-end developer | Web standards lover)\n- E-mail: [guille87paz@gmail.com](mailto:guille87paz@gmail.com)\n- Twitter: [@pazguille](http://twitter.com/pazguille)\n- Web: [https://pazguille.me](https://pazguille.me)\n\n## License\nMIT license. Copyright © 2016.\n\n[npm-image]: https://img.shields.io/npm/v/decouple.svg\n[lic-image]: https://img.shields.io/npm/l/decouple.svg\n[npm-link]: https://npmjs.org/package/decouple\n[travis-image]: https://img.shields.io/travis/pazguille/decouple.svg\n[travis-link]: https://travis-ci.org/pazguille/decouple\n[deps-image]: https://img.shields.io/david/pazguille/decouple.svg\n[deps-link]: https://david-dm.org/pazguille/decouple\n[devdeps-image]: https://img.shields.io/david/dev/pazguille/decouple.svg\n[devdeps-link]: https://david-dm.org/pazguille/decouple#info=devDependencies\n[dt-image]: https://img.shields.io/npm/dt/decouple.svg\n[coverage-image]: https://img.shields.io/coveralls/pazguille/decouple.svg\n[coverage-link]: https://coveralls.io/github/pazguille/decouple\n","repository":{"type":"git","url":"git+ssh://git@github.com/pazguille/decouple.git"},"users":{},"bugs":{"url":"https://github.com/pazguille/decouple/issues"},"license":"MIT","versions":{"0.0.1":{"name":"decouple","repository":{"type":"git","url":"git@github.com:pazguille/decouple.git"},"description":"Decouple the DOM events from expensive functions.","author":{"name":"@pazguille","email":"guille87paz@gmail.com"},"version":"0.0.1","scripts":{"start":"gulp","test":"gulp test"},"devDependencies":{"gulp":"^3.6.2","gulp-footer":"^1.0.5","gulp-header":"^1.0.5","gulp-mocha":"^0.5.2","gulp-rename":"^1.2.0","gulp-replace":"^0.4.0","gulp-uglify":"^0.3.1","mkdirp":"^0.3.5","better-assert":"^1.0.1"},"main":"index.js","keywords":["decouple","events","dom events"],"license":"MIT","gitHead":"5dceb440fcd139e2d6f03e1848c18e9dd829bc07","bugs":{"url":"https://github.com/pazguille/decouple/issues"},"homepage":"https://github.com/pazguille/decouple","_id":"decouple@0.0.1","_shasum":"dfe232cd13e4ca38980c1dc69abf8df20c9880e3","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"pazguille","email":"guille87paz@gmail.com"},"maintainers":[{"name":"pazguille","email":"guille87paz@gmail.com"}],"dist":{"shasum":"dfe232cd13e4ca38980c1dc69abf8df20c9880e3","size":4310,"noattachment":false,"tarball":"http://tools.bpmhome.cn:8082/nexus/repository/npm-lc/decouple/-/decouple-0.0.1.tgz"},"directories":{},"publish_time":1411041876666,"_cnpm_publish_time":1411041876666,"_hasShrinkwrap":false},"0.0.2":{"name":"decouple","repository":{"type":"git","url":"git@github.com:pazguille/decouple.git"},"description":"Decouple the DOM events from expensive functions.","author":{"name":"@pazguille","email":"guille87paz@gmail.com"},"version":"0.0.2","scripts":{"dist":"gulp","test":"gulp test"},"devDependencies":{"gulp":"^3.6.2","gulp-footer":"^1.0.5","gulp-header":"^1.0.5","gulp-mocha":"^0.5.2","gulp-rename":"^1.2.0","gulp-replace":"^0.4.0","gulp-uglify":"^0.3.1","mkdirp":"^0.3.5","better-assert":"^1.0.1"},"main":"index.js","keywords":["decouple","events","dom events"],"license":"MIT","spm":{"main":"index.js"},"gitHead":"f49eca0c432970e52c3af5136ac4a21454961043","bugs":{"url":"https://github.com/pazguille/decouple/issues"},"homepage":"https://github.com/pazguille/decouple","_id":"decouple@0.0.2","_shasum":"cb373640c37f987a5f6866724ccd424a80f9d9a2","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"pazguille","email":"guille87paz@gmail.com"},"maintainers":[{"name":"pazguille","email":"guille87paz@gmail.com"}],"dist":{"shasum":"cb373640c37f987a5f6866724ccd424a80f9d9a2","size":4184,"noattachment":false,"tarball":"http://tools.bpmhome.cn:8082/nexus/repository/npm-lc/decouple/-/decouple-0.0.2.tgz"},"directories":{},"publish_time":1439254534795,"_cnpm_publish_time":1439254534795,"_hasShrinkwrap":false},"1.0.0":{"name":"decouple","version":"1.0.0","description":"Decouple the DOM events from expensive functions.","repository":{"type":"git","url":"git+ssh://git@github.com/pazguille/decouple.git"},"author":{"name":"Guille Paz","email":"guille87paz@gmail.com"},"scripts":{"build":"node browserify.js","dist":"npm run build && uglifyjs ./dist/decouple.js -m -o ./dist/decouple.min.js --source-map ./dist/decouple.min.js.map","test":"npm run build && NODE_ENV=test istanbul cover _mocha -- ./test/*.spec.js","lint":"eslint index.js"},"devDependencies":{"better-assert":"1.0.1","browserify":"13.1.1","coveralls":"2.11.15","eslint":"3.12.2","eslint-config-airbnb-base":"11.0.0","eslint-plugin-import":"2.2.0","istanbul":"0.4.5","jsdom":"9.9.1","mkdirp":"0.5.1","mocha":"3.2.0","uglifyjs":"2.4.10"},"main":"index.js","keywords":["decouple","events","dom events"],"spm":{"main":"index.js"},"license":"MIT","gitHead":"d630a37ccde75a16ac3deff80a8c8818b1120c0f","bugs":{"url":"https://github.com/pazguille/decouple/issues"},"homepage":"https://github.com/pazguille/decouple#readme","_id":"decouple@1.0.0","_shasum":"e48307dcf74f1f1898618d5289a3789c74d385b5","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"pazguille","email":"guille87paz@gmail.com"},"dist":{"shasum":"e48307dcf74f1f1898618d5289a3789c74d385b5","size":5756,"noattachment":false,"tarball":"http://tools.bpmhome.cn:8082/nexus/repository/npm-lc/decouple/-/decouple-1.0.0.tgz"},"maintainers":[{"name":"pazguille","email":"guille87paz@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/decouple-1.0.0.tgz_1482756159289_0.755925711710006"},"directories":{},"publish_time":1482756159529,"_cnpm_publish_time":1482756159529,"_hasShrinkwrap":false},"1.0.1":{"name":"decouple","version":"1.0.1","description":"Decouple the DOM events from expensive functions.","repository":{"type":"git","url":"git+ssh://git@github.com/pazguille/decouple.git"},"author":{"name":"Guille Paz","email":"guille87paz@gmail.com"},"scripts":{"build":"node browserify.js","dist":"npm run build && uglifyjs ./dist/decouple.js -m -o ./dist/decouple.min.js --source-map ./dist/decouple.min.js.map","test":"npm run build && NODE_ENV=test istanbul cover _mocha -- ./test/*.spec.js","lint":"eslint index.js"},"devDependencies":{"better-assert":"1.0.1","browserify":"14.1.0","coveralls":"2.11.16","eslint":"3.15.0","eslint-config-airbnb-base":"11.1.0","eslint-plugin-import":"2.2.0","istanbul":"0.4.5","jsdom":"9.11.0","mkdirp":"0.5.1","mocha":"3.2.0","uglifyjs":"2.4.10"},"main":"index.js","keywords":["decouple","events","dom events"],"spm":{"main":"index.js"},"license":"MIT","gitHead":"b62e927d441feb0dad1a39bf844e16f235aa753d","bugs":{"url":"https://github.com/pazguille/decouple/issues"},"homepage":"https://github.com/pazguille/decouple#readme","_id":"decouple@1.0.1","_shasum":"042e61b2840473f5cc9534797bedfea6dd1a8a51","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"pazguille","email":"guille87paz@gmail.com"},"dist":{"shasum":"042e61b2840473f5cc9534797bedfea6dd1a8a51","size":5779,"noattachment":false,"tarball":"http://tools.bpmhome.cn:8082/nexus/repository/npm-lc/decouple/-/decouple-1.0.1.tgz"},"maintainers":[{"name":"pazguille","email":"guille87paz@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/decouple-1.0.1.tgz_1487210469405_0.9891521024983376"},"directories":{},"publish_time":1487210469644,"_cnpm_publish_time":1487210469644,"_hasShrinkwrap":false}},"name":"decouple","time":{"modified":"2018-07-04T01:22:21.313Z","created":"2014-09-18T12:04:36.666Z","0.0.1":"2014-09-18T12:04:36.666Z","0.0.2":"2015-08-11T00:55:34.795Z","1.0.0":"2016-12-26T12:42:39.529Z","1.0.1":"2017-02-16T02:01:09.644Z"},"readmeFilename":"README.md","homepage":"https://github.com/pazguille/decouple#readme"}