Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    coupledpublic

    coupled

    A component manager for node.js - inverts control of binding event emitters with listeners.

    By specifying a shared context, loosely coupled components may receive events from each other without explicitly binding listeners to every other member. This functionality is provided to any class by wrapping it in the coupled function.

    Sample

    var coupled = require('coupled');
     
    var Greeter = coupled(function (context) {
        this.setContext(context);
        this.greet = function(thing) { this.emit('greeting', thing); }
    });
     
    var English = coupled(function (context) {
        this.setContext(context);
        this.on('greeting', function(thing) { console.log('Hello %s!', thing); });
    });
     
    var French = coupled(function (context) {
        this.setContext(context);
        this.on('greeting', function(thing) { console.log('Bonjour %s!', thing); });
    });
     
    var German = coupled(function (context) {
        this.setContext(context);
        this.on('greeting', function(thing) { console.log('Hallo %s!', thing); });
    });
     
    var Spanish = coupled(function (context) {
        this.setContext(context);
        this.on('greeting', function(thing) { console.log('Hola %s!', thing); });
    });
     
     
     
    var context = 'SharedContext';
     
    new English(context);
    new French(context);
    new German(context);
    new Spanish(context);
     
    new Greeter(context).greet('World');

    Keywords

    none

    install

    npm i coupled

    Downloadsweekly downloads

    8

    version

    0.1.0

    license

    none

    last publish

    collaborators

    • avatar