{"_id":"bind-event-listener","_rev":"3947144","name":"bind-event-listener","description":"Making binding and unbinding DOM events easier","dist-tags":{"alpha":"1.0.1-alpha.1","beta":"3.0.0-beta.1","latest":"3.0.0"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"time":{"modified":"2025-09-01T01:34:46.000Z","created":"2020-06-14T22:59:10.484Z","3.0.0":"2023-04-26T23:12:42.958Z","3.0.0-beta.1":"2023-04-26T06:06:53.503Z","2.1.1":"2022-06-24T11:12:49.907Z","2.1.0":"2022-05-05T05:22:38.998Z","2.1.0-beta.0":"2022-05-04T05:34:06.027Z","2.0.0":"2021-06-07T05:40:38.408Z","1.0.2":"2020-07-17T03:17:06.355Z","1.0.1":"2020-07-14T05:48:23.636Z","1.0.1-alpha.1":"2020-07-14T05:30:19.418Z","1.0.0-alpha.1":"2020-07-14T05:29:06.719Z","1.0.0":"2020-07-13T10:05:20.770Z","0.3.0":"2020-07-01T04:12:54.832Z","0.2.0":"2020-06-14T23:02:53.313Z","0.1.0":"2020-06-14T22:59:10.484Z"},"users":{},"author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"versions":{"3.0.0":{"name":"bind-event-listener","version":"3.0.0","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"size-limit":[{"path":"dist/index.js","limit":"549B"}],"scripts":{"typescript:check":"tsc --noEmit && tsc --noEmit --project ./test/tsconfig.json","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","validate":"yarn typescript:check && yarn prettier:check","test":"yarn jest","size:check":"size-limit","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@size-limit/preset-small-lib":"^8.2.4","@types/jest":"^29.5.1","@types/node":"^18.16.0","expect-type":"^0.15.0","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","prettier":"^2.8.8","rimraf":"^5.0.0","size-limit":"^8.2.4","ts-expect":"^1.3.0","ts-jest":"^29.1.0","typescript":"^5.0.4"},"dependencies":{},"gitHead":"6cf23e4632d9c9112447a7530d7c8a43791cfcfa","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@3.0.0","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"c90f9a7fcb65cac21045f810c20ef7e647a74921","size":6537,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-3.0.0.tgz"},"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_3.0.0_1682550762786_0.8740849609668835"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-04-26T23:12:42.958Z","publish_time":1682550762958,"_source_registry_name":"default","_cnpm_publish_time":1682550762958},"3.0.0-beta.1":{"name":"bind-event-listener","version":"3.0.0-beta.1","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"size-limit":[{"path":"dist/index.js","limit":"549B"}],"scripts":{"typescript:check":"tsc --noEmit && tsc --noEmit --project ./test/tsconfig.json","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","validate":"yarn typescript:check && yarn prettier:check","test":"yarn jest","size:check":"size-limit","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@size-limit/preset-small-lib":"^8.2.4","@types/jest":"^29.5.1","@types/node":"^18.16.0","expect-type":"^0.15.0","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","prettier":"^2.8.8","rimraf":"^5.0.0","size-limit":"^8.2.4","ts-expect":"^1.3.0","ts-jest":"^29.1.0","typescript":"^5.0.4"},"dependencies":{},"readmeFilename":"README.md","gitHead":"6e8b16f511722623a6fc8102af23b5a32ed1f52a","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@3.0.0-beta.1","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"9d7d7a907a1d7a05d15b2fd620a780b7bd06d34a","size":6261,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-3.0.0-beta.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-3.0.0-beta.1.tgz"},"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_3.0.0-beta.1_1682489213327_0.6365153111843558"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-04-26T06:06:53.503Z","publish_time":1682489213503,"_source_registry_name":"default","_cnpm_publish_time":1682489213503},"2.1.1":{"name":"bind-event-listener","version":"2.1.1","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"size-limit":[{"path":"dist/index.js","limit":"549B"}],"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","validate":"yarn typescript:check && yarn prettier:check","test":"yarn jest","size:check":"size-limit","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@size-limit/preset-small-lib":"^7.0.5","@types/jest":"^27.4.0","expect-type":"^0.13.0","jest":"^27.4.7","prettier":"^2.5.1","rimraf":"^3.0.2","size-limit":"^7.0.5","ts-expect":"^1.3.0","ts-jest":"^27.1.3","typescript":"^4.6.4"},"dependencies":{},"gitHead":"ec5d02c8155e27f57cebc90b645e5afe00cc71a4","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@2.1.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"shasum":"5e57290181af3027ff53ba6109e417a1e3cbb6f3","size":6159,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-2.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-2.1.1.tgz"},"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_2.1.1_1656069169715_0.9642075617181158"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-06-24T12:05:38.464Z","publish_time":1656069169907,"_cnpm_publish_time":1656069169907},"2.1.0":{"name":"bind-event-listener","version":"2.1.0","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"size-limit":[{"path":"dist/index.js","limit":"549B"}],"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","validate":"yarn typescript:check && yarn prettier:check","test":"yarn jest","size:check":"size-limit","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@size-limit/preset-small-lib":"^7.0.5","@types/jest":"^27.4.0","expect-type":"^0.13.0","jest":"^27.4.7","prettier":"^2.5.1","rimraf":"^3.0.2","size-limit":"^7.0.5","ts-expect":"^1.3.0","ts-jest":"^27.1.3","typescript":"^4.6.4"},"dependencies":{},"gitHead":"297c8fc83fafe5583f543d6d733904e336a40057","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@2.1.0","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"shasum":"2fc275cce0bb40bdb900931a7c472a482bcf1f0e","size":5966,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-2.1.0.tgz"},"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_2.1.0_1651728158857_0.7635920317919893"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-05T05:59:09.538Z","publish_time":1651728158998,"_cnpm_publish_time":1651728158998},"2.1.0-beta.0":{"name":"bind-event-listener","version":"2.1.0-beta.0","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"size-limit":[{"path":"dist/index.js","limit":"549B"}],"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","validate":"yarn typescript:check && yarn prettier:check","test":"yarn jest","size:check":"size-limit","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@size-limit/preset-small-lib":"^7.0.5","@types/jest":"^27.4.0","expect-type":"^0.13.0","jest":"^27.4.7","prettier":"^2.5.1","rimraf":"^3.0.2","size-limit":"^7.0.5","ts-expect":"^1.3.0","ts-jest":"^27.1.3","typescript":"^4.6.4"},"dependencies":{},"readmeFilename":"README.md","gitHead":"37aec31ae72862629c7391697a3a27d050b3959b","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@2.1.0-beta.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"shasum":"41ba41605712d632aaa7fc6ffff7332e012705cf","size":5834,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-2.1.0-beta.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-2.1.0-beta.0.tgz"},"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_2.1.0-beta.0_1651642445856_0.9269916563115166"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-04T05:35:53.826Z","publish_time":1651642446027,"_cnpm_publish_time":1651642446027},"2.0.0":{"name":"bind-event-listener","version":"2.0.0","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"size-limit":[{"path":"dist/index.js","limit":"330B"}],"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","validate":"yarn typescript:check && yarn prettier:check","test":"yarn jest","size:check":"size-limit","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@size-limit/preset-small-lib":"^4.11.0","@types/jest":"^26.0.23","expect-type":"^0.11.0","jest":"^27.0.4","prettier":"^2.3.1","rimraf":"^3.0.2","size-limit":"^4.11.0","ts-jest":"^27.0.3","typescript":"^4.3.2"},"dependencies":{},"gitHead":"c966e80f4a487037eea42ed6e8853d95e6427754","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@2.0.0","_nodeVersion":"14.15.0","_npmVersion":"7.11.1","dist":{"shasum":"5e21d7a0ae8f33420a020d89f91ae6567771690e","size":5921,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-2.0.0.tgz"},"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_2.0.0_1623044438265_0.9549554833415155"},"_hasShrinkwrap":false,"publish_time":1623044438408,"_cnpm_publish_time":1623044438408,"_cnpmcore_publish_time":"2021-12-17T05:37:31.921Z"},"1.0.2":{"name":"bind-event-listener","version":"1.0.2","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"gitHead":"b3151330fcafd11b0706351458283874db8bd03e","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@1.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"dist":{"shasum":"3af1ab15f64aff0b95ba38e0e9d7d2c78b85dc0b","size":4649,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-1.0.2.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_1.0.2_1594955826177_0.8960492271598315"},"_hasShrinkwrap":false,"publish_time":1594955826355,"_cnpm_publish_time":1594955826355,"_cnpmcore_publish_time":"2021-12-17T05:37:32.310Z"},"1.0.1":{"name":"bind-event-listener","version":"1.0.1","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"gitHead":"d8f586da14e81375f390fc02350ae002af10e515","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@1.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"dist":{"shasum":"9d2c42c2d9441232e4304ea1f74c5c01b8322369","size":4456,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-1.0.1.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_1.0.1_1594705703481_0.8591303857176427"},"_hasShrinkwrap":false,"publish_time":1594705703636,"_cnpm_publish_time":1594705703636,"_cnpmcore_publish_time":"2021-12-17T05:37:32.585Z"},"1.0.1-alpha.1":{"name":"bind-event-listener","version":"1.0.1-alpha.1","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"readmeFilename":"README.md","gitHead":"31238fbaa212e4678290e62b8865d35f18198bc7","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@1.0.1-alpha.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"dist":{"shasum":"bfca7e5ac5a343c8dd212d998e1ba7e97d299886","size":4465,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-1.0.1-alpha.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-1.0.1-alpha.1.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_1.0.1-alpha.1_1594704619316_0.9907018760809696"},"_hasShrinkwrap":false,"publish_time":1594704619418,"_cnpm_publish_time":1594704619418,"_cnpmcore_publish_time":"2021-12-17T05:37:32.811Z"},"1.0.0-alpha.1":{"name":"bind-event-listener","version":"1.0.0-alpha.1","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"readmeFilename":"README.md","gitHead":"7ef9bd2c6f204bdaac0737a806cf30badc4bbb07","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@1.0.0-alpha.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"dist":{"shasum":"44f69241146746a9b3660ea2b58d40658f14e124","size":4464,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-1.0.0-alpha.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-1.0.0-alpha.1.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_1.0.0-alpha.1_1594704546613_0.22590866390658637"},"_hasShrinkwrap":false,"publish_time":1594704546719,"_cnpm_publish_time":1594704546719,"_cnpmcore_publish_time":"2021-12-17T05:37:32.992Z"},"1.0.0":{"name":"bind-event-listener","version":"1.0.0","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"gitHead":"d06ac791bb53bf57cd06b773e7b3bb82f4d6d20b","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@1.0.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"shasum":"651c3263cf1a3c9c14e8c0d259f3d0f2e4264b05","size":4333,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-1.0.0.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_1.0.0_1594634720612_0.7595627078869447"},"_hasShrinkwrap":false,"publish_time":1594634720770,"_cnpm_publish_time":1594634720770,"_cnpmcore_publish_time":"2021-12-17T05:37:33.219Z"},"0.3.0":{"name":"bind-event-listener","version":"0.3.0","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"keywords":["dom","ui","event listener","event handler"],"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"gitHead":"12d9a4fdee4fd3be727ece9b2f9e84fe8123cf88","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@0.3.0","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"shasum":"f84a0281e77fe5cd51d2e4020b8b9676765ad09d","size":4335,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-0.3.0.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_0.3.0_1593576774644_0.5482788438142052"},"_hasShrinkwrap":false,"publish_time":1593576774832,"_cnpm_publish_time":1593576774832,"_cnpmcore_publish_time":"2021-12-17T05:37:33.412Z"},"0.2.0":{"name":"bind-event-listener","version":"0.2.0","private":false,"description":"Making binding and unbinding DOM events easier","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexreardon/bind-event-listener.git"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","sideEffects":false,"config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"gitHead":"7bc5b856f0aaf8a9289b691f91076dfb6ef4255f","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","_id":"bind-event-listener@0.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"dist":{"shasum":"d7afcff2c3e066382cd4f23d1f426d8e40f68771","size":3573,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-0.2.0.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_0.2.0_1592175772996_0.16735351018502387"},"_hasShrinkwrap":false,"publish_time":1592175773313,"_cnpm_publish_time":1592175773313,"_cnpmcore_publish_time":"2021-12-17T05:37:33.642Z"},"0.1.0":{"name":"bind-event-listener","version":"0.1.0","private":false,"description":"Making binding and unbinding DOM events easier","main":"dist/index.js","author":{"name":"Alex Reardon","email":"alexreardon@gmail.com"},"license":"MIT","config":{"prettier_target":"src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}"},"scripts":{"typescript:check":"yarn tsc --noEmit","typescript:watch":"tsc --watch","typescript:build":"tsc","prettier:check":"prettier --debug-check $npm_package_config_prettier_target","prettier:write":"prettier --write $npm_package_config_prettier_target","test":"yarn jest","build:clean":"rimraf dist","build":"yarn build:clean && yarn typescript:build","prepublishOnly":"yarn build"},"devDependencies":{"@types/jest":"^26.0.0","jest":"^26.0.1","prettier":"^2.0.5","rimraf":"^3.0.2","ts-jest":"^26.1.0","typescript":"^3.9.5"},"dependencies":{},"gitHead":"d6090c7fe28944a85ff2e6cceb969b1da4b13e14","_id":"bind-event-listener@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"alexreardon","email":"alexreardon@gmail.com"},"dist":{"shasum":"cfb955561c79e0beb0574a915bf0ec9d2679a1bd","size":2821,"noattachment":false,"key":"/bind-event-listener/-/bind-event-listener-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bind-event-listener/download/bind-event-listener-0.1.0.tgz"},"maintainers":[{"name":"alexreardon","email":"alexreardon@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bind-event-listener_0.1.0_1592175550343_0.5599253133253626"},"_hasShrinkwrap":false,"publish_time":1592175550484,"_cnpm_publish_time":1592175550484,"_cnpmcore_publish_time":"2021-12-17T05:37:33.860Z"}},"readme":"# bind-event-listener\n\n[![npm](https://img.shields.io/npm/v/bind-event-listener.svg)](https://www.npmjs.com/package/bind-event-listener)\n![types](https://img.shields.io/badge/types-typescript-blueviolet)\n[![minzip](https://img.shields.io/bundlephobia/minzip/bind-event-listener.svg)](https://www.npmjs.com/package/bind-event-listener)\n\nA well typed utility to make creating and removing DOM event listeners safer and more ergonomic.\n\n```ts\nimport { bind, UnbindFn } from 'bind-event-listener';\n\nconst unbind: UnbindFn = bind(button, {\n  type: 'click',\n  listener: function onClick(event) {},\n});\n\n// when you are all done:\nunbind();\n```\n\n```ts\nimport { bindAll } from 'bind-event-listener';\n\nconst unbind = bindAll(button, [\n  {\n    type: 'click',\n    listener: function onClick(event) {},\n    options: { capture: true },\n  },\n  {\n    type: 'mouseover',\n    listener: function onMouseOver(event) {},\n  },\n]);\n\n// when you are all done:\nunbind();\n```\n\n## Rationale\n\nWhen using `addEventListener()`, **correctly unbinding** events with `removeEventListener()` can be tricky.\n\n1. You need to remember to call `removeEventListener` (it can be easy to forget!)\n\n<details>\n<summary>Example</summary>\n\n```ts\ntarget.addEventListener('click', onClick, options);\n\ntarget.removeEventListener('click', onClick, options);\n```\n\n</details>\n\n2. You need to pass in the same listener _reference_ to `removeEventListener`\n\n<details>\n<summary>Example</summary>\n\n```ts\ntarget.addEventListener(\n  'click',\n  function onClick() {\n    console.log('clicked');\n  },\n  options,\n);\n\n// Even those the functions look the same, they don't have the same reference.\n// The original onClick is not unbound!\ntarget.removeEventListener(\n  'click',\n  function onClick() {\n    console.log('clicked');\n  },\n  options,\n);\n```\n\n```ts\n// Inline arrow functions can never be unbound because you have lost the reference!\ntarget.addEventListener('click', () => console.log('i will never unbind'), options);\ntarget.removeEventListener('click', () => console.log('i will never unbind'), options);\n```\n\n</details>\n\n3. You need to pass in the same `capture` value option\n\n<details>\n<summary>Example</summary>\n\n```ts\n// add a listener: AddEventListenerOptions format\ntarget.addEventListener('click', onClick, { capture: true });\n\n// not unbound: no capture value\ntarget.removeEventListener('click', onClick);\n\n// not unbound: different capture value\ntarget.removeEventListener('click', onClick, { capture: false });\n\n// successfully unbound: same capture value\ntarget.removeEventListener('click', onClick, { capture: true });\n// this would also unbind (different notation)\ntarget.removeEventListener('click', onClick, true /* shorthand for { capture: true } */);\n```\n\n```ts\n// add a listener: boolean capture format\ntarget.addEventListener('click', onClick, true /* shorthand for { capture: true } */);\n\n// not unbound: no capture value\ntarget.addEventListener('click', onClick);\n// not unbound: different capture value\ntarget.addEventListener('click', onClick, false);\n\n// successfully unbound: same capture value\ntarget.addEventListener('click', onClick, true);\n// this would also unbind (different notation)\ntarget.addEventListener('click', onClick, { capture: true });\n```\n\n</details>\n\n**`bind-event-listener` solves these problems**\n\n1. When you bind an event (or events with `bindAll`) you get back a simple `unbind` function\n2. The unbind function ensures the same listener _reference_ is passed to `removeEventListener`\n3. The unbind function ensures that whatever `capture` value is used with `addEventListener` is used with `removeEventListener`\n\nYou will find an even fuller rationale for this project in my course: [\"The Ultimate Guide for Understanding DOM Events\"](https://egghead.io/courses/the-ultimate-guide-for-understanding-dom-events-6c0c0d23?af=2jc3e4)\n\n[![share-card-dom-events](https://user-images.githubusercontent.com/2182637/120963089-52a45f00-c7a4-11eb-82a7-a04c2731999a.jpg)](https://egghead.io/courses/the-ultimate-guide-for-understanding-dom-events-6c0c0d23?af=2jc3e4)\n\n## Usage\n\n### `bind`: basic\n\n```ts\nimport { bind, UnbindFn } from 'bind-event-listener';\n\nconst unbind: UnbindFn = bind(button, {\n  type: 'click',\n  listener: onClick,\n});\n\n// when your are all done:\nunbind();\n```\n\n### `bind`: with options\n\n```ts\nimport { bind } from 'bind-event-listener';\n\nconst unbind = bind(button, {\n  type: 'click',\n  listener: onClick,\n  options: { capture: true, passive: false },\n});\n\n// when you are all done:\nunbind();\n```\n\n### `bindAll`: basic\n\n```ts\nimport { bindAll } from 'bind-event-listener';\n\nconst unbind = bindAll(button, [\n  {\n    type: 'click',\n    listener: onClick,\n  },\n]);\n\n// when you are all done:\nunbind();\n```\n\n### `bindAll`: with options\n\n```ts\nimport { bindAll } from 'bind-event-listener';\n\nconst unbind = bindAll(button, [\n  {\n    type: 'click',\n    listener: onClick,\n    options: { passive: true },\n  },\n  // default options that are applied to all bindings\n  { capture: false },\n]);\n\n// when you are all done:\nunbind();\n```\n\nWhen using `defaultOptions` for `bindAll`, the `defaultOptions` are merged with the `options` on each binding. Options on the individual bindings will take precedent. You can think of it like this:\n\n```ts\nconst merged: AddEventListenerOptions = {\n  ...defaultOptions,\n  ...options,\n};\n```\n\n> Note: it is a little bit more complicated than just object spreading as the library will also behave correctly when passing in a `boolean` capture argument. An options value can be a boolean `{ options: true }` which is shorthand for `{ options: {capture: true } }`\n\n## Types\n\nThanks to the great work by [@Ayub-Begimkulov](https://github.com/Ayub-Begimkulov) and [@Andarist](https://github.com/Andarist) `bind-event-listener` has fantastic TypeScript types and auto complete.\n\n> ⚠️ TypeScript 4.1+ is required for types\n> ⚠️ TypeScript 5.0+ is required for event name autocompletion\n\n```ts\nimport invariant from 'tiny-invariant';\nimport { bind } from 'bind-event-listener';\n\nbind(window, {\n  type: 'click',\n  function: function onClick(event) {\n    // `event` is correctly typed as a 'MouseEvent'\n    // `this` is correctly typed as `window` (the event target that the event listener is added to)\n  },\n});\n\nconst button = document.querySelector('button');\ninvariant(button instanceof HTMLElement);\n\nbind(button, {\n  type: 'click',\n  function: function onClick(event) {\n    // `event` is correctly typed as a 'MouseEvent'\n    // `this` is correctly typed as `button` (the event target that the event listener is added to)\n  },\n});\n\nconst object = {\n  handleEvent: function onClick(event) {\n    // `event` is correctly typed as a 'MouseEvent'\n    // `this` is correctly typed as `object` (the event listener object that the event listener is added to)\n  },\n};\n\nbind(button, {\n  type: 'click',\n  function: object,\n});\n```\n\n`bind` and `bindAll` accept type arguments (generics), but it is generally best to let these be inferred\n\n```ts\n// with explicit type arguments\nbind<HTMLElement, 'click'>(button, {\n  type: 'click',\n  listener: function onClick() {},\n});\n\n// ✨ types will automatically be inferred for you ✨\nbind(button, {\n  type: 'click',\n  listener: function onClick() {},\n});\n\n// with explicit type arguments\nbindAll<HTMLElement, ['click', 'keydown']>(button, [\n  {\n    type: 'click',\n    listener: function onClick() {},\n  },\n  {\n    type: 'keydown',\n    listener: function onKeyDown() {},\n  },\n]);\n\n// ✨ types will automatically be inferred for you ✨\nbindAll(button, [\n  {\n    type: 'click',\n    listener: function onClick() {},\n  },\n  {\n    type: 'keydown',\n    listener: function onKeyDown() {},\n  },\n]);\n```\n\n> Typescript built in DOM types: [raw view](https://raw.githubusercontent.com/microsoft/TypeScript/master/lib/lib.dom.d.ts), [pretty view](https://github.com/microsoft/TypeScript/blob/master/lib/lib.dom.d.ts) (warning: pretty view seems to crash Github!)\n\n### Type helpers\n\n```ts\nimport { Binding, Listener, UnbindFn } from 'bind-event-listener';\n```\n\n`Listener`: the `function` or `object` that you provide to the `listener` property of a `Binding`\n\n```ts\nbind(button, {\n  type: 'click',\n  listener: function onClick() {}, // ← `Listener`\n});\n```\n\n`Binding`: the definition of an event binding.\n\n```ts\nbind(\n  button,\n  // ↓ `Binding`\n  {\n    type: 'click',\n    listener: function onClick() {},\n  },\n);\n```\n\n`UnbindFn`: a named type for `() => void` to make it clearer that the function will unbind the added event listener(s):\n\n```ts\nconst unbind: UnbindFn = bind(button, { type: 'click', listener: function onClick() {} });\n```\n\n## Recipe: [`react`](https://reactjs.org/) effect\n\nYou can return a [cleanup function](https://reactjs.org/docs/hooks-reference.html#cleaning-up-an-effect) from [`useEffect`](https://reactjs.org/docs/hooks-reference.html#useeffect) (or [`useLayoutEffect`](https://reactjs.org/docs/hooks-reference.html#uselayouteffect)). `bind-event-listener` makes this super convenient because you can just return the unbind function from your effect.\n\n```ts\nimport React, { useState, useEffect } from 'react';\nimport { bind } from 'bind-event-listener';\n\nexport default function App() {\n  const [clickCount, onClick] = useState(0);\n\n  useEffect(() => {\n    const unbind = bind(window, {\n      type: 'click',\n      listener: () => onClick((value) => value + 1),\n    });\n\n    return unbind;\n  }, []);\n\n  return <div>Window clicks: {clickCount}</div>;\n}\n```\n\n> You can play with this [example on codesandbox](https://codesandbox.io/s/bind-event-listener-useeffect-mnfi3)\n\n## Cheers ????\n\nBrought to you by [@alexandereardon](https://twitter.com/alexandereardon)\n","_attachments":{},"homepage":"https://github.com/alexreardon/bind-event-listener#readme","bugs":{"url":"https://github.com/alexreardon/bind-event-listener/issues"},"license":"MIT"}