UNPKG

pub-sub

Version:

A small library that implements pub/sub in JavaScript.

1 lines 1.27 kB
(function(n){"use strict";function e(n){function e(){return r}function i(){return c}function t(){u&&u.apply(f,arguments)}var r,c,u,f;return a.verifyObject(n,"Invalid arguments"),r=n.name,c=n.data||{},u=n.callback,a.verifyUnemptyString(r,"Invalid name"),u!==void 0&&a.verifyFunction(u,"Invalid callback"),f={getName:e,getData:i,respond:t}}function i(n){function e(n){i(n),t(n.name,n.callback)}function i(n){a.verifyObject(n,"Invalid arguments"),a.verifyUnemptyString(n.name,"Invalid name"),a.verifyFunction(n.callback,"Invalid callback")}function t(n,e){v[n]===void 0&&(v[n]=[]),v[n].push(e)}function u(n){i(n),f(n.name,n.callback)}function f(n,e){var i,t=v[n];if(a.isArray(t)!==!1)for(i=0;t.length>i;i+=1)if(t[i]===e){t.splice(i,1);break}}function o(n){a.verifyQuack(n,r,"Invalid event"),l(n,"*"),l(n,n.getName())}function l(n,e){var i,t=v[e];if(a.isArray(t))for(i=0;t.length>i;i+=1)t[i](n)}var v={"*":[]};return a.verifyUnemptyString(n,"Invalid id"),c[n]===void 0&&(c[n]={subscribe:e,unsubscribe:u,publish:o}),c[n]}function t(){"function"==typeof define&&define.amd?define(function(){return u}):"undefined"!=typeof module&&null!==module?module.exports=u:n.pubsub=u}var a=require("check-types"),r=e({name:"archetype"}),c={},u={createEvent:e,getEventBroker:i};t()})(this);