Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

delorean

Package Overview
Dependencies
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

delorean - npm Package Compare versions

Comparing version 0.9.6-0 to 0.9.7

20

dist/delorean.js

@@ -1,2 +0,2 @@

/*! delorean - v0.9.4 - 2015-08-18 */
/*! delorean - v0.9.6-0 - 2015-08-24 */
(function (DeLorean) {

@@ -99,3 +99,3 @@ 'use strict';

// you can change it using `DeLorean.Flux.define('EventEmitter', AnotherEventEmitter)`
DeLorean.EventEmitter.defaultMaxListeners = 100;
DeLorean.EventEmitter.defaultMaxListeners = 50;
this.listener = new DeLorean.EventEmitter();

@@ -157,6 +157,12 @@ this.stores = stores;

function __promiseGenerator(store) {
// `DeLorean.Promise` is `require('es6-promise').Promise` by default.
// you can change it using `DeLorean.Flux.define('Promise', AnotherPromise)`
// resolve on change
// reject on rollback
// cleanup_{actionName} will be fired after the action handler (in store.dispatchAction) to cleanup unused events
return new DeLorean.Promise(function (resolve, reject) {
store.listener.once('change', resolve);
store.listener.once('rollback', reject);
store.listener.once('cleanup_' + actionName, function () {
store.listener.removeListener('change', resolve);
store.listener.removeListener('rollback', reject);
});
});

@@ -450,2 +456,4 @@ }

this.listener.emit(__generateActionName(actionName), data);
// The cleanup_{actionName} event removes any remaining listeners after the action was fully handled
this.listener.emit('cleanup_' + actionName);
};

@@ -870,4 +878,4 @@

exports.asap = asap;
}).call(this,require("+NscNm"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"+NscNm":12}],4:[function(require,module,exports){
}).call(this,require("JkpR2F"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"JkpR2F":12}],4:[function(require,module,exports){
"use strict";

@@ -874,0 +882,0 @@ var config = {

@@ -1,2 +0,2 @@

!function(DeLorean){"use strict";function a(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function b(a){return"action:"+a}function c(a){return"original:"+a}function d(a){if(null==DeLorean.dispatcher)throw'No dispatcher found. The DeLoreanJS mixin requires a "dispatcher" has been created using Flux.createDispatcher.';return DeLorean.dispatcher}function e(b){if(null===b||"object"!=typeof b)return b;var c=b.constructor();for(var d in b)a(b,d)&&(c[d]=e(b[d]));return c}function f(a,b){b=e(b);for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var Dispatcher,Store;if(Dispatcher=function(){function a(a){function b(){for(var b in a)a[b].listener.emit("__rollback")}for(var c in a)a[c].listener.on("rollback",b)}function Dispatcher(b){DeLorean.EventEmitter.defaultMaxListeners=100,this.listener=new DeLorean.EventEmitter,this.stores=b,a(Object.keys(b).map(function(a){return b[a]}))}return Dispatcher.prototype.dispatch=function(){var a,b,c,d=this;c=Array.prototype.slice.call(arguments),this.listener.emit.apply(this.listener,["dispatch"].concat(c)),a=function(){var a,b=[];for(var c in d.stores){if(a=d.stores[c],!a instanceof Store)throw"Given store is not a store instance";b.push(a)}return b}(),b=this.waitFor(a,c[0]);for(var e in d.stores)d.stores[e].dispatchAction.apply(d.stores[e],c);return b},Dispatcher.prototype.waitFor=function(a,b){var c,d=this;return c=function(){function c(a){return new DeLorean.Promise(function(b,c){a.listener.once("change",b)})}var d,e=[];for(var f in a)a[f].actions&&null!=a[f].actions[b]&&(d=c(a[f]),e.push(d));return e}(),DeLorean.Promise.all(c).then(function(){d.listener.emit("change:all")})},Dispatcher.prototype.registerAction=function(a,b){if("function"!=typeof b)throw"Action callback should be a function.";this[a]=b.bind(this.stores)},Dispatcher.prototype.register=function(a){if("function"!=typeof a)throw"Global callback should be a function.";this.listener.on("dispatch",a)},Dispatcher.prototype.getStore=function(a){if(!this.stores[a])throw"Store "+a+" does not exist.";return this.stores[a].getState()},Dispatcher.prototype.on=function(){return this.listener.on.apply(this.listener,arguments)},Dispatcher.prototype.off=function(){return this.listener.removeListener.apply(this.listener,arguments)},Dispatcher.prototype.emit=function(){return this.listener.emit.apply(this.listener,arguments)},Dispatcher}(),Store=function(){function Store(a){this.state||(this.state={}),this.listener=new DeLorean.EventEmitter,this.bindActions(),this.buildScheme(),this.initialize.apply(this,arguments)}return Store.prototype.initialize=function(){},Store.prototype.get=function(a){return this.state[a]},Store.prototype.set=function(a,b){var c=[];if("object"==typeof a)for(var d in a)c.push(d),this.setValue(d,a[d]);else c.push(a),this.setValue(a,b);return this.recalculate(c),this.state[a]},Store.prototype.setValue=function(a,b){var d,e=this.scheme;return e&&this.scheme[a]?(d=e[a],this.state[a]="undefined"!=typeof b?b:d["default"],"function"==typeof d.calculate&&(this.state[c(a)]=b,this.state[a]=d.calculate.call(this,b))):null!=console&&console.warn("Scheme must include the key, "+a+", you are trying to set. "+a+" will NOT be set on the store."),this.state[a]},Store.prototype.formatScheme=function(a){var b,c,d,e={};for(var f in a)b=a[f],c=null,d=null,e[f]={"default":null},c=b&&"object"==typeof b?b["default"]:b,e[f]["default"]=c,b&&"function"==typeof b.calculate?(d=b.calculate,b.deps?e[f].deps=b.deps:e[f].deps=[]):"function"==typeof b&&(d=b),d&&(e[f].calculate=d);return e},Store.prototype.buildScheme=function(){var a,b,d,f,g,h,i=[];if("object"==typeof this.scheme){a=this.scheme=this.formatScheme(this.scheme),f=this.__dependencyMap={};for(b in a)d=a[b],this.state[b]=e(d["default"]);for(b in a)if(d=a[b],d.calculate){g=d.deps||[];for(var j=0;j<g.length;j++)h=g[j],null==f[h]&&(f[h]=[]),f[h].push(b);this.state[c(b)]=d["default"],this.state[b]=d.calculate.call(this,d["default"]),i.push(b)}this.recalculate(i)}},Store.prototype.recalculate=function(a){for(var b,d,e,f=this.scheme,g=this.__dependencyMap,h=[],i=0;i<a.length;i++)if(d=g[a[i]],null!=d)for(var j=0;j<d.length;j++)e=d[j],-1===h.indexOf(e)&&(b=f[e],this.state[e]=b.calculate.call(this,this.state[c(e)]||b["default"]),h.push(e));h.length>0&&this.recalculate(h),this.listener.emit("change")},Store.prototype.getState=function(){return this.state},Store.prototype.clearState=function(){return this.state={},this},Store.prototype.resetState=function(){return this.buildScheme(),this.listener.emit("change"),this},Store.prototype.bindActions=function(){var c;this.emitChange=this.listener.emit.bind(this.listener,"change"),this.emitRollback=this.listener.emit.bind(this.listener,"rollback"),this.rollback=this.listener.on.bind(this.listener,"__rollback"),this.emit=this.listener.emit.bind(this.listener);for(var d in this.actions)if(a(this.actions,d)){if(c=this.actions[d],"function"!=typeof this[c])throw"Callback '"+c+"' defined for action '"+d+"' should be a method defined on the store!";this.listener.on(b(d),this[c].bind(this))}},Store.prototype.dispatchAction=function(a,c){this.listener.emit(b(a),c)},Store.prototype.listenChanges=function(a){var b,c=this;return Object.observe?(b=Array.isArray(a)?Array.observe:Object.observe,void b(a,function(a){c.listener.emit("change",a)})):void console.error("Store#listenChanges method uses Object.observe, you should fire changes manually.")},Store.prototype.onChange=function(a){this.listener.on("change",a)},Store}(),DeLorean.Flux={createStore:function(a){if("object"!=typeof a)throw"Stores should be defined by passing the definition to the constructor";var b=function(){return Store.apply(this,arguments)},c=function(){this.constructor=b};return c.prototype=Store.prototype,b.prototype=new c,f(b.prototype,a),new b},createDispatcher:function(b){var c,d,e,f,g;"function"==typeof b.getStores&&(c=b.getStores()),d=new Dispatcher(c||{});for(var h in b)a(b,h)&&"getStores"!==h&&"viewTriggers"!==h&&"function"==typeof b[h]&&(e=b[h],d.registerAction(h,e.bind(d)));f=b.viewTriggers;for(var i in f)g=f[i],"function"==typeof d[g]?d.on(i,d[g]):null!=console&&console.warn(g+" should be a method defined on your dispatcher. The "+i+" trigger will not be bound to any method.");return null!=DeLorean.dispatcher&&null!=console&&console.warn("You are attempting to create more than one dispatcher. DeLorean is intended to be used with a single dispatcher. This latest dispatcher created will overwrite any previous versions."),DeLorean.dispatcher=d,d},define:function(a,b){DeLorean[a]=b}},DeLorean.Dispatcher=Dispatcher,DeLorean.Store=Store,DeLorean.Flux.mixins={storeListener:{trigger:function(){this.__dispatcher.emit.apply(this.__dispatcher,arguments)},componentDidMount:function(){function b(a,b){return function(){var a;e.isMounted()&&e.setState(e.getStoreStates()),e.storeDidChange&&(a=[b].concat(Array.prototype.slice.call(arguments,0)),e.storeDidChange.apply(e,a))}}var c,d,e=this;this.__changeHandlers={};for(d in this.__watchStores)a(this.stores,d)&&(c=this.stores[d],this.__changeHandlers[d]=b(c,d),c.onChange(this.__changeHandlers[d]))},componentWillUnmount:function(){for(var b in this.__changeHandlers)if(a(this.stores,b)){var c=this.stores[b];c.listener.removeListener("change",this.__changeHandlers[b])}},getInitialState:function(){var a,b=this;if(this.__dispatcher=d(this),this.storesDidChange&&this.__dispatcher.on("change:all",function(){b.storesDidChange()}),this.stores=this.__dispatcher.stores,this.__watchStores={},null!=this.watchStores)for(var c=0;c<this.watchStores.length;c++)a=this.watchStores[c],this.__watchStores[a]=this.stores[a];else this.__watchStores=this.stores,null!=console&&null!=Object.keys&&Object.keys(this.stores).length>4&&console.warn('Your component is watching changes on all stores, you may want to define a "watchStores" property in order to only watch stores relevant to this component.');return this.getStoreStates()},getStoreStates:function(){var b={stores:{}};for(var c in this.__watchStores)a(this.stores,c)&&(b.stores[c]=this.__watchStores[c].getState());return b},getStore:function(a){if(null!=console&&"undefined"==typeof this.__watchStores[a]){var b;b="Attempt to getStore "+a+" failed. ",b+="undefined"==typeof this.stores[a]?"It is not defined on the dispatcher. ":"It is not being watched by the component. ",b+=null!=this.constructor&&null!=this.constructor.displayName?"Check the "+this.constructor.displayName+" component.":"",console.warn(b)}return this.state.stores[a]}}},"undefined"!=typeof module&&"undefined"!=typeof module.exports){var g=require("./requirements");for(var h in g)DeLorean.Flux.define(h,g[h]);module.exports=DeLorean}else"function"==typeof define&&define.amd?define(["./requirements.js"],function(a){for(var b in a)DeLorean.Flux.define(b,a[b]);return DeLorean}):window.DeLorean=DeLorean}({}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./promise/promise").Promise,e=a("./promise/polyfill").polyfill;c.Promise=d,c.polyfill=e},{"./promise/polyfill":5,"./promise/promise":6}],2:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){e(a,b)}}function e(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j<a.length;j++)g=a[j],g&&f(g.then)?g.then(d(j),c):e(j,g)})}var e=a("./utils").isArray,f=a("./utils").isFunction;c.all=d},{"./utils":10}],3:[function(a,b,c){(function(a,b){"use strict";function d(){return function(){a.nextTick(g)}}function e(){var a=0,b=new k(g),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function f(){return function(){l.setTimeout(g,1)}}function g(){for(var a=0;a<m.length;a++){var b=m[a],c=b[0],d=b[1];c(d)}m=[]}function h(a,b){var c=m.push([a,b]);1===c&&i()}var i,j="undefined"!=typeof window?window:{},k=j.MutationObserver||j.WebKitMutationObserver,l="undefined"!=typeof b?b:void 0===this?window:this,m=[];i="undefined"!=typeof a&&"[object process]"==={}.toString.call(a)?d():k?e():f(),c.asap=h}).call(this,a("+NscNm"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"+NscNm":12}],4:[function(a,b,c){"use strict";function d(a,b){return 2!==arguments.length?e[a]:void(e[a]=b)}var e={instrument:!1};c.config=e,c.configure=d},{}],5:[function(a,b,c){(function(b){"use strict";function d(){var a;a="undefined"!=typeof b?b:"undefined"!=typeof window&&window.document?window:self;var c="Promise"in a&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),f(b)}();c||(a.Promise=e)}var e=a("./promise").Promise,f=a("./utils").isFunction;c.polyfill=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./promise":6,"./utils":10}],6:[function(a,b,c){"use strict";function d(a){if(!q(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof d))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],e(a,this)}function e(a,b){function c(a){j(b,a)}function d(a){l(b,a)}try{a(c,d)}catch(e){d(e)}}function f(a,b,c,d){var e,f,g,h,k=q(c);if(k)try{e=c(d),g=!0}catch(m){h=!0,f=m}else e=d,g=!0;i(b,e)||(k&&g?j(b,e):h?l(b,f):a===y?j(b,e):a===z&&l(b,e))}function g(a,b,c,d){var e=a._subscribers,f=e.length;e[f]=b,e[f+y]=c,e[f+z]=d}function h(a,b){for(var c,d,e=a._subscribers,g=a._detail,h=0;h<e.length;h+=3)c=e[h],d=e[h+b],f(b,c,d,g);a._subscribers=null}function i(a,b){var c,d=null;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(p(b)&&(d=b.then,q(d)))return d.call(b,function(d){return c?!0:(c=!0,void(b!==d?j(a,d):k(a,d)))},function(b){return c?!0:(c=!0,void l(a,b))}),!0}catch(e){return c?!0:(l(a,e),!0)}return!1}function j(a,b){a===b?k(a,b):i(a,b)||k(a,b)}function k(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(m,a))}function l(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(n,a))}function m(a){h(a,a._state=y)}function n(a){h(a,a._state=z)}var o=a("./config").config,p=(a("./config").configure,a("./utils").objectOrFunction),q=a("./utils").isFunction,r=(a("./utils").now,a("./all").all),s=a("./race").race,t=a("./resolve").resolve,u=a("./reject").reject,v=a("./asap").asap;o.async=v;var w=void 0,x=0,y=1,z=2;d.prototype={constructor:d,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this,d=new this.constructor(function(){});if(this._state){var e=arguments;o.async(function(){f(c._state,d,e[c._state-1],c._detail)})}else g(this,d,a,b);return d},"catch":function(a){return this.then(null,a)}},d.all=r,d.race=s,d.resolve=t,d.reject=u,c.Promise=d},{"./all":2,"./asap":3,"./config":4,"./race":7,"./reject":8,"./resolve":9,"./utils":10}],7:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to race.");return new b(function(b,c){for(var d,e=0;e<a.length;e++)d=a[e],d&&"function"==typeof d.then?d.then(b,c):b(d)})}var e=a("./utils").isArray;c.race=d},{"./utils":10}],8:[function(a,b,c){"use strict";function d(a){var b=this;return new b(function(b,c){c(a)})}c.reject=d},{}],9:[function(a,b,c){"use strict";function d(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b=this;return new b(function(b){b(a)})}c.resolve=d},{}],10:[function(a,b,c){"use strict";function d(a){return e(a)||"object"==typeof a&&null!==a}function e(a){return"function"==typeof a}function f(a){return"[object Array]"===Object.prototype.toString.call(a)}var g=Date.now||function(){return(new Date).getTime()};c.objectOrFunction=d,c.isFunction=e,c.isArray=f,c.now=g},{}],11:[function(a,b,c){function d(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(a){return"function"==typeof a}function f(a){return"number"==typeof a}function g(a){return"object"==typeof a&&null!==a}function h(a){return void 0===a}b.exports=d,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._maxListeners=void 0,d.defaultMaxListeners=10,d.prototype.setMaxListeners=function(a){if(!f(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},d.prototype.emit=function(a){var b,c,d,f,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||g(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],h(c))return!1;if(e(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];c.apply(this,f)}else if(g(c)){for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];for(j=c.slice(),d=j.length,i=0;d>i;i++)j[i].apply(this,f)}return!0},d.prototype.addListener=function(a,b){var c;if(!e(b))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,e(b.listener)?b.listener:b),this._events[a]?g(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,g(this._events[a])&&!this._events[a].warned){var c;c=h(this._maxListeners)?d.defaultMaxListeners:this._maxListeners,c&&c>0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-->0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(0>d)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?e(a._events[b])?1:a._events[b].length:0}},{}],12:[function(a,b,c){function d(){}var e=b.exports={};e.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=d,e.addListener=d,e.once=d,e.off=d,e.removeListener=d,e.removeAllListeners=d,e.emit=d,e.binding=function(a){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(a){throw new Error("process.chdir is not supported")}},{}],13:[function(a,b,c){var d;if("undefined"!=typeof b&&"undefined"!=typeof b.exports?b.exports=d={EventEmitter:a("events").EventEmitter,Promise:a("es6-promise").Promise}:"function"==typeof define&&define.amd?define(function(a,b,c){a("events"),a("es6-promise");return{EventEmitter:a("events").EventEmitter,Promise:a("es6-promise").Promise}}):window.DeLorean=DeLorean,"undefined"!=typeof DeLorean)for(var e in d)DeLorean.Flux.define(e,d[e])},{"es6-promise":1,events:11}]},{},[13]);
!function(DeLorean){"use strict";function a(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function b(a){return"action:"+a}function c(a){return"original:"+a}function d(a){if(null==DeLorean.dispatcher)throw'No dispatcher found. The DeLoreanJS mixin requires a "dispatcher" has been created using Flux.createDispatcher.';return DeLorean.dispatcher}function e(b){if(null===b||"object"!=typeof b)return b;var c=b.constructor();for(var d in b)a(b,d)&&(c[d]=e(b[d]));return c}function f(a,b){b=e(b);for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var Dispatcher,Store;if(Dispatcher=function(){function a(a){function b(){for(var b in a)a[b].listener.emit("__rollback")}for(var c in a)a[c].listener.on("rollback",b)}function Dispatcher(b){DeLorean.EventEmitter.defaultMaxListeners=50,this.listener=new DeLorean.EventEmitter,this.stores=b,a(Object.keys(b).map(function(a){return b[a]}))}return Dispatcher.prototype.dispatch=function(){var a,b,c,d=this;c=Array.prototype.slice.call(arguments),this.listener.emit.apply(this.listener,["dispatch"].concat(c)),a=function(){var a,b=[];for(var c in d.stores){if(a=d.stores[c],!a instanceof Store)throw"Given store is not a store instance";b.push(a)}return b}(),b=this.waitFor(a,c[0]);for(var e in d.stores)d.stores[e].dispatchAction.apply(d.stores[e],c);return b},Dispatcher.prototype.waitFor=function(a,b){var c,d=this;return c=function(){function c(a){return new DeLorean.Promise(function(c,d){a.listener.once("change",c),a.listener.once("rollback",d),a.listener.once("cleanup_"+b,function(){a.listener.removeListener("change",c),a.listener.removeListener("rollback",d)})})}var d,e=[];for(var f in a)a[f].actions&&null!=a[f].actions[b]&&(d=c(a[f]),e.push(d));return e}(),DeLorean.Promise.all(c).then(function(){d.listener.emit("change:all")})},Dispatcher.prototype.registerAction=function(a,b){if("function"!=typeof b)throw"Action callback should be a function.";this[a]=b.bind(this.stores)},Dispatcher.prototype.register=function(a){if("function"!=typeof a)throw"Global callback should be a function.";this.listener.on("dispatch",a)},Dispatcher.prototype.getStore=function(a){if(!this.stores[a])throw"Store "+a+" does not exist.";return this.stores[a].getState()},Dispatcher.prototype.on=function(){return this.listener.on.apply(this.listener,arguments)},Dispatcher.prototype.off=function(){return this.listener.removeListener.apply(this.listener,arguments)},Dispatcher.prototype.emit=function(){return this.listener.emit.apply(this.listener,arguments)},Dispatcher}(),Store=function(){function Store(a){this.state||(this.state={}),this.listener=new DeLorean.EventEmitter,this.bindActions(),this.buildScheme(),this.initialize.apply(this,arguments)}return Store.prototype.initialize=function(){},Store.prototype.get=function(a){return this.state[a]},Store.prototype.set=function(a,b){var c=[];if("object"==typeof a)for(var d in a)c.push(d),this.setValue(d,a[d]);else c.push(a),this.setValue(a,b);return this.recalculate(c),this.state[a]},Store.prototype.setValue=function(a,b){var d,e=this.scheme;return e&&this.scheme[a]?(d=e[a],this.state[a]="undefined"!=typeof b?b:d["default"],"function"==typeof d.calculate&&(this.state[c(a)]=b,this.state[a]=d.calculate.call(this,b))):null!=console&&console.warn("Scheme must include the key, "+a+", you are trying to set. "+a+" will NOT be set on the store."),this.state[a]},Store.prototype.formatScheme=function(a){var b,c,d,e={};for(var f in a)b=a[f],c=null,d=null,e[f]={"default":null},c=b&&"object"==typeof b?b["default"]:b,e[f]["default"]=c,b&&"function"==typeof b.calculate?(d=b.calculate,b.deps?e[f].deps=b.deps:e[f].deps=[]):"function"==typeof b&&(d=b),d&&(e[f].calculate=d);return e},Store.prototype.buildScheme=function(){var a,b,d,f,g,h,i=[];if("object"==typeof this.scheme){a=this.scheme=this.formatScheme(this.scheme),f=this.__dependencyMap={};for(b in a)d=a[b],this.state[b]=e(d["default"]);for(b in a)if(d=a[b],d.calculate){g=d.deps||[];for(var j=0;j<g.length;j++)h=g[j],null==f[h]&&(f[h]=[]),f[h].push(b);this.state[c(b)]=d["default"],this.state[b]=d.calculate.call(this,d["default"]),i.push(b)}this.recalculate(i)}},Store.prototype.recalculate=function(a){for(var b,d,e,f=this.scheme,g=this.__dependencyMap,h=[],i=0;i<a.length;i++)if(d=g[a[i]],null!=d)for(var j=0;j<d.length;j++)e=d[j],-1===h.indexOf(e)&&(b=f[e],this.state[e]=b.calculate.call(this,this.state[c(e)]||b["default"]),h.push(e));h.length>0&&this.recalculate(h),this.listener.emit("change")},Store.prototype.getState=function(){return this.state},Store.prototype.clearState=function(){return this.state={},this},Store.prototype.resetState=function(){return this.buildScheme(),this.listener.emit("change"),this},Store.prototype.bindActions=function(){var c;this.emitChange=this.listener.emit.bind(this.listener,"change"),this.emitRollback=this.listener.emit.bind(this.listener,"rollback"),this.rollback=this.listener.on.bind(this.listener,"__rollback"),this.emit=this.listener.emit.bind(this.listener);for(var d in this.actions)if(a(this.actions,d)){if(c=this.actions[d],"function"!=typeof this[c])throw"Callback '"+c+"' defined for action '"+d+"' should be a method defined on the store!";this.listener.on(b(d),this[c].bind(this))}},Store.prototype.dispatchAction=function(a,c){this.listener.emit(b(a),c),this.listener.emit("cleanup_"+a)},Store.prototype.listenChanges=function(a){var b,c=this;return Object.observe?(b=Array.isArray(a)?Array.observe:Object.observe,void b(a,function(a){c.listener.emit("change",a)})):void console.error("Store#listenChanges method uses Object.observe, you should fire changes manually.")},Store.prototype.onChange=function(a){this.listener.on("change",a)},Store}(),DeLorean.Flux={createStore:function(a){if("object"!=typeof a)throw"Stores should be defined by passing the definition to the constructor";var b=function(){return Store.apply(this,arguments)},c=function(){this.constructor=b};return c.prototype=Store.prototype,b.prototype=new c,f(b.prototype,a),new b},createDispatcher:function(b){var c,d,e,f,g;"function"==typeof b.getStores&&(c=b.getStores()),d=new Dispatcher(c||{});for(var h in b)a(b,h)&&"getStores"!==h&&"viewTriggers"!==h&&"function"==typeof b[h]&&(e=b[h],d.registerAction(h,e.bind(d)));f=b.viewTriggers;for(var i in f)g=f[i],"function"==typeof d[g]?d.on(i,d[g]):null!=console&&console.warn(g+" should be a method defined on your dispatcher. The "+i+" trigger will not be bound to any method.");return null!=DeLorean.dispatcher&&null!=console&&console.warn("You are attempting to create more than one dispatcher. DeLorean is intended to be used with a single dispatcher. This latest dispatcher created will overwrite any previous versions."),DeLorean.dispatcher=d,d},define:function(a,b){DeLorean[a]=b}},DeLorean.Dispatcher=Dispatcher,DeLorean.Store=Store,DeLorean.Flux.mixins={storeListener:{trigger:function(){this.__dispatcher.emit.apply(this.__dispatcher,arguments)},componentDidMount:function(){function b(a,b){return function(){var a;e.isMounted()&&e.setState(e.getStoreStates()),e.storeDidChange&&(a=[b].concat(Array.prototype.slice.call(arguments,0)),e.storeDidChange.apply(e,a))}}var c,d,e=this;this.__changeHandlers={};for(d in this.__watchStores)a(this.stores,d)&&(c=this.stores[d],this.__changeHandlers[d]=b(c,d),c.onChange(this.__changeHandlers[d]))},componentWillUnmount:function(){for(var b in this.__changeHandlers)if(a(this.stores,b)){var c=this.stores[b];c.listener.removeListener("change",this.__changeHandlers[b])}},getInitialState:function(){var a,b=this;if(this.__dispatcher=d(this),this.storesDidChange&&this.__dispatcher.on("change:all",function(){b.storesDidChange()}),this.stores=this.__dispatcher.stores,this.__watchStores={},null!=this.watchStores)for(var c=0;c<this.watchStores.length;c++)a=this.watchStores[c],this.__watchStores[a]=this.stores[a];else this.__watchStores=this.stores,null!=console&&null!=Object.keys&&Object.keys(this.stores).length>4&&console.warn('Your component is watching changes on all stores, you may want to define a "watchStores" property in order to only watch stores relevant to this component.');return this.getStoreStates()},getStoreStates:function(){var b={stores:{}};for(var c in this.__watchStores)a(this.stores,c)&&(b.stores[c]=this.__watchStores[c].getState());return b},getStore:function(a){if(null!=console&&"undefined"==typeof this.__watchStores[a]){var b;b="Attempt to getStore "+a+" failed. ",b+="undefined"==typeof this.stores[a]?"It is not defined on the dispatcher. ":"It is not being watched by the component. ",b+=null!=this.constructor&&null!=this.constructor.displayName?"Check the "+this.constructor.displayName+" component.":"",console.warn(b)}return this.state.stores[a]}}},"undefined"!=typeof module&&"undefined"!=typeof module.exports){var g=require("./requirements");for(var h in g)DeLorean.Flux.define(h,g[h]);module.exports=DeLorean}else"function"==typeof define&&define.amd?define(["./requirements.js"],function(a){for(var b in a)DeLorean.Flux.define(b,a[b]);return DeLorean}):window.DeLorean=DeLorean}({}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./promise/promise").Promise,e=a("./promise/polyfill").polyfill;c.Promise=d,c.polyfill=e},{"./promise/polyfill":5,"./promise/promise":6}],2:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){e(a,b)}}function e(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j<a.length;j++)g=a[j],g&&f(g.then)?g.then(d(j),c):e(j,g)})}var e=a("./utils").isArray,f=a("./utils").isFunction;c.all=d},{"./utils":10}],3:[function(a,b,c){(function(a,b){"use strict";function d(){return function(){a.nextTick(g)}}function e(){var a=0,b=new k(g),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function f(){return function(){l.setTimeout(g,1)}}function g(){for(var a=0;a<m.length;a++){var b=m[a],c=b[0],d=b[1];c(d)}m=[]}function h(a,b){var c=m.push([a,b]);1===c&&i()}var i,j="undefined"!=typeof window?window:{},k=j.MutationObserver||j.WebKitMutationObserver,l="undefined"!=typeof b?b:void 0===this?window:this,m=[];i="undefined"!=typeof a&&"[object process]"==={}.toString.call(a)?d():k?e():f(),c.asap=h}).call(this,a("JkpR2F"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{JkpR2F:12}],4:[function(a,b,c){"use strict";function d(a,b){return 2!==arguments.length?e[a]:void(e[a]=b)}var e={instrument:!1};c.config=e,c.configure=d},{}],5:[function(a,b,c){(function(b){"use strict";function d(){var a;a="undefined"!=typeof b?b:"undefined"!=typeof window&&window.document?window:self;var c="Promise"in a&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),f(b)}();c||(a.Promise=e)}var e=a("./promise").Promise,f=a("./utils").isFunction;c.polyfill=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./promise":6,"./utils":10}],6:[function(a,b,c){"use strict";function d(a){if(!q(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof d))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],e(a,this)}function e(a,b){function c(a){j(b,a)}function d(a){l(b,a)}try{a(c,d)}catch(e){d(e)}}function f(a,b,c,d){var e,f,g,h,k=q(c);if(k)try{e=c(d),g=!0}catch(m){h=!0,f=m}else e=d,g=!0;i(b,e)||(k&&g?j(b,e):h?l(b,f):a===y?j(b,e):a===z&&l(b,e))}function g(a,b,c,d){var e=a._subscribers,f=e.length;e[f]=b,e[f+y]=c,e[f+z]=d}function h(a,b){for(var c,d,e=a._subscribers,g=a._detail,h=0;h<e.length;h+=3)c=e[h],d=e[h+b],f(b,c,d,g);a._subscribers=null}function i(a,b){var c,d=null;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(p(b)&&(d=b.then,q(d)))return d.call(b,function(d){return c?!0:(c=!0,void(b!==d?j(a,d):k(a,d)))},function(b){return c?!0:(c=!0,void l(a,b))}),!0}catch(e){return c?!0:(l(a,e),!0)}return!1}function j(a,b){a===b?k(a,b):i(a,b)||k(a,b)}function k(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(m,a))}function l(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(n,a))}function m(a){h(a,a._state=y)}function n(a){h(a,a._state=z)}var o=a("./config").config,p=(a("./config").configure,a("./utils").objectOrFunction),q=a("./utils").isFunction,r=(a("./utils").now,a("./all").all),s=a("./race").race,t=a("./resolve").resolve,u=a("./reject").reject,v=a("./asap").asap;o.async=v;var w=void 0,x=0,y=1,z=2;d.prototype={constructor:d,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this,d=new this.constructor(function(){});if(this._state){var e=arguments;o.async(function(){f(c._state,d,e[c._state-1],c._detail)})}else g(this,d,a,b);return d},"catch":function(a){return this.then(null,a)}},d.all=r,d.race=s,d.resolve=t,d.reject=u,c.Promise=d},{"./all":2,"./asap":3,"./config":4,"./race":7,"./reject":8,"./resolve":9,"./utils":10}],7:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to race.");return new b(function(b,c){for(var d,e=0;e<a.length;e++)d=a[e],d&&"function"==typeof d.then?d.then(b,c):b(d)})}var e=a("./utils").isArray;c.race=d},{"./utils":10}],8:[function(a,b,c){"use strict";function d(a){var b=this;return new b(function(b,c){c(a)})}c.reject=d},{}],9:[function(a,b,c){"use strict";function d(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b=this;return new b(function(b){b(a)})}c.resolve=d},{}],10:[function(a,b,c){"use strict";function d(a){return e(a)||"object"==typeof a&&null!==a}function e(a){return"function"==typeof a}function f(a){return"[object Array]"===Object.prototype.toString.call(a)}var g=Date.now||function(){return(new Date).getTime()};c.objectOrFunction=d,c.isFunction=e,c.isArray=f,c.now=g},{}],11:[function(a,b,c){function d(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(a){return"function"==typeof a}function f(a){return"number"==typeof a}function g(a){return"object"==typeof a&&null!==a}function h(a){return void 0===a}b.exports=d,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._maxListeners=void 0,d.defaultMaxListeners=10,d.prototype.setMaxListeners=function(a){if(!f(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},d.prototype.emit=function(a){var b,c,d,f,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||g(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],h(c))return!1;if(e(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];c.apply(this,f)}else if(g(c)){for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];for(j=c.slice(),d=j.length,i=0;d>i;i++)j[i].apply(this,f)}return!0},d.prototype.addListener=function(a,b){var c;if(!e(b))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,e(b.listener)?b.listener:b),this._events[a]?g(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,g(this._events[a])&&!this._events[a].warned){var c;c=h(this._maxListeners)?d.defaultMaxListeners:this._maxListeners,c&&c>0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-->0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(0>d)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?e(a._events[b])?1:a._events[b].length:0}},{}],12:[function(a,b,c){function d(){}var e=b.exports={};e.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=d,e.addListener=d,e.once=d,e.off=d,e.removeListener=d,e.removeAllListeners=d,e.emit=d,e.binding=function(a){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(a){throw new Error("process.chdir is not supported")}},{}],13:[function(a,b,c){var d;if("undefined"!=typeof b&&"undefined"!=typeof b.exports?b.exports=d={EventEmitter:a("events").EventEmitter,Promise:a("es6-promise").Promise}:"function"==typeof define&&define.amd?define(function(a,b,c){a("events"),a("es6-promise");return{EventEmitter:a("events").EventEmitter,Promise:a("es6-promise").Promise}}):window.DeLorean=DeLorean,"undefined"!=typeof DeLorean)for(var e in d)DeLorean.Flux.define(e,d[e])},{"es6-promise":1,events:11}]},{},[13]);
//# sourceMappingURL=delorean.min.js.map

@@ -15,3 +15,8 @@ # Future of DeLorean.js

*/
class TodoStore extends Store {
@Store({
actions: {
'incoming-data': 'setData'
}
})
class TodoStore {

@@ -22,8 +27,2 @@ constructor() {

get actions() {
return {
'incoming-data': 'setData'
}
}
setData(data) {

@@ -42,10 +41,8 @@ this.data = data;

*/
class TodoDispatcher extends Dispatcher {
get stores() {
return {
'increment': store
}
@Dispatcher({
stores: {
'increment': store
}
})
class TodoDispatcher {
setData(data) {

@@ -52,0 +49,0 @@ this.dispatch('incoming-data', data);

{
"name": "delorean",
"version": "0.9.6-0",
"version": "0.9.7",
"description": "Flux Library",

@@ -5,0 +5,0 @@ "main": "src/delorean.js",

@@ -25,2 +25,3 @@ # DeLorean.js

- [Try **Flight.js** example on JSFiddle](http://jsfiddle.net/smadad/hz9nahga/1/)
- [Try **Ractive.js** example on JSFiddle](http://jsfiddle.net/2r1k2k90/33/)

@@ -156,2 +157,3 @@ ---

- Markus Ast [@rkusa](https://github.com/rkusa)
- Peter Rumenov Denev [@peterdenev](https://github.com/peterdenev)

@@ -158,0 +160,0 @@ ## Contribution

@@ -98,3 +98,3 @@ (function (DeLorean) {

// you can change it using `DeLorean.Flux.define('EventEmitter', AnotherEventEmitter)`
DeLorean.EventEmitter.defaultMaxListeners = 100;
DeLorean.EventEmitter.defaultMaxListeners = 50;
this.listener = new DeLorean.EventEmitter();

@@ -156,6 +156,12 @@ this.stores = stores;

function __promiseGenerator(store) {
// `DeLorean.Promise` is `require('es6-promise').Promise` by default.
// you can change it using `DeLorean.Flux.define('Promise', AnotherPromise)`
// resolve on change
// reject on rollback
// cleanup_{actionName} will be fired after the action handler (in store.dispatchAction) to cleanup unused events
return new DeLorean.Promise(function (resolve, reject) {
store.listener.once('change', resolve);
store.listener.once('rollback', reject);
store.listener.once('cleanup_' + actionName, function () {
store.listener.removeListener('change', resolve);
store.listener.removeListener('rollback', reject);
});
});

@@ -449,2 +455,4 @@ }

this.listener.emit(__generateActionName(actionName), data);
// The cleanup_{actionName} event removes any remaining listeners after the action was fully handled
this.listener.emit('cleanup_' + actionName);
};

@@ -451,0 +459,0 @@

@@ -10,3 +10,4 @@ describe('Flux', function () {

state: {
list: []
list: [],
text: ''
},

@@ -16,3 +17,4 @@ initialize: initializeSpy,

// Remember the `dispatch('addItem')`
addItem: 'addItemMethod'
addItem: 'addItemMethod',
noChange: 'noChangeEvent'
},

@@ -24,2 +26,5 @@ addItemMethod: function (data) {

this.emit('change');
},
noChangeEvent: function (data) {
this.state.text = data;
}

@@ -95,2 +100,19 @@ });

it('should cleanup unused events after firing an action handler', function () {
MyAppDispatcher.dispatch('noChange', 'someText')
MyAppDispatcher.dispatch('noChange', 'someText')
MyAppDispatcher.dispatch('noChange', 'someText')
MyAppDispatcher.dispatch('noChange', 'someText')
changeListenerCount = myStore.listener.listeners('change').length;
rollbackListenerCount = myStore.listener.listeners('rollback').length;
// Note that the 'cleanup_{actionName}' event has not fired yet and removed the last 2 events (change & rolback), so there will be one remaining of each event at this point.
// however, without the cleanup, there would be 4 of each after 4 calls
expect(changeListenerCount).toEqual(1);
expect(rollbackListenerCount).toEqual(1);
});
it('dispatcher can listen events', function () {

@@ -100,3 +122,2 @@ var spy = jasmine.createSpy('dispatcher listener');

MyAppDispatcher.listener.emit('hello');
expect(spy).toHaveBeenCalled();

@@ -103,0 +124,0 @@ });

Sorry, the diff of this file is not supported yet

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