{"_id":"@dannyfranca/radarjs","_rev":"4-a73d267066a050ebae0e03f220b52cdb","name":"@dannyfranca/radarjs","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@dannyfranca/radarjs","version":"0.1.0","description":"Event Manager, with namespaces, emitting, bubbling and broadcasting, made with RxJS Subjects and inspired by jQuery event API.","license":"MIT","author":{"name":"Danny França","email":"contato@dannyfranca.com"},"contributors":[{"name":"Danny França","email":"contato@dannyfranca.com"}],"source":"src/radar.ts","main":"lib/radar.js","module":"lib/radar.mjs","unpkg":"lib/radar.umd.js","types":"lib/radar.d.ts","repository":{"type":"git","url":"git+https://github.com/dannyfranca/radarjs.git"},"publishConfig":{"access":"public"},"scripts":{"dev":"cross-env NODE_ENV=development jest --watch","build":"cross-env NODE_ENV=production concurrently -n microbundle,typedoc 'yarn:bundle' 'yarn:doc'","test":"cross-env NODE_ENV=test concurrently -n type-check,lint,jest 'yarn:type-check' 'yarn:lint' 'jest'","precommit":"concurrently -n type-check,lint-staged 'yarn:type-check' 'lint-staged'","bundle":"microbundle --tsconfig ./tsconfig.base","doc":"typedoc","coverage":"codecov","type-check":"tsc --noEmit","lint":"eslint --ext .ts,.js --ignore-path .gitignore --fix src/**","publish":"npm publish --access public"},"keywords":["event","on","off","subscribe","unsubscribe","trigger","next","emit","broadcast","bubble","handler","manager","jquery","rxjs","subject","observer"],"bugs":{"url":"https://github.com/dannyfranca/radarjs/issues"},"homepage":"https://github.com/dannyfranca/radarjs#readme","devDependencies":{"@types/jest":"^24.9.0","@types/node":"^13.1.6","@typescript-eslint/eslint-plugin":"^2.16.0","@typescript-eslint/parser":"^2.16.0","codecov":"^3.6.1","concurrently":"^5.0.2","cross-env":"^6.0.3","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","eslint-plugin-prettier":"^3.1.2","husky":"^4.0.7","jest":"^25.1.0","jest-extended":"^0.11.4","lint-staged":"^9.5.0","microbundle":"^0.11.0","prettier":"^1.19.1","ts-jest":"^24.3.0","ts-node":"^8.6.2","typedoc":"^0.16.2","typescript":"^3.7.4"},"dependencies":{"rxjs":"^6.5.4"},"_id":"@dannyfranca/radarjs@0.1.0","_nodeVersion":"13.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-rRW4Ke3q52QmqhC1Jy4aegAZUjIPu8yBKw13P5BmksSH9aMotr7mQQX2jlWVP1TgJmaOSCVyt6oeO7r2aQUXTA==","shasum":"e37bafef5a6dc192b6410e2ef1daefb03b6d6fb8","tarball":"https://registry.npmjs.org/@dannyfranca/radarjs/-/radarjs-0.1.0.tgz","fileCount":26,"unpackedSize":451057,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLaqECRA9TVsSAnZWagAAblcP/2WYpxzLVUv+Nv5b+w2P\n2viCI8zozAg2flGCEhfsGQvu9CCPGjfLE1+dNeTygmyR3/V8hQm1MzVdZ2L4\nwXHDISdqV+nCSirEdsGXjbSciEOcTuqBE+CmiRHezQKplhERWyYw1hyFdASC\nM4BqzwWh/nMvEaiCcEtU7bz5Kf43sYKG3+Y0XWd1W6Lg5cwmWjonCWakUUHS\nYUWz78Gh680KriYDaYVnSWzPSM+qVpkNgivhV3jJfWMpkjXhk6+qIHoCm5GK\nBjsnCrqmZYJ/fPHNpZil9f02grjcDcCK5GmwEEH175q5pD/T5R/qS6Ix30tp\n1fPX8HYmgq4UZIgVVPrjl8Xcg8IENsyYfm3atG+LeUlMNW5ThqmH++NV6TlT\nlAGXv1cdupyAPjcb29sAKCM7J+KyMrGqo3nlKCebWCDjTyyLfIMAqhaSBd/i\nwxzc0LJGAS+kJgREAKGGhsUD0MnUpdlgn8e3q1IgKB66kPdGsEYCwdK+F31E\nYTjE5KOexa3lte3UbuK3gzjRBmrcu6Hufunbcjw1WYBym5wdGuqITMlPRSy7\nqYL0bVAmaRMjzjgUieF7Kjo5lbK4HlGgjjoFv0aa+NHv3+POplQnHerHbxqO\nMI+SxasABEo4cDa9jBm4DQl6dMUpJiAe0ig5qeCCdAhURpNGJu4pdS9TCaCD\nmPFh\r\n=OEpe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB6Jo4bR31MPUa5I7prDNuC+1i+/rSR2JxTL/m0rOCxUAiAQHS/6u+oePiBcuVYoV9GrJ2lJFRm0oiYkEDm2OMeseQ=="}]},"maintainers":[{"name":"dannyfranca","email":"contato@dannyfranca.com"}],"_npmUser":{"name":"dannyfranca","email":"contato@dannyfranca.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/radarjs_0.1.0_1580051075751_0.5511883287778212"},"_hasShrinkwrap":false},"0.2.0":{"name":"@dannyfranca/radarjs","version":"0.2.0","description":"Event Manager, with namespaces, emitting, bubbling and broadcasting, made with RxJS Subjects and inspired by jQuery event API.","license":"MIT","author":{"name":"Danny França","email":"contato@dannyfranca.com"},"contributors":[{"name":"Danny França","email":"contato@dannyfranca.com"}],"source":"src/radar.ts","main":"lib/radar.js","module":"lib/radar.mjs","unpkg":"lib/radar.umd.js","types":"lib/radar.d.ts","repository":{"type":"git","url":"git+https://github.com/dannyfranca/radarjs.git"},"publishConfig":{"access":"public"},"scripts":{"dev":"cross-env NODE_ENV=development jest --watch","build":"cross-env NODE_ENV=production concurrently -n microbundle,typedoc 'yarn:bundle' 'yarn:doc'","test":"cross-env NODE_ENV=test concurrently -n type-check,lint,jest 'yarn:type-check' 'yarn:lint' 'jest'","precommit":"concurrently -n type-check,lint-staged 'yarn:type-check' 'lint-staged'","bundle":"microbundle --tsconfig ./tsconfig.base","doc":"typedoc","coverage":"codecov","type-check":"tsc --noEmit","lint":"eslint --ext .ts,.js --ignore-path .gitignore --fix src/**","publish":"npm publish --access public"},"keywords":["event","events","emitter","tree","radar","on","off","subscribe","unsubscribe","trigger","next","emit","broadcast","bubble","handler","manager","jquery","rxjs","subject","observer"],"bugs":{"url":"https://github.com/dannyfranca/radarjs/issues"},"homepage":"https://github.com/dannyfranca/radarjs#readme","devDependencies":{"@types/jest":"^24.9.1","@types/node":"^13.5.0","@typescript-eslint/eslint-plugin":"^2.17.0","@typescript-eslint/parser":"^2.17.0","codecov":"^3.6.2","concurrently":"^5.0.2","cross-env":"^7.0.0","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","eslint-plugin-prettier":"^3.1.2","husky":"^4.2.1","jest":"^25.1.0","jest-extended":"^0.11.4","lint-staged":"^10.0.2","microbundle":"^0.11.0","prettier":"^1.19.1","ts-jest":"^25.0.0","ts-node":"^8.6.2","typedoc":"^0.16.9","typescript":"^3.7.5"},"dependencies":{"rxjs":"^6.5.4"},"gitHead":"09ea9569e26ade356d29adcedb8edc7660475adf","_id":"@dannyfranca/radarjs@0.2.0","_nodeVersion":"13.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-k0MU9LCREq97oS/Y+fMP9SJXtbxL2z+Q/1MLPzqBBJTg5RUbm7r6rxoTDtWC1DHyAkpBYYNxL1L0GudOR68tnw==","shasum":"ac382a8ab1222e9c9518a8e30bb946b420b366b6","tarball":"https://registry.npmjs.org/@dannyfranca/radarjs/-/radarjs-0.2.0.tgz","fileCount":29,"unpackedSize":534745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeNe/4CRA9TVsSAnZWagAAuJsP/2ti1PoHRkyHHII0e9yD\nGllDv9Sn3J07BNfqSGvkztiZeMEKXKsD2YjBDjJXDta+MR4GQ5rIMcupNtIB\nXwDmlznG/SBOTFatWRM3PA3mc9/g3sT+yDn7cGVyAayCWTCqIW14PU/nCv4e\nT7YoP/LoIQtpNayrxqzI5ZS0XkOhiyRjVVlC249XGHn8F4mcfH9WQ/qJWd/Z\nwH3qhZ2FQzOOBC36AFHoBPjFjqHnoj3nYlEQNZYpeAq+pnO3TA6FMIGjIEec\nj9BGs4MInxE4G+9qMi9jjcnMWiud7CZGzCh06Y/CxZGL4T1o0p8TE2jZXIEJ\nxW2yVOCAAw8nUD/hmK5ERXZDFrz9pwGzYxVmx+UMw/Zd+vFYlTGSBF6dUdnt\n5nZstUdHuwiIqo52D9ge/hUUHnfmSsl0cA41vtuyBJQdN/TQvDQchzFUxHbu\n57jK0xx8Tmm8Aa5NsHea8Ahdes/8gn8h6WNKx8iugvGiT6tllJLH2hL2EBiq\nMQF2B+T8oUmUKBxVbPypZ7cFvRNd+HHa2ew8jKf4ebLSX+yu2bcRmaHDr6MO\nS86slC5iEuVmYrrTDrIMN104GCyO+JxyucldJiqSTFvWdhg4gNXT6lUiLhQE\nCzWXawafBO+UECfq2x2DvEWeejb9C8cUf616wNw2QPvIdhyqmI/ZyqLjode2\nRolK\r\n=MgjD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDULgf4MDHmeT/SKiNdcK1uF8sOky3jdURM6VhG0U/EugIgAJ1QvRRo4IpIgNL+eZ+bPAzGlQIAoPUnrau/KuJA838="}]},"maintainers":[{"name":"dannyfranca","email":"contato@dannyfranca.com"}],"_npmUser":{"name":"dannyfranca","email":"contato@dannyfranca.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/radarjs_0.2.0_1580593143616_0.5660181265611315"},"_hasShrinkwrap":false},"0.2.1":{"name":"@dannyfranca/radarjs","version":"0.2.1","description":"Event Manager, with namespaces, emitting, bubbling and broadcasting, made with RxJS Subjects and inspired by jQuery event API.","license":"MIT","author":{"name":"Danny França","email":"contato@dannyfranca.com"},"contributors":[{"name":"Danny França","email":"contato@dannyfranca.com"}],"source":"src/radar.ts","main":"lib/radar.js","module":"lib/radar.mjs","unpkg":"lib/radar.umd.js","types":"lib/radar.d.ts","repository":{"type":"git","url":"git+https://github.com/dannyfranca/radarjs.git"},"publishConfig":{"access":"public"},"scripts":{"dev":"cross-env NODE_ENV=development jest --watch","build":"cross-env NODE_ENV=production concurrently -n microbundle,typedoc 'yarn:bundle' 'yarn:doc'","test":"cross-env NODE_ENV=test concurrently -n type-check,lint,jest 'yarn:type-check' 'yarn:lint' 'jest'","precommit":"concurrently -n type-check,lint-staged 'yarn:type-check' 'lint-staged'","bundle":"microbundle --tsconfig ./tsconfig.base","doc":"typedoc","coverage":"codecov","type-check":"tsc --noEmit","lint":"eslint --ext .ts,.js --ignore-path .gitignore --fix src/**","publish":"npm publish --access public"},"keywords":["event","events","emitter","tree","radar","on","off","subscribe","unsubscribe","trigger","next","emit","broadcast","bubble","handler","manager","jquery","rxjs","subject","observer"],"bugs":{"url":"https://github.com/dannyfranca/radarjs/issues"},"homepage":"https://github.com/dannyfranca/radarjs#readme","devDependencies":{"@types/jest":"^24.9.1","@types/node":"^13.5.0","@typescript-eslint/eslint-plugin":"^2.17.0","@typescript-eslint/parser":"^2.17.0","codecov":"^3.6.2","concurrently":"^5.0.2","cross-env":"^7.0.0","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","eslint-plugin-prettier":"^3.1.2","husky":"^4.2.1","jest":"^25.1.0","jest-extended":"^0.11.4","lint-staged":"^10.0.2","microbundle":"^0.11.0","prettier":"^1.19.1","ts-jest":"^25.0.0","ts-node":"^8.6.2","typedoc":"^0.16.9","typescript":"^3.7.5"},"dependencies":{"rxjs":"^6.5.4"},"gitHead":"fccecb5444e7dea688696c1efc60ac2310427c10","_id":"@dannyfranca/radarjs@0.2.1","_nodeVersion":"13.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-J3X65Wawebx9Iz2PADqHNdpU7gPG6zKBZbf7KhSqa2z7URFo4YOwfY6EwYr/7qmK6W6xvb6/nlzsMMaMAiAohw==","shasum":"4a790ec8f1baac4603fbdbbdca2d802cb260d893","tarball":"https://registry.npmjs.org/@dannyfranca/radarjs/-/radarjs-0.2.1.tgz","fileCount":29,"unpackedSize":537586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeNfSmCRA9TVsSAnZWagAAYnwP/2K+2vll2iwcMD3ZasX8\nY+WIhlUxdYHpvMI0Ec+fzdqaKAAQR/VdGqJ1zFnlAKPJDSAO+/oj7fu3iYAH\nJxkw3QD1iGKwuCsesPzz7EpiPko3hP9rc5UMxP43sKseeTdS6VlV4mVneFw2\nr6CMjRTKUBoLSzptvlphkM3h4OchcwvNVaVXIS5B0MwKqvZ+KQfSw1FiI2fv\n/8Du3xRsRZWI/D6lIYmlZtH/AyCyqYpuRAIVWuuLosQarINrJEcxsRbMS5k4\nyKdpYtpaMWQpBQgaGby96mJIiD3+200j3UlU71GKWnC3dMd/mRCk083XApAM\nZJNjxbRJcfel0zOzpXOIv4F2+j6B9aqP9dqayXE23119jRJA662+sWQhjnYu\nPI2y8TPZ9EL2Ra0oCaaRgDEMFYultPvhxNLJiQJwZUhoWCqgo8BZkhfNk20Y\nHDrKQdj2rYlN2lisUeKkPKFP84DrUPOABdGpLFq5yhhvTmBewrC8TIS6+G7O\nGog9hzeZg8v2Ck0CtaO5wWqmblkavcXOIxOdq+Y5YZvuwQfLe72m5IJB9ipU\nbQrK4/tvS9oc7bg5xncuWK/N0PLenAwI7wWAZ3CAr0yxV/lhyqs/sNLOKJ5b\nFbXEeHv5IRIn8/H4QO8XAZWZXOHgCl0YmEWbi+Vm7S4xaPgVLE3mox49t/qZ\nhMzV\r\n=RyOJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAkyNYq0/Cxqu6bMdvm/nIgmZNu5f0cQMlcKCWdaXA40AiEA2HK/KXS1Omt4QjAGM92A4TuSTI88CMwGiN92aMStNc8="}]},"maintainers":[{"name":"dannyfranca","email":"contato@dannyfranca.com"}],"_npmUser":{"name":"dannyfranca","email":"contato@dannyfranca.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/radarjs_0.2.1_1580594341846_0.3315858244072083"},"_hasShrinkwrap":false},"0.3.0":{"name":"@dannyfranca/radarjs","version":"0.3.0","description":"Modern and Robust Event Emitter, with tagging, emitting and broadcasting. Internally uses Promises and RxJS Subjects.","license":"MIT","author":{"name":"Danny França","email":"contato@dannyfranca.com"},"contributors":[{"name":"Danny França","email":"contato@dannyfranca.com"}],"source":"src/radar.ts","main":"lib/radar.js","module":"lib/radar.mjs","unpkg":"lib/radar.umd.js","types":"lib/radar.d.ts","repository":{"type":"git","url":"git+https://github.com/dannyfranca/radarjs.git"},"publishConfig":{"access":"public"},"scripts":{"dev":"cross-env NODE_ENV=development jest --watch","build":"cross-env NODE_ENV=production concurrently -n microbundle,typedoc 'yarn:bundle' 'yarn:doc'","test":"cross-env NODE_ENV=test concurrently -n type-check,lint,jest 'yarn:type-check' 'yarn:lint' 'jest'","precommit":"concurrently -n type-check,lint-staged 'yarn:type-check' 'lint-staged'","bundle":"microbundle --tsconfig ./tsconfig.base","doc":"typedoc","coverage":"codecov","type-check":"tsc --noEmit","lint":"eslint --ext .ts,.js --ignore-path .gitignore --fix src/**","publish":"npm publish --access public"},"keywords":["event","events","emitter","tree","radar","on","off","subscribe","unsubscribe","trigger","emit","broadcast","bubble","handler","manager","rxjs","subject","subscription","observer"],"bugs":{"url":"https://github.com/dannyfranca/radarjs/issues"},"homepage":"https://github.com/dannyfranca/radarjs#readme","devDependencies":{"@types/jest":"^24.9.1","@types/node":"^13.5.0","@typescript-eslint/eslint-plugin":"^2.17.0","@typescript-eslint/parser":"^2.17.0","codecov":"^3.6.2","concurrently":"^5.0.2","cross-env":"^7.0.0","eslint":"^6.8.0","eslint-config-prettier":"^6.9.0","eslint-plugin-prettier":"^3.1.2","husky":"^4.2.1","jest":"^25.1.0","jest-extended":"^0.11.4","lint-staged":"^10.0.2","microbundle":"^0.11.0","prettier":"^1.19.1","ts-jest":"^25.0.0","ts-node":"^8.6.2","typedoc":"^0.16.9","typescript":"^3.7.5"},"dependencies":{"@types/micromatch":"^4.0.1","micromatch":"^4.0.2","rxjs":"^6.5.4"},"gitHead":"c323c7c6224ae583bb2f6f374df3f475369f6b76","_id":"@dannyfranca/radarjs@0.3.0","_nodeVersion":"13.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-6isbVsDvHyJcn5UdNuDa+ElOg30Nw5EXhj9GJBmj8h/aTT997od+iZOImwrrX2gEisuGfPnHzgCINp0jU67prw==","shasum":"e4f2db3e50738e0dd25e06456d075f8c177e36c1","tarball":"https://registry.npmjs.org/@dannyfranca/radarjs/-/radarjs-0.3.0.tgz","fileCount":29,"unpackedSize":583596,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOdxRCRA9TVsSAnZWagAAKlMP/Riy72rcD+Hb8S/XovO1\nODMrXfzXuzPi6eDL9+EpPLJK7hBNo8pxfW+6p4IfqIzDmbX36i8kgXNQEcNc\nKSSuCaPTlBVNJFDHfvZF7Fkxr9OFDGkjNTdtx9vU7O5E1bfKZz9buoi3/+oo\nKd9Pvxdy/mjeTi9N7POzndzMUzStiE5jH+rB8Erjym5lB6V15vgCCmFDw6Oy\nuITwib8NEDN9r9tut1BedJhBBuNxDr3sqMXIav7Piz4NRcp8kmapUf690ven\nncrOYpH3t3xm29WZ3KPummdBpsyppC4c1lxrdq5ITllwmmT2vlqMsQ33JLQ9\njC1gj+QgWkEYyMYqLLDuGhssUagkXh0kcOGxD2XHY6rnMMQP2195icmt1xzO\nmj1aeJC343U1IObHY7IO2bfKOGRbhbXxqEQJaDdBXEDllgebzuNkScA/LJJ3\nIqxm4o5LCmgdV0FwZP2ItewOra5P4QFbh+rUIEB9HvsxSOvEQiIT7I3DefX7\nCx3XivjyqmNd+F1E8LbZpi0MQQYnwTmiFT2Nx8DcCJI6u+5JcJq0Lt+fmbtN\nwyZtPNovRcAan4cEDDuAux4T1wK7nAFxU3rO5aX1O3nUiJzqvydDuccy7qbW\nKkzBGZ8JwJoDP0GLQccklhWOGmulCtaHjy1hIgoNLd6RGkAhB9gK9fmEmXny\nQnnO\r\n=cAFY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0yeuxbQDMvbllnqSazPYyF2EI6BtuJzIQ/mDspxhrIAIhAJSzWUuhJTg0190HFmBanZ4ihkiC6rx1yc5/CK4M5uh3"}]},"maintainers":[{"name":"dannyfranca","email":"contato@dannyfranca.com"}],"_npmUser":{"name":"dannyfranca","email":"contato@dannyfranca.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/radarjs_0.3.0_1580850256882_0.6257765318520718"},"_hasShrinkwrap":false}},"time":{"created":"2020-01-26T15:04:35.719Z","0.1.0":"2020-01-26T15:04:35.935Z","modified":"2022-04-05T02:42:22.512Z","0.2.0":"2020-02-01T21:39:03.790Z","0.2.1":"2020-02-01T21:59:01.983Z","0.3.0":"2020-02-04T21:04:17.075Z"},"maintainers":[{"name":"dannyfranca","email":"contato@dannyfranca.com"}],"description":"Modern and Robust Event Emitter, with tagging, emitting and broadcasting. Internally uses Promises and RxJS Subjects.","homepage":"https://github.com/dannyfranca/radarjs#readme","keywords":["event","events","emitter","tree","radar","on","off","subscribe","unsubscribe","trigger","emit","broadcast","bubble","handler","manager","rxjs","subject","subscription","observer"],"repository":{"type":"git","url":"git+https://github.com/dannyfranca/radarjs.git"},"contributors":[{"name":"Danny França","email":"contato@dannyfranca.com"}],"author":{"name":"Danny França","email":"contato@dannyfranca.com"},"bugs":{"url":"https://github.com/dannyfranca/radarjs/issues"},"license":"MIT","readme":"<h1 align=\"center\">dannyfranca/radarjs</h1>\n<p align=\"center\">Modern and Robust Event Emitter, with tagging, emitting and broadcasting. Internally uses Promises and RxJS Subjects.</p>\n<p align=\"center\">\n\n<a href=\"https://npmjs.com/package/@dannyfranca/radarjs\" target=\"_blank\">\n    <img src=\"https://img.shields.io/npm/dt/@dannyfranca/radarjs.svg?style=flat-square&logo=npm\" />\n</a>\n\n<a href=\"https://npmjs.com/package/@dannyfranca/radarjs\" target=\"_blank\">\n    <img src=\"https://img.shields.io/npm/v/@dannyfranca/radarjs/latest.svg?style=flat-square&logo=npm\" />\n</a>\n\n<a href=\"https://travis-ci.com/dannyfranca/radarjs\" target=\"_blank\">\n    <img src=\"https://img.shields.io/travis/dannyfranca/radarjs?style=flat-square&logo=travis\" />\n</a>\n\n<a href=\"https://codecov.io/gh/dannyfranca/radarjs\" target=\"_blank\">\n    <img src=\"https://img.shields.io/codecov/c/github/dannyfranca/radarjs?style=flat-square&logo=codecov\" />\n</a>\n\n<a href=\"https://david-dm.org/dannyfranca/radarjs\" target=\"_blank\">\n    <img src=\"https://david-dm.org/dannyfranca/radarjs/status.svg?style=flat-square\" />\n</a>\n\n</p>\n\n## Install\n\n### Module\n\n#### Download\n\n```bash\nnpm i radarjs\n```\n\n#### Import\n\n```js\nimport { Radar } from '@dannyfranca/radarjs'\n\nconst radar = new Radar()\n```\n\n### CDN\n\n```html\n<script src=\"unpkg.com/radarjs\"></script>\n\n<!-- Specific Version -->\n<script src=\"unpkg.com/radarjs@0.3.0/lib/radar.umd.js\"></script>\n```\n\n## Usage\n\n### Listen for Events\n\n```js\nconst state = {\n  count: 0,\n  lastNotificationType: ''\n}\n\nradar.on('notify', () => state.count++)\n\n// receive any number off values as arguments\nradar.on('notify', ({ type }, ...data) => {\n  state.lastNotificationType = type)\n  console.log(data)\n}\n\n// can use namespaces\nradar.on('notify.namespace1.namespace2', (...data) => {/*...*/})\n```\n\n### Unsubscribe from Events\n\n```js\n// by event name\nradar.off('notify')\n\n// by namespace\nradar.off('.namespace1')\n\n// by Subscription\nconst subscribeThenUnsubscribe = async () => {\n  const subscription = await radar.on('event', (...data) => {/*...*/})\n  subscription.unsubscribe()\n}\n\nsubscribeThenUnsubscribe()\n\n// by Subscription (sync)\nconst subscription = await radar.onSync('event', (...data) => {/*...*/})\nsubscription.unsubscribe()\n```\n\n### Trigger Events\n\n```js\n// pass any data to an event trigger\nradar.trigger('notify', {\n  type: 'info',\n  message: 'Just an ordinary notification'\n})\n\n// pass any number of data\nradar.trigger('notify', notification, ...data)\n```\n\n### MultiLevel Events\n\n```js\n// set child event\nradar.link('grandparent', 'parent')\nradar.link('parent', 'child')\n\n// destroy link\nradar.unlink('parent', 'child')\n\n// broadcast events down to the whole tree just like trigger\n// will trigger grandparent, parent and child\nradar.broadcast('grandparent', ...data)\n\n// will trigger parent and child\nradar.broadcast('parent', ...data)\n\n// emit events up to the whole tree just like trigger\n// will trigger child, parent and grandparent\nradar.emit('child', ...data)\n\n// will trigger only grandparent\nradar.emit('grandparent', ...data)\n```\n\n### Sync Variants\n\nEvery public methods returns Promises, but each one has a sync variant, with same syntax.\n\n```js\nradar.on('event', ...data) // returns Promise<Subscription>\nradar.onSync('event', ...data) // returns Subscription\nradar.trigger('event', ...data) // returns Promise<void>\nradar.triggerSync('event', ...data) // returns void\n// and so on...\n```\n\n### MultiTriggering\n\nTo trigger/emit/broadcast many events with same data, you can use arrays of strings or a single string with event names separated by dots. Each event name is resolved by a glob pattern (powered by [micromatch](https://github.com/micromatch/micromatch))!\n\n```js\n// will trigger \"foo\" and \"bar\", sending same datas\nradar.trigger('foo.bar', ...data)\n// same as\nradar.trigger(['foo', 'bar'], ...data)\n\n\n// with micromatch\nradar.on('foo', () => {/*...*/})\nradar.on('bar', () => {/*...*/})\nradar.on('baz', () => {/*...*/})\nradar.on('boom', () => {/*...*/})\n\n// will trigger \"bar\" and \"baz\"\nradar.trigger('ba*', ...data) \n// will trigger \"boom\"\nradar.trigger('b*m', ...data)\n\n// many micromatches allowed!\n// will trigger \"bar\", \"baz\" and  \"boom\"\nradar.triggerMany('ba*.bo*', ...data)\nradar.triggerMany(['ba*', 'bo*'], ...data)\n```\n\nSee all glob possibilities in [micromatch](https://github.com/micromatch/micromatch)\n\n#### Auto Link\n\nYou can autolink with \":\" character\n\n```js\nradar.on('event:frag1:frag2', () => {/*...*/})\n\n// will fire \"event\", \"event:frag1\" and \"event:frag1:frag2\" events\nradar.broadcast('event', ...data)\n\n// will fire \"event:frag1\" and \"event\" events\nradar.emit('event:frag1', ...data)\n\n// ATTENTION: will fire just frag1.\n// frag1 and frag2 is not supposed to be events,\n// just words appended to eventNames\nradar.broadcast('frag1', ...data)\n```\n\n### Native Events\n\nNative events has reserved names starting with $. Until now, the only native event available is $error.\n\n#### $error event\n\n```typescript\n// listening to $error\nradar.on('$error', (error: Error) => {/*...*/})\n```\n\nRadarjs default error handler is:\n\n```typescript\n(error: Error) => { throw error }\n```\n\nYou can set yout own:\n\n```typescript\n// set your error handler\nradar.setErrorHandler((error: Error) => {/*...*/})\n```\n\n## License\n\n[MIT](./LICENSE)\n\nCopyright (c) Danny França <mailto:contato@dannyfranca.com>\n","readmeFilename":"README.md"}