Comparing version
@@ -10,3 +10,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
root["GyreJS"] = factory(root["Immutable"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_12__) { | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_13__) { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -67,3 +67,3 @@ /******/ // The module cache | ||
var _store = __webpack_require__(11); | ||
var _store = __webpack_require__(12); | ||
@@ -86,4 +86,9 @@ var _store2 = _interopRequireDefault(_store); | ||
var _middleWareInjectDispatch = __webpack_require__(11); | ||
var _middleWareInjectDispatch2 = _interopRequireDefault(_middleWareInjectDispatch); | ||
var middleWare = { | ||
dispatchLogger: _middleWareDispatchLogger2["default"] | ||
dispatchLogger: _middleWareDispatchLogger2["default"], | ||
injectDispatch: _middleWareInjectDispatch2["default"] | ||
}; | ||
@@ -106,6 +111,6 @@ | ||
if (!gyres.has(id)) { | ||
console.warn("GyreJS: Gyre factory '" + id + "' not registered."); | ||
console.warn(">> GyreJS: Gyre factory '" + id + "' not registered."); | ||
} | ||
if (usedNameSpaces.indexOf(nameSpace) !== -1) { | ||
throw new Error("GyreJS ('" + id + "'): A gyre using the namespace '" + nameSpace + "' not registered."); | ||
throw new Error(">> GyreJS ('" + id + "'): A gyre using the namespace '" + nameSpace + "' not registered."); | ||
} | ||
@@ -245,5 +250,6 @@ usedNameSpaces.push(nameSpace); | ||
if (actionMap.has(id)) { | ||
// Invoke all registered middleWare before running the final action. | ||
middleWare.reduce(function (prev, next) { | ||
return function () { | ||
return next(nameSpace, id, args, prev); | ||
return next(nameSpace, id, args, prev, dispatch); | ||
}; | ||
@@ -254,3 +260,3 @@ }, function () { | ||
} else { | ||
console.warn("GyreJS-'" + nameSpace + "'-AH: Unregistered action requested: '" + id + "' with arguments:", args); | ||
console.warn(">> GyreJS-'" + nameSpace + "'-gyre: Unregistered action dispatched: '" + id + "' with arguments:", args, ". (This is a no-op)"); | ||
} | ||
@@ -371,8 +377,8 @@ }; | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
componentWillUnmount: function componentWillUnmount() { | ||
this.unRegisterReducer(); | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
handleNewData: function handleNewData(data) { | ||
@@ -517,8 +523,8 @@ this.setState({ | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
componentWillUnmount: function componentWillUnmount() { | ||
this.unRegisterReducer(); | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
handleNewData: function handleNewData(data) { | ||
@@ -595,3 +601,3 @@ this.setState({ | ||
var dispatchLogger = function dispatchLogger(nameSpace, id, args, next) { | ||
console.log(">> GyreJS-'" + nameSpace + "'-store: Applying action '" + id + "' with arguments: ", args); | ||
console.log(">> GyreJS-'" + nameSpace + "'-gyre: Applying action '" + id + "' with arguments: ", args); | ||
next(); | ||
@@ -605,2 +611,27 @@ }; | ||
/* 11 */ | ||
/***/ function(module, exports) { | ||
/** | ||
* injectDispatch() | ||
* | ||
* @param {String} nameSpace Gyre namespace. | ||
* @param {String} id Action Id. | ||
* @param {Array} args Action arguments array. | ||
* @param {Function} next Call next function in chain. | ||
* @param {Function} dispatch Action handler dispatcher. | ||
* @returns {void} | ||
*/ | ||
"use strict"; | ||
exports.__esModule = true; | ||
var injectDispatch = function injectDispatch(nameSpace, id, args, next, dispatch) { | ||
args.push(dispatch); | ||
next(); | ||
}; | ||
exports["default"] = injectDispatch; | ||
module.exports = exports["default"]; | ||
/***/ }, | ||
/* 12 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -614,3 +645,3 @@ | ||
var _immutable = __webpack_require__(12); | ||
var _immutable = __webpack_require__(13); | ||
@@ -627,8 +658,6 @@ var _immutable2 = _interopRequireDefault(_immutable); | ||
var store = function store() { | ||
// Private variables | ||
var state = IMap({}); | ||
var reducerList = []; | ||
// Private variables | ||
var rId = 0; | ||
var reducerMap = new Map(); | ||
// Private functions | ||
@@ -641,3 +670,3 @@ /** | ||
var sendUpdate = function sendUpdate() { | ||
return reducerMap.forEach(function (reducer) { | ||
return reducerList.forEach(function (reducer) { | ||
return reducer(state); | ||
@@ -651,8 +680,10 @@ }); | ||
* | ||
* @param {Number} id Reducer Id | ||
* @param {Function} cb Reducer callback. | ||
* @returns {Function} removal function. | ||
*/ | ||
var removeReducer = function removeReducer(id) { | ||
var removeReducer = function removeReducer(cb) { | ||
return function () { | ||
return reducerMap["delete"](id); | ||
return reducerList = reducerList.filter(function (reducer) { | ||
return reducer !== cb; | ||
}); | ||
}; | ||
@@ -665,9 +696,8 @@ }; | ||
* | ||
* @param {Immutable.Map|Object} newState New state | ||
* @param {String} [nameSpace] Namespace | ||
* @param {Immutable.Map} newState New state. | ||
* @param {String} nameSpace Namespace. | ||
* @returns {Immutable.Map} state Current state | ||
*/ | ||
var setNewState = function setNewState(newState, nameSpace) { | ||
var tState = IMap.isMap(newState) ? newState : IMap(newState); | ||
state = nameSpace ? state.set(nameSpace, tState) : tState; | ||
state = state.set(nameSpace, newState); | ||
sendUpdate(); | ||
@@ -681,10 +711,8 @@ return state; | ||
* | ||
* @param {Function} cb callback | ||
* @returns {Function} un-register function | ||
* @param {Function} cb callback. | ||
* @returns {Function} un-register function. | ||
*/ | ||
var addReducer = function addReducer(cb) { | ||
var id = rId++; | ||
// Save to local register | ||
reducerMap.set(id, cb); | ||
reducerList.push(cb); | ||
@@ -695,3 +723,3 @@ // Send state to reducer | ||
// Return remover | ||
return removeReducer(id); | ||
return removeReducer(cb); | ||
}; | ||
@@ -716,3 +744,3 @@ | ||
var setState = function setState(nState, nameSpace) { | ||
return setNewState(nState, nameSpace); | ||
return setNewState(IMap.isMap(nState) ? nState : IMap(nState), nameSpace); | ||
}; | ||
@@ -735,3 +763,3 @@ | ||
} | ||
setNewState(func.apply(undefined, farg.concat(args)), nameSpace); | ||
setNewState(func.apply(undefined, farg.concat(args)) || state.get(nameSpace), nameSpace); | ||
return state; | ||
@@ -753,6 +781,6 @@ }; | ||
/***/ }, | ||
/* 12 */ | ||
/* 13 */ | ||
/***/ function(module, exports) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_12__; | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_13__; | ||
@@ -759,0 +787,0 @@ /***/ } |
@@ -1,1 +0,1 @@ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("Immutable")):"function"==typeof define&&define.amd?define(["Immutable"],e):"object"==typeof exports?exports.GyreJS=e(require("Immutable")):t.GyreJS=e(t.Immutable)}(this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var u=n[r]={exports:{},id:r,loaded:!1};return t[r].call(u.exports,u,u.exports,e),u.loaded=!0,u.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(11),a=r(u),o=n(3),i=r(o),s=n(7),c=r(s),d=n(10),f=r(d),l={dispatchLogger:f.default},p=new Map,h=a.default(),g=[],m=function(t,e){if(p.has(t)||console.warn("GyreJS: Gyre factory '"+t+"' not registered."),-1!==g.indexOf(e))throw new Error("GyreJS ('"+t+"'): A gyre using the namespace '"+e+"' not registered.");return g.push(e),p.get(t)(h,e)},v=function(t,e){p.set(t,e)};v("local",i.default),v("simpleRest",c.default),e.createGyre=m,e.middleWare=l,e.registerGyreFactory=v},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(2),a=r(u),o=function(t,e,n,r){return function(u,o){var i=o||t,s=a.default(u,i);r&&s.addActions(r);var c=function(t,n){return e(u,t,n,i)},d=function(t){return u.setState(t,i)},f=n(c);return{addAction:s.addAction,addActions:s.addActions,dispatch:s.dispatch,getReducer:c,reactHoC:f,setState:d,use:s.use}}};e.default=o,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e){var n=new Map,r=[],u=function(t){for(var u=arguments.length,a=Array(u>1?u-1:0),o=1;u>o;o++)a[o-1]=arguments[o];n.has(t)?r.reduce(function(n,r){return function(){return r(e,t,a,n)}},function(){return n.get(t)(a)})():console.warn("GyreJS-'"+e+"'-AH: Unregistered action requested: '"+t+"' with arguments:",a)},a=function(r,a,o){return n.set(r,function(n){t.updateState(e,a,n,o?u:null)})},o=function(t,e){Object.keys(t).forEach(function(n){a(n,t[n],e)})},i=function(t){r.unshift(t)};return{addAction:a,addActions:o,dispatch:u,use:i}};e.default=n,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(1),a=r(u),o=n(5),i=r(o),s=n(4),c=r(s);e.default=a.default("local",i.default,c.default),t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r=function(t){return function(e,r){return React.createClass({displayName:"GyreJS-localHoC",getInitialState:function(){return{data:null}},componentWillMount:function(){this.unRegisterReducer=t(e,this.handleNewData)},componentWillUnmount:function(){this.unRegisterReducer()},shouldComponentUpdate:function(t){return this.state.data!==t.data},handleNewData:function(t){this.setState({data:t})},render:function(){return"undefined"!=typeof this.state.data?React.createElement(r,n({},this.props,this.state)):!1}})}};e.default=r,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r){var u=function(t){var u=t.get(r),a=Array.isArray(e)?e:[e];n(u?a.reduce(function(t,e){return t[e]=u.get(e),t},{}):void 0)};return t.addReducer(u)};e.default=n,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n={},r="ADD_QUERY";n[r]=function(t,e,n){return t.get("queries").set(n,n)},e.default={passDispatch:!0,actions:n},t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(1),a=r(u),o=n(9),i=r(o),s=n(8),c=r(s),d=n(6),f=r(d);e.default=a.default("simpleRest",i.default,c.default,f.default),t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r=function(t){return function(e,r){return React.createClass({displayName:"GyreJS-localHoC",getInitialState:function(){return{data:null}},componentWillMount:function(){this.unRegisterReducer=t(e,this.handleNewData)},componentWillUnmount:function(){this.unRegisterReducer()},shouldComponentUpdate:function(t){return this.state.data!==t.data},handleNewData:function(t){this.setState({data:t})},render:function(){return"undefined"!=typeof this.state.data?React.createElement(r,n({},this.props,this.state)):!1}})}};e.default=r,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r){var u=function(t){var u=t.get(r),a=Array.isArray(e)?e:[e];n(u?a.reduce(function(t,e){return t[e]=u.get(e),t},{}):void 0)};return t.addReducer(u)};e.default=n,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r){console.log(">> GyreJS-'"+t+"'-store: Applying action '"+e+"' with arguments: ",n),r()};e.default=n,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(12),a=r(u),o=a.default.Map,i=function(){var t=o({}),e=0,n=new Map,r=function(){return n.forEach(function(e){return e(t)})},u=function(t){return function(){return n.delete(t)}},a=function(e,n){var u=o.isMap(e)?e:o(e);return t=n?t.set(n,u):u,r(),t},i=function(r){var a=e++;return n.set(a,r),r(t),u(a)},s=function(){return t},c=function(t,e){return a(t,e)},d=function(e,n,r,u){var i=[t.get(e)||o({})];return u&&i.concat(u),a(n.apply(void 0,i.concat(r)),e),t};return{addReducer:i,getState:s,setState:c,updateState:d}};e.default=i,t.exports=e.default},function(e,n){e.exports=t}])}); | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("Immutable")):"function"==typeof define&&define.amd?define(["Immutable"],e):"object"==typeof exports?exports.GyreJS=e(require("Immutable")):t.GyreJS=e(t.Immutable)}(this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var u=n[r]={exports:{},id:r,loaded:!1};return t[r].call(u.exports,u,u.exports,e),u.loaded=!0,u.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(12),a=r(u),o=n(3),i=r(o),s=n(7),c=r(s),d=n(10),f=r(d),l=n(11),p=r(l),h={dispatchLogger:f.default,injectDispatch:p.default},g=new Map,_=a.default(),m=[],y=function(t,e){if(g.has(t)||console.warn(">> GyreJS: Gyre factory '"+t+"' not registered."),-1!==m.indexOf(e))throw new Error(">> GyreJS ('"+t+"'): A gyre using the namespace '"+e+"' not registered.");return m.push(e),g.get(t)(_,e)},v=function(t,e){g.set(t,e)};v("local",i.default),v("simpleRest",c.default),e.createGyre=y,e.middleWare=h,e.registerGyreFactory=v},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(2),a=r(u),o=function(t,e,n,r){return function(u,o){var i=o||t,s=a.default(u,i);r&&s.addActions(r);var c=function(t,n){return e(u,t,n,i)},d=function(t){return u.setState(t,i)},f=n(c);return{addAction:s.addAction,addActions:s.addActions,dispatch:s.dispatch,getReducer:c,reactHoC:f,setState:d,use:s.use}}};e.default=o,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e){var n=new Map,r=[],u=function s(t){for(var u=arguments.length,a=Array(u>1?u-1:0),o=1;u>o;o++)a[o-1]=arguments[o];n.has(t)?r.reduce(function(n,r){return function(){return r(e,t,a,n,s)}},function(){return n.get(t)(a)})():console.warn(">> GyreJS-'"+e+"'-gyre: Unregistered action dispatched: '"+t+"' with arguments:",a,". (This is a no-op)")},a=function(r,a,o){return n.set(r,function(n){t.updateState(e,a,n,o?u:null)})},o=function(t,e){Object.keys(t).forEach(function(n){a(n,t[n],e)})},i=function(t){r.unshift(t)};return{addAction:a,addActions:o,dispatch:u,use:i}};e.default=n,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(1),a=r(u),o=n(5),i=r(o),s=n(4),c=r(s);e.default=a.default("local",i.default,c.default),t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r=function(t){return function(e,r){return React.createClass({displayName:"GyreJS-localHoC",getInitialState:function(){return{data:null}},componentWillMount:function(){this.unRegisterReducer=t(e,this.handleNewData)},shouldComponentUpdate:function(t){return this.state.data!==t.data},componentWillUnmount:function(){this.unRegisterReducer()},handleNewData:function(t){this.setState({data:t})},render:function(){return"undefined"!=typeof this.state.data?React.createElement(r,n({},this.props,this.state)):!1}})}};e.default=r,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r){var u=function(t){var u=t.get(r),a=Array.isArray(e)?e:[e];n(u?a.reduce(function(t,e){return t[e]=u.get(e),t},{}):void 0)};return t.addReducer(u)};e.default=n,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n={},r="ADD_QUERY";n[r]=function(t,e,n){return t.get("queries").set(n,n)},e.default={passDispatch:!0,actions:n},t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(1),a=r(u),o=n(9),i=r(o),s=n(8),c=r(s),d=n(6),f=r(d);e.default=a.default("simpleRest",i.default,c.default,f.default),t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r=function(t){return function(e,r){return React.createClass({displayName:"GyreJS-localHoC",getInitialState:function(){return{data:null}},componentWillMount:function(){this.unRegisterReducer=t(e,this.handleNewData)},shouldComponentUpdate:function(t){return this.state.data!==t.data},componentWillUnmount:function(){this.unRegisterReducer()},handleNewData:function(t){this.setState({data:t})},render:function(){return"undefined"!=typeof this.state.data?React.createElement(r,n({},this.props,this.state)):!1}})}};e.default=r,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r){var u=function(t){var u=t.get(r),a=Array.isArray(e)?e:[e];n(u?a.reduce(function(t,e){return t[e]=u.get(e),t},{}):void 0)};return t.addReducer(u)};e.default=n,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r){console.log(">> GyreJS-'"+t+"'-gyre: Applying action '"+e+"' with arguments: ",n),r()};e.default=n,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r,u){n.push(u),r()};e.default=n,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(13),a=r(u),o=a.default.Map,i=function(){var t=o({}),e=[],n=function(){return e.forEach(function(e){return e(t)})},r=function(t){return function(){return e=e.filter(function(e){return e!==t})}},u=function(e,r){return t=t.set(r,e),n(),t},a=function(n){return e.push(n),n(t),r(n)},i=function(){return t},s=function(t,e){return u(o.isMap(t)?t:o(t),e)},c=function(e,n,r,a){var i=[t.get(e)||o({})];return a&&i.concat(a),u(n.apply(void 0,i.concat(r))||t.get(e),e),t};return{addReducer:a,getState:i,setState:s,updateState:c}};e.default=i,t.exports=e.default},function(e,n){e.exports=t}])}); |
@@ -1,16 +0,21 @@ | ||
(function (React, ReactDOM, GyreJS) { | ||
console.log(">> Starting"); | ||
(function(React, ReactDOM, GyreJS) { | ||
var localGyre = GyreJS.createGyre("local"); | ||
var ReactHoC = localGyre.reactHoC; | ||
const SOME_ACTION2 = "SOME_ACTION2"; | ||
localGyre.addAction(SOME_ACTION2, (state, value) => { | ||
console.log("invoked another action!", state, value); | ||
}); | ||
// Add middleware | ||
localGyre.use(GyreJS.middleWare.dispatchLogger); | ||
localGyre.use((nameSpace, id, args, next) => { | ||
console.log("Another middleWare", id); | ||
localGyre.use(GyreJS.middleWare.injectDispatch); | ||
/* localGyre.use((nameSpace, id, args, next, dispatch) => { | ||
console.log("Another middleWare", id, dispatch); | ||
next(); | ||
}); | ||
});*/ | ||
const SOME_ACTION = "SOME_ACTION"; | ||
localGyre.addAction(SOME_ACTION, (state, value) => { | ||
localGyre.addAction(SOME_ACTION, (state, value, dispatch) => { | ||
dispatch(SOME_ACTION2, "yaaay"); | ||
return state.set("foo", value); | ||
@@ -36,2 +41,3 @@ }); | ||
localGyre.dispatch(SOME_ACTION, "blaa2"); | ||
localGyre.dispatch("non-existingAction", "blaa2"); | ||
})(React, ReactDOM, GyreJS); |
@@ -30,5 +30,6 @@ /** | ||
if (actionMap.has(id)) { | ||
// Invoke all registered middleWare before running the final action. | ||
middleWare.reduce(function (prev, next) { | ||
return function () { | ||
return next(nameSpace, id, args, prev); | ||
return next(nameSpace, id, args, prev, dispatch); | ||
}; | ||
@@ -39,3 +40,3 @@ }, function () { | ||
} else { | ||
console.warn("GyreJS-'" + nameSpace + "'-AH: Unregistered action requested: '" + id + "' with arguments:", args); | ||
console.warn(">> GyreJS-'" + nameSpace + "'-gyre: Unregistered action dispatched: '" + id + "' with arguments:", args, ". (This is a no-op)"); | ||
} | ||
@@ -42,0 +43,0 @@ }; |
@@ -33,8 +33,8 @@ /** | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
componentWillUnmount: function componentWillUnmount() { | ||
this.unRegisterReducer(); | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
handleNewData: function handleNewData(data) { | ||
@@ -41,0 +41,0 @@ this.setState({ |
@@ -33,8 +33,8 @@ /** | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
componentWillUnmount: function componentWillUnmount() { | ||
this.unRegisterReducer(); | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
handleNewData: function handleNewData(data) { | ||
@@ -41,0 +41,0 @@ this.setState({ |
@@ -28,4 +28,9 @@ /** | ||
var _middleWareInjectDispatch = require("./middleWare/injectDispatch"); | ||
var _middleWareInjectDispatch2 = _interopRequireDefault(_middleWareInjectDispatch); | ||
var middleWare = { | ||
dispatchLogger: _middleWareDispatchLogger2["default"] | ||
dispatchLogger: _middleWareDispatchLogger2["default"], | ||
injectDispatch: _middleWareInjectDispatch2["default"] | ||
}; | ||
@@ -48,6 +53,6 @@ | ||
if (!gyres.has(id)) { | ||
console.warn("GyreJS: Gyre factory '" + id + "' not registered."); | ||
console.warn(">> GyreJS: Gyre factory '" + id + "' not registered."); | ||
} | ||
if (usedNameSpaces.indexOf(nameSpace) !== -1) { | ||
throw new Error("GyreJS ('" + id + "'): A gyre using the namespace '" + nameSpace + "' not registered."); | ||
throw new Error(">> GyreJS ('" + id + "'): A gyre using the namespace '" + nameSpace + "' not registered."); | ||
} | ||
@@ -54,0 +59,0 @@ usedNameSpaces.push(nameSpace); |
@@ -14,3 +14,3 @@ /** | ||
var dispatchLogger = function dispatchLogger(nameSpace, id, args, next) { | ||
console.log(">> GyreJS-'" + nameSpace + "'-store: Applying action '" + id + "' with arguments: ", args); | ||
console.log(">> GyreJS-'" + nameSpace + "'-gyre: Applying action '" + id + "' with arguments: ", args); | ||
next(); | ||
@@ -17,0 +17,0 @@ }; |
@@ -19,8 +19,6 @@ "use strict"; | ||
var store = function store() { | ||
// Private variables | ||
var state = IMap({}); | ||
var reducerList = []; | ||
// Private variables | ||
var rId = 0; | ||
var reducerMap = new Map(); | ||
// Private functions | ||
@@ -33,3 +31,3 @@ /** | ||
var sendUpdate = function sendUpdate() { | ||
return reducerMap.forEach(function (reducer) { | ||
return reducerList.forEach(function (reducer) { | ||
return reducer(state); | ||
@@ -43,8 +41,10 @@ }); | ||
* | ||
* @param {Number} id Reducer Id | ||
* @param {Function} cb Reducer callback. | ||
* @returns {Function} removal function. | ||
*/ | ||
var removeReducer = function removeReducer(id) { | ||
var removeReducer = function removeReducer(cb) { | ||
return function () { | ||
return reducerMap["delete"](id); | ||
return reducerList = reducerList.filter(function (reducer) { | ||
return reducer !== cb; | ||
}); | ||
}; | ||
@@ -57,9 +57,8 @@ }; | ||
* | ||
* @param {Immutable.Map|Object} newState New state | ||
* @param {String} [nameSpace] Namespace | ||
* @param {Immutable.Map} newState New state. | ||
* @param {String} nameSpace Namespace. | ||
* @returns {Immutable.Map} state Current state | ||
*/ | ||
var setNewState = function setNewState(newState, nameSpace) { | ||
var tState = IMap.isMap(newState) ? newState : IMap(newState); | ||
state = nameSpace ? state.set(nameSpace, tState) : tState; | ||
state = state.set(nameSpace, newState); | ||
sendUpdate(); | ||
@@ -73,10 +72,8 @@ return state; | ||
* | ||
* @param {Function} cb callback | ||
* @returns {Function} un-register function | ||
* @param {Function} cb callback. | ||
* @returns {Function} un-register function. | ||
*/ | ||
var addReducer = function addReducer(cb) { | ||
var id = rId++; | ||
// Save to local register | ||
reducerMap.set(id, cb); | ||
reducerList.push(cb); | ||
@@ -87,3 +84,3 @@ // Send state to reducer | ||
// Return remover | ||
return removeReducer(id); | ||
return removeReducer(cb); | ||
}; | ||
@@ -108,3 +105,3 @@ | ||
var setState = function setState(nState, nameSpace) { | ||
return setNewState(nState, nameSpace); | ||
return setNewState(IMap.isMap(nState) ? nState : IMap(nState), nameSpace); | ||
}; | ||
@@ -127,3 +124,3 @@ | ||
} | ||
setNewState(func.apply(undefined, farg.concat(args)), nameSpace); | ||
setNewState(func.apply(undefined, farg.concat(args)) || state.get(nameSpace), nameSpace); | ||
return state; | ||
@@ -130,0 +127,0 @@ }; |
{ | ||
"name": "gyrejs", | ||
"version": "0.0.12", | ||
"version": "0.0.13", | ||
"description": "Experimental data fetching and state library geared towards ReactJS", | ||
@@ -5,0 +5,0 @@ "main": "lib/gyrejs-min.js", |
@@ -23,12 +23,13 @@ /** | ||
if (actionMap.has(id)) { | ||
// Invoke all registered middleWare before running the final action. | ||
middleWare.reduce((prev, next) => | ||
() => next(nameSpace, id, args, prev), | ||
() => next(nameSpace, id, args, prev, dispatch), | ||
() => actionMap.get(id)(args))(); | ||
} | ||
else { | ||
console.warn(`GyreJS-'${nameSpace}'-AH: Unregistered action requested: '${id}' with arguments:`, args); | ||
console.warn(`>> GyreJS-'${nameSpace}'-gyre: Unregistered action dispatched: '${id}' with arguments:`, | ||
args, ". (This is a no-op)"); | ||
} | ||
}; | ||
/** | ||
@@ -35,0 +36,0 @@ * addAction() |
@@ -27,8 +27,8 @@ /** | ||
}, | ||
shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
componentWillUnmount() { | ||
this.unRegisterReducer(); | ||
}, | ||
shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
handleNewData(data) { | ||
@@ -35,0 +35,0 @@ this.setState({ |
@@ -27,8 +27,8 @@ /** | ||
}, | ||
shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
componentWillUnmount() { | ||
this.unRegisterReducer(); | ||
}, | ||
shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
handleNewData(data) { | ||
@@ -35,0 +35,0 @@ this.setState({ |
@@ -10,4 +10,6 @@ /** | ||
import dispatchLogger from "./middleWare/dispatchLogger"; | ||
import injectDispatch from "./middleWare/injectDispatch"; | ||
const middleWare = { | ||
dispatchLogger | ||
dispatchLogger, | ||
injectDispatch | ||
}; | ||
@@ -30,6 +32,6 @@ | ||
if (!gyres.has(id)) { | ||
console.warn(`GyreJS: Gyre factory '${id}' not registered.`); | ||
console.warn(`>> GyreJS: Gyre factory '${id}' not registered.`); | ||
} | ||
if (usedNameSpaces.indexOf(nameSpace) !== -1) { | ||
throw new Error(`GyreJS ('${id}'): A gyre using the namespace '${nameSpace}' not registered.`); | ||
throw new Error(`>> GyreJS ('${id}'): A gyre using the namespace '${nameSpace}' not registered.`); | ||
} | ||
@@ -36,0 +38,0 @@ usedNameSpaces.push(nameSpace); |
@@ -11,3 +11,3 @@ /** | ||
const dispatchLogger = (nameSpace, id, args, next) => { | ||
console.log(`>> GyreJS-'${nameSpace}'-store: Applying action '${id}' with arguments: `, args); | ||
console.log(`>> GyreJS-'${nameSpace}'-gyre: Applying action '${id}' with arguments: `, args); | ||
next(); | ||
@@ -14,0 +14,0 @@ }; |
@@ -10,8 +10,6 @@ import Immutable from "immutable"; | ||
const store = () => { | ||
// Private variables | ||
let state = IMap({}); | ||
let reducerList = []; | ||
// Private variables | ||
let rId = 0; | ||
const reducerMap = new Map(); | ||
// Private functions | ||
@@ -24,3 +22,3 @@ /** | ||
const sendUpdate = () => | ||
reducerMap.forEach(reducer => reducer(state)); | ||
reducerList.forEach(reducer => reducer(state)); | ||
@@ -31,6 +29,8 @@ /** | ||
* | ||
* @param {Number} id Reducer Id | ||
* @param {Function} cb Reducer callback. | ||
* @returns {Function} removal function. | ||
*/ | ||
const removeReducer = (id) => () => reducerMap.delete(id); | ||
const removeReducer = (cb) => | ||
() => | ||
reducerList = reducerList.filter(reducer => reducer !== cb); | ||
@@ -41,9 +41,8 @@ /** | ||
* | ||
* @param {Immutable.Map|Object} newState New state | ||
* @param {String} [nameSpace] Namespace | ||
* @param {Immutable.Map} newState New state. | ||
* @param {String} nameSpace Namespace. | ||
* @returns {Immutable.Map} state Current state | ||
*/ | ||
const setNewState = (newState, nameSpace) => { | ||
const tState = IMap.isMap(newState) ? newState : IMap(newState); | ||
state = nameSpace ? state.set(nameSpace, tState) : tState; | ||
state = state.set(nameSpace, newState); | ||
sendUpdate(); | ||
@@ -57,10 +56,8 @@ return state; | ||
* | ||
* @param {Function} cb callback | ||
* @returns {Function} un-register function | ||
* @param {Function} cb callback. | ||
* @returns {Function} un-register function. | ||
*/ | ||
const addReducer = (cb) => { | ||
const id = rId++; | ||
// Save to local register | ||
reducerMap.set(id, cb); | ||
reducerList.push(cb); | ||
@@ -71,3 +68,3 @@ // Send state to reducer | ||
// Return remover | ||
return removeReducer(id); | ||
return removeReducer(cb); | ||
}; | ||
@@ -89,3 +86,4 @@ | ||
*/ | ||
const setState = (nState, nameSpace) => setNewState(nState, nameSpace); | ||
const setState = (nState, nameSpace) => | ||
setNewState(IMap.isMap(nState) ? nState : IMap(nState), nameSpace); | ||
@@ -107,3 +105,3 @@ /** | ||
} | ||
setNewState(func(...farg.concat(args)), nameSpace); | ||
setNewState(func(...farg.concat(args)) || state.get(nameSpace), nameSpace); | ||
return state; | ||
@@ -110,0 +108,0 @@ }; |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
64225
6.6%36
9.09%1677
4.29%0
-100%