Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

emoney

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

emoney

A lightweight, isomorphic event emitter

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

E$

A lightweight, isomorphic event emitter.

travis-ci

Overview

E$ can be used standalone or inherited by other classes.

// Standalone
const emoney = E$({
	handleE$() { ... }
});

// Inherited
class E$Extended extends E$ {
	handleE$() { ... }
}

E$ provides a clean way to interface with object instances.

emoney
	.$when('loading', (e, pct) => console.log('loading... (%s%)', pct))
	.$when('ready', () => console.log('ready!'))
	.$when('error', (e, err) => console.error(err.stack));

E$ instances can communicate via the handleE$ method.

const emitter = E$();
const watcher = E$({
	handleE$(e, str, obj) {
		expect(str).to.eql('awesome');
		expect(obj).to.eql({ rad: true });
	}
});
watcher.$watch(emitter);
emitter.$emit('gnarly', ['awesome', { rad: true }]);
expect(watcher.handleE$).to.have.been.called.once;

E$ can be used to create a DOM-like event tree.

const emitter = E$();
const watcher1 = E$();
const watcher2 = E$();
const spy = sinon.spy();

watcher2
	.$watch(watcher1)
	.$when('gnarly', spy);

watcher1
	.$watch(emitter)
	.$when('gnarly', e => e.stopPropagation());

emitter.$emit('gnarly', () => expect(spy).to.have.not.been.called);

Methods

(static) E$.is(subject) → {boolean}

Returns true if subject is E$-ish, false otherwise.

const emoney = E$();
const emoneyIsh = new E$Extended();
const somethingElse = new SomethingElse();

emoney instanceof E$;     // true
E$.is(emoney);            // true

emoneyIsh instanceof E$;  // false
E$.is(emoneyIsh);         // true

E$.is(somethingElse);     // false

.$when(events, argsopt, fnopt) → {instance}

Adds an event listener.

ParameterTypeDescriptionRequired
eventsstring
array
The event(s) to be handled.yes
argsvariant
array
The argument(s) to be bound to the event handler.no
fnfunction
E$
The event handler.
If E$.is(fn) == true, the event will be bound to instance.handleE$.
If fn is falsy, the event will be bound to emoney.handleE$.
no
// basic use
emoney.$when('gnarly', () => { ... });

// bind an argument to multiple events
emoney.$when(['gnarly', 'rad'], 'arg', () => { ... });

.$once(events, argsopt, fnopt) → {instance}

Adds an event listener that is removed after the first time it is invoked.

ParameterTypeDescriptionRequired
eventsstring
array
The event(s) to be handled.yes
argsvariant
array
The argument(s) to be bound to the event fn.no
fnfunction
E$
The event handler.no
// basic use
emoney.$once('gnarly', () => { ... });

// bind an argument to multiple events
emoney.$once(['gnarly', 'rad'], 'arg', () => { ... });

.$emit(events, argsopt, callbackopt) → {instance}

Emits an event.

ParameterTypeDescriptionRequired
eventsstring
array
The event(s) to be emitted.yes
argsvariant
array
The argument(s) to be passed to the event handler.no
callbackfunctionA function to be executed at the end of the event chain (see event behavior).no
// basic use
emoney.$emit('gnarly', () => { ... });

// pass an argument to multiple event handlers
emoney.$emit(['gnarly', 'rad'], 'arg', () => { ... });

// pass multiple arguments to an event handler
emoney.$emit('gnarly', ['arg1', 'arg2'], () => { ... });

.$dispel(events, wildopt, fnopt) → {instance}

Removes an event listener.

ParameterTypeDescriptionRequired
eventsstring
array
null
The event(s) to be removed.yes
wildbooleanA boolean value denoting whether handlers bound to the wildcard event should be removed.no
fnfunction
E$
The event handler.no
// remove any gnarly listeners bound to fn
emoney.$dispel('gnarly', fn);

// remove all gnarly or rad listeners bound to any handler
emoney.$dispel(['gnarly', 'rad']);

// remove all listeners bound to fn except wildcard listeners
emoney.$dispel(null, fn);

// remove all listeners bound to fn
emoney.$dispel(null, true, fn);

// remove all listeners
emoney.$dispel(null, true);

.$watch(emitters) → {instance}

Starts watching E$ instance(s).

ParameterTypeDescriptionRequired
emittersE$
array
The E$ instance(s) to watch.yes
// watch a single emitter
listener.$watch(emitter1);

// watch multiple emitters
listener.$watch([emitter1, emitter2]);

.$unwatch(emitters) → {instance}

Stops watching E$ instance(s).

ParameterTypeDescriptionRequired
emittersE$
array
The E$ instance(s) to stop watching.yes
// stop watching a single emitter
listener.$unwatch(emitter1);

// stop watching multiple emitters
listener.$unwatch([emitter1, emitter2]);

Events

Properties

PropertyTypeDefaultDescription
targetE$n/aThe event target.
typestringn/aThe event type.
defaultPreventedbooleanfalseA flag denoting whether default was prevented.
cancelBubblebooleanfalseA flag denoting whether propagation was stopped.
timeStampnumbern/aThe time at which the event was first triggered.

Methods

.preventDefault()

Prevents the $emit callback from being executed.

emoney
	.$when('gnarly', (e) => {
		e.preventDefault();
		console.log('fn1');
	})
	.$when('gnarly', () => console.log('fn2'))
	.$emit('gnarly', () => console.log('cb'));

/**
 * > 'fn1'
 * > 'fn2'
 */
.stopPropagation()

Stops execution of the event chain and executes the emit callback.

emoney
	.$when('gnarly', (e) => {
		e.stopPropagation();
		console.log('fn1');
	})
	.$when('gnarly', () => console.log('fn2'))
	.$emit('gnarly', () => console.log('cb'));

/**
 * > 'fn1'
 * > 'cb'
 */

Behavior

normal execution

defaultPrevented

cancelBubble

Build & Test

npm i && npm run build

Keywords

FAQs

Package last updated on 06 Nov 2016

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc