Socket
Socket
Sign inDemoInstall

mini-signals

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mini-signals - npm Package Compare versions

Comparing version 0.0.5 to 0.0.6

24

mini-signals.js
(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;
});

2

mini-signals.min.js

@@ -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;
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc