{"_id":"@servie/events","_rev":"4-b43b0d6f61a3a401d38c87b6fb35150e","name":"@servie/events","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@servie/events","version":"1.0.0","description":"Tiny type-safe event emitter","main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"scripts":{"prettier":"prettier --write","lint":"tslint \"src/**/*.ts\" --project tsconfig.json","format":"npm run prettier -- README.md \"src/**/*.{js,ts}\"","build":"rimraf dist && tsc","specs":"jest --coverage","test":"npm run lint && npm run build && npm run specs && npm run size","size":"size-limit","prepare":"npm run build"},"repository":{"type":"git","url":"git://github.com/serviejs/tinyevents.git"},"keywords":["events","emitter","types","typescript","micro"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/serviejs/tinyevents/issues"},"homepage":"https://github.com/serviejs/tinyevents","size-limit":[{"path":"dist/index.js","limit":"200 B"}],"jest":{"roots":["<rootDir>/src/"],"transform":{"\\.tsx?$":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$","moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,json,css,md}":["npm run prettier","git add"]},"publishConfig":{"access":"public"},"devDependencies":{"@types/jest":"^24.0.13","@types/node":"^12.0.7","husky":"^2.4.0","jest":"^24.8.0","lint-staged":"^8.2.0","prettier":"^1.18.2","size-limit":"^1.3.6","ts-jest":"^24.0.2","tslint":"^5.17.0","tslint-config-prettier":"^1.18.0","tslint-config-standard":"^8.0.1","typescript":"^3.5.1"},"gitHead":"4be58dc2965b1f96a43dee0f352c29b3590a5663","_id":"@servie/events@1.0.0","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-sBSO19KzdrJCM3gdx6eIxV8M9Gxfgg6iDQmH5TIAGaUu+X9VDdsINXJOnoiZ1Kx3TrHdH4bt5UVglkjsEGBcvw==","shasum":"8258684b52d418ab7b86533e861186638ecc5dc1","tarball":"https://registry.npmjs.org/@servie/events/-/events-1.0.0.tgz","fileCount":9,"unpackedSize":20852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAIvUCRA9TVsSAnZWagAAE6cP/j2Op6XYR/Co9+I3Drjr\nDp2b01jkjExiigqNqau8fE+elE3Bl7v7ApLt8bXLc9V4wLwRvoF9Z54YhYvB\nds+cRh+keYsBmYZlkdDyfjc7grnRsaz+fCLMnU9TU48pyea6WYkYxC3mgCM3\nN6dXxHozNGFel8IYIjHWUkefDgBdmQzJqbtemZZQEThtpuH4QMWHEDXkuyig\nBAlyl5kNOD6fU44yEfhtrZOJMzMBZ9ZHJdTxj9ZoUQNSkJL93ehvcDU8l9g/\nkOmyJW8vE3bclMfV89uqMlogV4nmV2+NejtO88mpXG+CyyIPn9xwCJkoUCUA\nlMrYHBjYXX4V1ZxnNBP+jQ236yYnRu80NABfduavGDSnkzOVX9qm9hYZ+dmV\n0yNbliVVsc1hsebd++vvJdZS2phM4m15kHZ2CQIa003B+PEwCwEd0+6y6kYt\nggmRanZB//rebsEFsSu2xnWWILGXCZOixPesTfBEUgMUY51JtkfsT0d0+7PY\nhd2cUrB0d802FZvnGB1d6DVu1b6hxZ1wSBRTREm0Mn9txTXb9ZEyg8xI0N8G\n6GoikW7PP3haV2iniCEudoxIQMiwgfaM40uiO9aLY+YcrJP9720Sz1GMk5MY\noLk1HBGm3HRPkm1ghD2Xnfstw1/3jw6bD5vuKxQAJyjisVbi/DXYXz0urlvj\n1RVK\r\n=1Ddi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQCsyY/h73PlTLTyHTwHVPAuGiNtnDr71750fyPwBv2gIhAPmdmXhgNkmD6RWfbDaJM/pdaeC5mA/Izb0+jW3wo/4g"}]},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/events_1.0.0_1560316883520_0.028145683388050013"},"_hasShrinkwrap":false},"2.0.0":{"name":"@servie/events","version":"2.0.0","publishConfig":{"access":"public"},"description":"Tiny type-safe event emitter","license":"MIT","repository":{"type":"git","url":"git://github.com/serviejs/tinyevents.git"},"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"homepage":"https://github.com/serviejs/tinyevents","bugs":{"url":"https://github.com/serviejs/tinyevents/issues"},"main":"dist/index.js","scripts":{"format":"ts-scripts format","lint":"ts-scripts lint","prepare":"ts-scripts install && ts-scripts build","size":"size-limit","specs":"ts-scripts specs","test":"ts-scripts test && npm run size"},"keywords":["events","emitter","types","typescript","micro"],"devDependencies":{"@borderless/ts-scripts":"^0.3.0","@size-limit/preset-small-lib":"^4.10.2","@types/jest":"^26.0.22","@types/node":"^14.14.37","size-limit":"^4.10.2","typescript":"^4.2.4"},"types":"dist/index.d.ts","sideEffects":false,"size-limit":[{"path":"dist/index.js","limit":"200 B"}],"gitHead":"afa73af689387319637df96e7802fe2b90251a03","_id":"@servie/events@2.0.0","_nodeVersion":"15.12.0","_npmVersion":"7.9.0","dist":{"integrity":"sha512-l1jW/jkdf64+bqWecNFZKap6siDA6LGk/OyHuUOi7PfJQnd+uzu/05JrKbyEv0lCac8o8f/0XLtToBF1/OkB8A==","shasum":"cc072128950b868a2c59a63cacb6b816fb83690f","tarball":"https://registry.npmjs.org/@servie/events/-/events-2.0.0.tgz","fileCount":9,"unpackedSize":20395,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgb7OZCRA9TVsSAnZWagAA3poP/06nDUa6p2lFUWJi0+en\nBB9gYqCFDlhH0kEM1pXqO12R/+r7Cej+atrwMcnb1pHiBTfs757AFGzvunNO\n6VA+PmjYLchaCP67hNkeQ+FEhM42ETmcNJSX//mqBggytoHBVefkUe7upNRm\naVdyXCWmir8BsewQAr/BtUEtGeNUaqS1gT1h1x79nFACEjBQkenJXNJ2DwXU\noGbGstz9q8gy1e9A+zCPPHOdCgdSySZcn+f61WBvzju/6oLrBC7UYIw8Ky1j\n4gdRLrQTC3B+9ziGM2Cw07+39GO4qqMwoU6pu2xLJofhlHXk0tuipYRFIkHn\nXgnrA1GiBGd5ttYJ5erZvLmHyO4u1jw7FD3K22t4Mz/rv7VTC9DJTzFEhXlV\nfOyA4ESOS9PnIp1TiWlv7FewAM1JyF8dEFjICeFUZE+9J1vQkb6he/PPeKDY\nl4RhoGpI/asZ1ooBggcMuR7aLnCgXUhgtVmzBQh3mXAWq7LMQI1EjgEvjlh9\nWAoh9SRa00JjC4/Djj7I2hzMn6uHUvaAG0YuXyNLZAbo0riIuKCIFDAyUz87\n1IWr15ncMoxSkEMnA+JCRn2zXzqCIYBbs+5kH31EkXFjROF6rQ6WMeYR2G8d\niS7qlf64xZlku7ymtyJhZoxb5yTbjPyF50WndaWVaszpCuRNz8zZ9vodKm+I\ngM3M\r\n=R9yG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnQToyKrHJLpWVULqQFHvwWJZz/vEZPRRVts8rsqVhLQIgPF+TXTCYiXHIqv/EXQeQB9fmKN+o+ROjvPVjogwy+n8="}]},"_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"directories":{},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/events_2.0.0_1617933208860_0.26083951967389174"},"_hasShrinkwrap":false},"2.0.1":{"name":"@servie/events","version":"2.0.1","publishConfig":{"access":"public"},"description":"Tiny type-safe event emitter","license":"MIT","repository":{"type":"git","url":"git://github.com/serviejs/events.git"},"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"homepage":"https://github.com/serviejs/events","bugs":{"url":"https://github.com/serviejs/events/issues"},"main":"dist/index.js","scripts":{"format":"ts-scripts format","lint":"ts-scripts lint","prepare":"ts-scripts install && ts-scripts build","size":"size-limit","specs":"ts-scripts specs","test":"ts-scripts test && npm run size"},"keywords":["events","emitter","types","typescript","micro"],"devDependencies":{"@borderless/ts-scripts":"^0.3.0","@size-limit/preset-small-lib":"^4.10.2","@types/jest":"^26.0.22","@types/node":"^14.14.37","size-limit":"^4.10.2","typescript":"^4.2.4"},"types":"dist/index.d.ts","sideEffects":false,"size-limit":[{"path":"dist/index.js","limit":"200 B"}],"gitHead":"f7a2b6e53991d9bb18fc05b1506249fe2fb4662d","_id":"@servie/events@2.0.1","_nodeVersion":"15.12.0","_npmVersion":"7.9.0","dist":{"integrity":"sha512-pBHYUt2SlMqdsObGI+8qexxwLTZbt8Hvzk6Q7oWiJn2s+zFyjhdFxv+4/Jit1MQ91F4CbfN34Gz25LGp+ZHgAQ==","shasum":"3adcd41828cc5d021b456097719e23986d86a8de","tarball":"https://registry.npmjs.org/@servie/events/-/events-2.0.1.tgz","fileCount":9,"unpackedSize":19765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcAEPCRA9TVsSAnZWagAAEf4P/2Fw1M4cy3x5j0hey/2m\noF4MrMQxKM53+PjtiIvToFvq8sYAL+vE94a9OG4gKaF8MzxeDWT6lYfgw1Of\nPja3X+Fm5CaTycDv4CxvQd8hlc3HJyqZZYRS7CRGOUoDeOI0p+FQX8wmzfgB\npfAF9y84Y5lOAAk3RFNaEFfNzV2KK3m3t/78DiR/9zeg6ctiRWnV2FjT+dV2\nALxufxehbXWF8ieARoyIMo6pjir00wh9w4pqMqeiZjvv92WChGDLS1Xl+hmF\ntV2Pf/SX68Nk91d+GFQk12wtjUelzBi8yX3s7v/HHLQXDtbjRakBE1jG5yxd\nF6dnyfKURQic+1b9ujkFpqLDmabyZ9dVCtXSCQ4Qp1jkuqXPRl9AQ+U4cvVC\nuFXax5XohS5CrrSHjkb5AOWXWdv6hhB8D1Be1275eb9BiUDwNVH+QRlhhvgw\n1Y02kD8Hw/91ep4CcnEPq10JmXEmB2xernwIZxxT7RhKyrvATQy2HK2ElZnG\nwnavlRfHyPEhkIlAz0APeWzsqP1WQAzFPBhqMWM+7e5MSOkSzJOhJ1rI3t8D\ncJl0764OHKkFpCb1qRjbD+v2EyXc+QqQgArC4O6d2ki8adhoBs7gkyg7myPh\ntfEFDe33g6/vPX82X8OcuHzphA94yz+LI1GcMkW79zhttA4+R1/aqeI+H+yF\n/akS\r\n=x2+D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvJLbtvPgjSom23vU/TgHZ2P0W3DkqXjvhtzf6axT3DwIhAP1InfA93oUwJgPxKxaXR0uTFDn1ECIQEgB3yHfK7Kbw"}]},"_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"directories":{},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/events_2.0.1_1617953038795_0.464863009877845"},"_hasShrinkwrap":false},"3.0.0":{"name":"@servie/events","version":"3.0.0","publishConfig":{"access":"public"},"description":"Tiny type-safe event emitter","license":"MIT","repository":{"type":"git","url":"git://github.com/serviejs/events.git"},"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"homepage":"https://github.com/serviejs/events","bugs":{"url":"https://github.com/serviejs/events/issues"},"main":"dist/index.js","scripts":{"format":"ts-scripts format","lint":"ts-scripts lint","prepare":"ts-scripts install && ts-scripts build","size":"size-limit","specs":"ts-scripts specs","test":"ts-scripts test && npm run size"},"keywords":["events","emitter","types","typescript","micro"],"devDependencies":{"@borderless/ts-scripts":"^0.3.0","@size-limit/preset-small-lib":"^4.10.2","@types/jest":"^26.0.22","@types/node":"^14.14.37","size-limit":"^4.10.2","typescript":"^4.2.4"},"types":"dist/index.d.ts","sideEffects":false,"size-limit":[{"path":"dist/index.js","limit":"200 B"}],"gitHead":"c4e55234204cd9e5a77c6698dce918ac08fc5b43","_id":"@servie/events@3.0.0","_nodeVersion":"15.14.0","_npmVersion":"7.9.0","dist":{"integrity":"sha512-Zd79bWhTuG8NvPgSiOcivorJIDg+goMw76TIqYTIR5ua5HOEkS29fmIh2VVSeDeabNF6z8ceTwzB0pSh/BhXyw==","shasum":"89863ae789248976be0565558dd420d3b8753bd0","tarball":"https://registry.npmjs.org/@servie/events/-/events-3.0.0.tgz","fileCount":9,"unpackedSize":21022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdh58CRA9TVsSAnZWagAAQIIP/3tEezFb8J5LEBGNI7nP\nYGsV/FGRN7BP5ABWFrQsoetLkJiekiAdbyTM6tqKxPpzrcFeFQ4LQzJUNBFZ\nfrIZt2wnH2DbU4pHcw7gE4s2U/ROB4orO5eckt9ZInezClNga10IXDAg/lXY\n/hWEks0BBr7jqsDbhzPgnLBvHse0wf2mIAaduWWD6KN6KT5BSr7gFycTcUGN\nOR08jlS+P+HS57v4+uFkeUONd6dVoKjnn1tP8hWSXhRMaOhJ0zRQpuzUTfYm\nhXEpgQJl3RyXh+VOL/8z/aVrI8cD9XE0kWHLoSR+bs9J9MTtZbZV2oI/dbMn\n6uQveyNL2FlVU9LVHCxNCa3hk/T7ymEOGI9OP0WCuXFmaCE7YgU6NDUU7a6O\nhGufJtWygbf5pNN7uRyy1ys1jaciLISNjYRdsBSQ/H1w5IFa6uKnDZvxupN/\nSVQLTFw2w0bXXvUZP/UcZXQtCMgTaTAc2ftM/61rMgGbDEHoH9ZnWAuzV5ws\nI0rS338VmRaSiEQO/f0svlKKkaRLm/xQNPKJpM6f7M7pGbF9gDbCm7DV//Di\nEx5d0mWeF2FQFz3WkCBOsSFmvsjJj6A1dZmgiJEBRUe4PzuoGIspKikmKNAQ\n2324PL/XEXujMZEEq0rPZ3nX6zF1rOVFqOforZ5lSCqT1mt1Y+rhTb2hvgk3\nG68N\r\n=PKFR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBXOXZnPxUDyQB+QT5GSFXt5GSNsXGj/9cwPz6QL2NKgIhAL2rgk9XaG+4OdQFceEgV0mHpzwyveXGH5wh30aQBHaw"}]},"_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"directories":{},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/events_3.0.0_1618353787878_0.3047873361550706"},"_hasShrinkwrap":false}},"time":{"created":"2019-06-12T05:21:23.321Z","1.0.0":"2019-06-12T05:21:23.722Z","modified":"2022-04-06T22:53:37.267Z","2.0.0":"2021-04-09T01:53:28.959Z","2.0.1":"2021-04-09T07:23:58.950Z","3.0.0":"2021-04-13T22:43:08.067Z"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"description":"Tiny type-safe event emitter","homepage":"https://github.com/serviejs/events","keywords":["events","emitter","types","typescript","micro"],"repository":{"type":"git","url":"git://github.com/serviejs/events.git"},"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"bugs":{"url":"https://github.com/serviejs/events/issues"},"license":"MIT","readme":"# Events\n\n[![NPM version][npm-image]][npm-url]\n[![NPM downloads][downloads-image]][downloads-url]\n[![Build status][build-image]][build-url]\n[![Build coverage][coverage-image]][coverage-url]\n[![Bundle size][bundlephobia-image]][bundlephobia-url]\n\n> Tiny type-safe event emitter.\n\n## Installation\n\n```\nnpm install @servie/events --save\n```\n\n## Usage\n\n```ts\nimport { Emitter, once, ALL_EVENTS } from \"@servie/events\";\n\n// Define an events interface using keys & argument tuples.\ninterface Events {\n  test: [boolean];\n  other: [string];\n}\n\n// Initialize an `Emitter` using your `Events` interface.\nconst events = new Emitter<Events>();\n\n// Add or remove listeners.\nconst listener = (...args) => console.log(args);\nconst off = events.on(\"test\", listener);\n\n// Emit an event.\nevents.emit(\"test\", true);\n\n// Listen to _all_ events, i.e. for debugging.\nconst eachListener = ({ type, args }) => console.log(type, args);\nconst off = events.on(ALL_EVENTS, eachListener);\n\n// \"Once\" utility.\nconst runOnce = (...args) => console.log(args);\nonce(events, \"test\", runOnce);\n\n// Remove the listener.\noff();\n```\n\n## TypeScript\n\nThis project is written using [TypeScript](https://github.com/Microsoft/TypeScript) and publishes the definitions directly to NPM.\n\n## License\n\nMIT\n\n[npm-image]: https://img.shields.io/npm/v/@servie/events\n[npm-url]: https://npmjs.org/package/@servie/events\n[downloads-image]: https://img.shields.io/npm/dm/@servie/events\n[downloads-url]: https://npmjs.org/package/@servie/events\n[build-image]: https://img.shields.io/github/workflow/status/serviejs/events/CI/main\n[build-url]: https://github.com/serviejs/events/actions/workflows/ci.yml?query=branch%3Amain\n[coverage-image]: https://img.shields.io/codecov/c/gh/serviejs/events\n[coverage-url]: https://codecov.io/gh/serviejs/events\n[bundlephobia-image]: https://img.shields.io/bundlephobia/minzip/@servie/events.svg\n[bundlephobia-url]: https://bundlephobia.com/result?p=@servie/events\n","readmeFilename":"README.md"}