
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
@victor141516/atch
Advanced tools
Tiny 200b functional Event Emitter / pubsub. Forked from mitt.
Tiny 200b functional event emitter / pubsub.
"*"
event type listens to all eventsthis
Atch was made for the browser, but works in any JavaScript runtime. It has no dependencies and supports IE9+.
This project uses node and npm. Go check them out if you don't have them locally installed.
$ npm install --save @victor141516/atch
Then with a module bundler like rollup or webpack, use as you would anything else:
// using ES6 modules
import atch from '@victor141516/atch';
// using CommonJS modules
var atch = require('@victor141516/atch');
import atch from '@victor141516/atch';
const emitter = atch();
// listen to an event
emitter.on('foo', (e) => console.log('foo', e));
// listen to all events
emitter.on('*', (type, e) => console.log(type, e));
// fire an event
emitter.emit('foo', { a: 'b' });
// clearing all events
emitter.all.clear();
// working with handler references:
function onFoo() {}
emitter.on('foo', onFoo); // listen
emitter.off('foo', onFoo); // unlisten
Set "strict": true
in your tsconfig.json to get improved type inference for atch
instance methods.
import atch from '@victor141516/atch';
type Events = {
foo: string;
bar?: number;
};
const emitter = atch<Events>(); // inferred as Emitter<Events>
emitter.on('foo', (e) => {}); // 'e' has inferred type 'string'
emitter.emit('foo', 42); // Error: Argument of type 'number' is not assignable to parameter of type 'string'. (2345)
Alternatively, you can use the provided Emitter
type:
import atch, { Emitter } from '@victor141516/atch';
type Events = {
foo: string;
bar?: number;
};
const emitter: Emitter<Events> = atch<Events>();
Atch: Tiny (~200b) functional event emitter / pubsub.
Returns Atch
A Map of event names to registered handler functions.
Register an event handler for the given type.
type
(string | symbol) Type of event to listen for, or '*'
for all eventshandler
Function Function to call in response to given eventReturns Function De-register function which will undo the event registration
Register an event handler for the given type that will only be called once.
type
(string | symbol) Type of event to listen for, or '*'
for all eventshandler
Function Function to call in response to given eventReturns Function De-register function which will undo the event registration
Wait for the next event of type to be emitted.
Returns Promise<Any> Promise that will resolve when the event is emitted
Remove an event handler for the given type.
If handler
is omitted, all handlers of the given type are removed.
type
(string | symbol) Type of event to unregister handler
from ('*'
to remove a wildcard handler)handler
Function? Handler function to removeInvoke all handlers for the given type.
If present, '*'
handlers are invoked after type-matched handlers.
Note: Manually firing '*' handlers is not supported.
type
(string | symbol) The event type to invokeevt
Any? Any value (object is recommended and powerful), passed to each handlerFirst off, thanks for taking the time to contribute! Now, take a moment to be sure your contributions make sense to everyone else.
Found a problem? Want a new feature? First of all see if your issue or idea has already been reported. If don't, just open a new clear and descriptive issue.
Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits.
git clone https://github.com/<your-username>/atch
cd atch
git checkout -b my-new-feature
npm install
git commit -am 'Add some feature'
git push origin my-new-feature
FAQs
Tiny 200b functional Event Emitter / pubsub. Forked from mitt.
The npm package @victor141516/atch receives a total of 1 weekly downloads. As such, @victor141516/atch popularity was classified as not popular.
We found that @victor141516/atch demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.