mini-signals
Advanced tools
Comparing version 0.0.5 to 0.0.6
(function (global, factory) { | ||
if (typeof define === 'function' && define.amd) { | ||
define(['exports', 'module'], factory); | ||
define('MiniSignal', ['exports', 'module'], factory); | ||
} else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { | ||
@@ -11,3 +11,3 @@ factory(exports, module); | ||
factory(mod.exports, mod); | ||
global.miniSignals = mod.exports; | ||
global.MiniSignal = mod.exports; | ||
} | ||
@@ -56,2 +56,20 @@ })(this, function (exports, module) { | ||
}, { | ||
key: 'handlers', | ||
value: function handlers(exists) { | ||
var node = this._head; | ||
if (exists) { | ||
return !!node; | ||
} | ||
var ee = []; | ||
while (node) { | ||
ee.push(node); | ||
node = node._next; | ||
} | ||
return ee; | ||
} | ||
}, { | ||
key: 'dispatch', | ||
@@ -181,2 +199,4 @@ value: function dispatch(a) { | ||
module.exports = MiniSignals; | ||
MiniSignals.MiniSignalBinding = MiniSignalBinding; | ||
}); |
@@ -1,1 +0,1 @@ | ||
(function(global,factory){if(typeof define==="function"&&define.amd){define(["exports","module"],factory)}else if(typeof exports!=="undefined"&&typeof module!=="undefined"){factory(exports,module)}else{var mod={exports:{}};factory(mod.exports,mod);global.miniSignals=mod.exports}})(this,function(exports,module){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function MiniSignalBinding(fn,context){var once=arguments.length<=2||arguments[2]===undefined?false:arguments[2];this._fn=fn;this._context=context;this._next=this._prev=null;this._once=once}var MiniSignals=function(){function MiniSignals(){_classCallCheck(this,MiniSignals);this._head=this._tail=undefined}_createClass(MiniSignals,[{key:"listeners",value:function listeners(exists){var node=this._head;if(exists){return!!node}var ee=[];while(node){ee.push(node._fn);node=node._next}return ee}},{key:"dispatch",value:function dispatch(a){var node=this._head;if(!node){return false}while(node){node._fn.apply(node._context,arguments);if(node._once){this.detach(node)}node=node._next}return true}},{key:"add",value:function add(fn,context){if(typeof fn!=="function"){throw new Error("MiniSignals#add(): First arg must be a Function.")}var node=new MiniSignalBinding(fn,context||this);return this._addMiniSignalBinding(node)}},{key:"once",value:function once(fn,context){if(typeof fn!=="function"){throw new Error("MiniSignals#once(): First arg must be a Function.")}var node=new MiniSignalBinding(fn,context||this,true);return this._addMiniSignalBinding(node)}},{key:"_addMiniSignalBinding",value:function _addMiniSignalBinding(node){if(!this._head){this._head=node;this._tail=node}else{this._tail._next=node;node._prev=this._tail;this._tail=node}var self=this;node.detach=function(){self.detach(this)}.bind(node);return node}},{key:"remove",value:function remove(fn,context){if(!fn){return this.removeAll()}if(fn instanceof MiniSignalBinding){return this.detach(fn)}if(typeof fn!=="function"){throw new Error("MiniSignals#remove(): First arg must be a Function.")}var node=this._head;while(node){if(node._fn===fn&&(!context||node._context===context)){this.detach(node)}node=node._next}return this}},{key:"detach",value:function detach(node){if(!(node instanceof MiniSignalBinding)){throw new Error("MiniSignals#detach(): First arg must be a MiniSignalBinding object.")}if(!node._fn){return}if(node===this._head){this._head=node._next;if(!this._head){this._tail=null}else{this._head._prev=null}}else if(node===this._tail){this._tail=node._prev;this._tail._next=null}else{node._prev._next=node._next;node._next._prev=node._prev}node._fn=null;node._context=null}},{key:"removeAll",value:function removeAll(){var node=this._head;if(!node){return this}this._head=this._tail=null;return this}}]);return MiniSignals}();module.exports=MiniSignals}); | ||
(function(global,factory){if(typeof define==="function"&&define.amd){define("MiniSignal",["exports","module"],factory)}else if(typeof exports!=="undefined"&&typeof module!=="undefined"){factory(exports,module)}else{var mod={exports:{}};factory(mod.exports,mod);global.MiniSignal=mod.exports}})(this,function(exports,module){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function MiniSignalBinding(fn,context){var once=arguments.length<=2||arguments[2]===undefined?false:arguments[2];this._fn=fn;this._context=context;this._next=this._prev=null;this._once=once}var MiniSignals=function(){function MiniSignals(){_classCallCheck(this,MiniSignals);this._head=this._tail=undefined}_createClass(MiniSignals,[{key:"listeners",value:function listeners(exists){var node=this._head;if(exists){return!!node}var ee=[];while(node){ee.push(node._fn);node=node._next}return ee}},{key:"handlers",value:function handlers(exists){var node=this._head;if(exists){return!!node}var ee=[];while(node){ee.push(node);node=node._next}return ee}},{key:"dispatch",value:function dispatch(a){var node=this._head;if(!node){return false}while(node){node._fn.apply(node._context,arguments);if(node._once){this.detach(node)}node=node._next}return true}},{key:"add",value:function add(fn,context){if(typeof fn!=="function"){throw new Error("MiniSignals#add(): First arg must be a Function.")}var node=new MiniSignalBinding(fn,context||this);return this._addMiniSignalBinding(node)}},{key:"once",value:function once(fn,context){if(typeof fn!=="function"){throw new Error("MiniSignals#once(): First arg must be a Function.")}var node=new MiniSignalBinding(fn,context||this,true);return this._addMiniSignalBinding(node)}},{key:"_addMiniSignalBinding",value:function _addMiniSignalBinding(node){if(!this._head){this._head=node;this._tail=node}else{this._tail._next=node;node._prev=this._tail;this._tail=node}var self=this;node.detach=function(){self.detach(this)}.bind(node);return node}},{key:"remove",value:function remove(fn,context){if(!fn){return this.removeAll()}if(fn instanceof MiniSignalBinding){return this.detach(fn)}if(typeof fn!=="function"){throw new Error("MiniSignals#remove(): First arg must be a Function.")}var node=this._head;while(node){if(node._fn===fn&&(!context||node._context===context)){this.detach(node)}node=node._next}return this}},{key:"detach",value:function detach(node){if(!(node instanceof MiniSignalBinding)){throw new Error("MiniSignals#detach(): First arg must be a MiniSignalBinding object.")}if(!node._fn){return}if(node===this._head){this._head=node._next;if(!this._head){this._tail=null}else{this._head._prev=null}}else if(node===this._tail){this._tail=node._prev;this._tail._next=null}else{node._prev._next=node._next;node._next._prev=node._prev}node._fn=null;node._context=null}},{key:"removeAll",value:function removeAll(){var node=this._head;if(!node){return this}this._head=this._tail=null;return this}}]);return MiniSignals}();module.exports=MiniSignals;MiniSignals.MiniSignalBinding=MiniSignalBinding}); |
{ | ||
"name": "mini-signals", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"description": "signals, in JavaScript, fast", | ||
@@ -9,3 +9,3 @@ "main": "mini-signals.js", | ||
"build": "npm test && npm run babel && npm run uglify", | ||
"babel": "babel src/mini-signals.js -m umd -o mini-signals.js --no-comments", | ||
"babel": "babel src/mini-signals.js -m umd -o mini-signals.js --no-comments --module-id=MiniSignal", | ||
"uglify": "uglifyjs mini-signals.js -o mini-signals.min.js", | ||
@@ -15,3 +15,3 @@ "coverage": "istanbul cover -- ./node_modules/mocha/bin/_mocha --compilers js:babel/register", | ||
"bench": "node ./bench/emit.js", | ||
"prepublish": "npm run mocha && npm run babel" | ||
"prepublish": "npm run mocha && npm run babel && npm run uglify" | ||
}, | ||
@@ -18,0 +18,0 @@ "repository": { |
@@ -26,7 +26,15 @@ # mini-signals | ||
### bower: | ||
``` | ||
bower install mini-signals | ||
``` | ||
## Example Usage | ||
***When not using a module loader the mini-signals constructor (`MiniSignal`) is global.*** | ||
``` | ||
var Signal = require('mini-signals'); | ||
var mySignal = new Signal(); | ||
var MiniSignal = require('mini-signals'); | ||
var mySignal = new MiniSignal(); | ||
@@ -50,3 +58,3 @@ var binding = mySignal.add(onSignal); //add listener | ||
foo: 'bar', | ||
updated: new Signal() | ||
updated: new MiniSignal() | ||
} | ||
@@ -53,0 +61,0 @@ |
@@ -50,2 +50,24 @@ /*jshint -W097 */ | ||
/** | ||
* Return a list of assigned event handels. | ||
* | ||
* @param {Boolean} exists We only need to know if there are handlers. | ||
* @returns {Array|Boolean} | ||
* @api public | ||
*/ | ||
handlers(exists) { | ||
var node = this._head; | ||
if (exists) { return !!node; } | ||
var ee = []; | ||
while (node) { | ||
ee.push(node); | ||
node = node._next; | ||
} | ||
return ee; | ||
} | ||
/** | ||
* Emit an event to all registered event listeners. | ||
@@ -199,1 +221,4 @@ * | ||
} | ||
// Also export MiniSignalBinding class | ||
MiniSignals.MiniSignalBinding = MiniSignalBinding; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
19201
360
77