Giter VIP home page Giter VIP logo

microee's Introduction

microEE

A client and server side library for routing events.

Build Status

I was disgusted by the size of MiniEE (122 sloc, 4.4kb), so I decided a rewrite was in order.

MicroEE is a more satisfying (~50 sloc, ~1200 characters), and passes the same tests as MiniEE (excluding the RegExp support, but including many real-world tests, such as removing a once() callback, and checking for the correct order of once callback removal).

Installing:

npm install microee

In-browser version

Use the version in ./dist/. It exports a single global, microee.

To run the in-browser tests, open ./test/index.html in the browser after cloning this repo and doing npm install (to get Mocha).

Usage example: microee.mixin

var MicroEE = require('microee');
function MyClass() {
  // ...
}
MicroEE.mixin(MyClass);
MyClass.prototype.foo = function() {
  // ...
};

var obj = new MyClass();
// set string callback
obj.on('event', function(arg1, arg2) { console.log(arg1, arg2); });
obj.emit('event', 'aaa', 'bbb'); // trigger callback

API

The API is based on Node's EventEmitter.

There are two additional niceties: emitter.when(event, listener) and .mixin().

Support for emitter.listeners(event) was added in v0.0.6.

emitter.on(event, listener)

Adds a listener to the end of the listeners array for the specified event.

server.on('connection', function (stream) {
  console.log('someone connected!');
});

Returns emitter, so calls can be chained.

emitter.once(event, listener)

Adds a one time listener for the event. This listener is invoked only the next time the event is fired, after which it is removed.

Returns emitter, so calls can be chained.

emitter.when(event, listener)

Addition to the regular API. If listener returns true, the listener is removed. Useful for waiting for a particular set of parameters on a recurring event e.g. in tests.

Returns emitter, so calls can be chained.

microee.mixin(object)

Addition to the regular API. Extends object.prototype with all the microee methods, allowing other classes to act like event emitters.

emitter.emit(event, [arg1], [arg2], [...])

Execute all listeners on event, with the supplied arguments.

Returns emitter, so calls can be chained.

emitter.removeListener(event, listener)

Remove a listener from the listener array for the specified event.

emitter.removeAllListeners([event])

Removes all listeners, or those of the specified event.

emitter.listeners(event)

Returns an array of listeners for the specified event.

microee's People

Contributors

mixu avatar

Stargazers

junaid lone avatar Abhinav Dabral avatar Divine avatar  avatar Nick Esquerra avatar Shawn Allen avatar  avatar Athan avatar Heath Dernovich avatar Casey Robinson avatar Christophe Promé avatar  avatar pawaca avatar xelius avatar Cory O'Brien avatar Mathias Verraes avatar Michael G. Rexroad avatar Luca avatar martin mauchauffée avatar Yuya Saito avatar LX avatar

Watchers

ddm avatar  avatar James Cloos avatar  avatar

Forkers

amit08255

microee's Issues

Use a SPDX-compliant license?

Would you be able to switch using a SPDX-compliant license identifier? The list is available in http://spdx.org/licenses/ . The BSD has a lot of variants, and as the project doesn't have a LICENSE file defined, it's not explicitly clear which BSD variant is used.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.