Socket
Book a DemoInstallSign in
Socket

partyline

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

partyline

Extension of EventEmitter that allows for multiple objects to act as shared observers

0.0.15
latest
npmnpm
Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

Partyline

Turn your modules into a busybody.

What is it?

Partyline is a NodeJS module that extends the EventEmitter object. It can be used as a mediator, or can return a new contructor function for your modules/objects that can listen/observe all events across any/all other inherited objects that are set using the .register() method.

How to use it?

Include it as you would any other module, and derive a new instance

var pl = require('./partyline');

Now you can use the Partyline instance's .derive() method to be the basis for your custom module/constructor(s). Note that the returned constructor function also makes an internal call to an method .init(), which can be used to set any internal variables or set up code within the constructor.

var MyModule = pl.derive();

var MyOtherModule = pl.derive();
MyOtherModule.prototype.init = function(){
    // your own inititalization code here
};

var objectA = new MyModule();

// will run your code set in the .init() method above
var objectB = new MyOtherModule();

With your modules inheriting from Partyline, they all can register events which will be observed by any instance that inherits from Partyline. Expanding from the code above, we can do this:

objectA.register('someEvent', function(){
    console.log("This is objectA");
});

objectB.register('someEvent', function(){
    console.log("objectB here");
});

This has registered 2 objects to the 'someEvent' event. Now objectA, objectB, and pl are all able to trigger 'someEvent' by using the .broadcast() method.

// you cant trigger "someEvent" in this way
objectA.broadcast('someEvent');

// as will this
objectB.broadcast('someEvent');

// and also this
pl.broadcast('someEvent');

// any one of the above object's broadcast calls will produce the same log output of:
// "This is objectA"
// "objectB here"

Also remember, that since Partyline extend NodeJS' events.EventEmitter object, all instances above are able to use .on() and .emit() methods as you would do so with EventEmitter. Note that using events in this manner are not broadcasted to children of Partlyline.

Lastly, if using Browserify, you can include Partyline into your clientside scripts as well.

API

.derive([function])

Returns a function who's prototype matches Partyline's prototype. This function can then be further extended as needed with your own functionality. You may also extend a current constructor function by passing it as an argument. In this case, the return value will be your updated constcuctor.

.register(event, callback)

Adds and event with callback to the .registries object. Can be triggered by any descendant of Partyline.

.broadcast(ev, data)

Fires an event (ev) to all descendants of Partyline that registered the emitted event name

.registries

An object that stores all the events/callbacks set with .register()

Keywords

events

FAQs

Package last updated on 09 Feb 2014

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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.