Comparing version
@@ -10,3 +10,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
root["GyreJS"] = factory(root["Immutable"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_7__) { | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_12__) { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -67,13 +67,17 @@ /******/ // The module cache | ||
var _store = __webpack_require__(6); | ||
var _store = __webpack_require__(11); | ||
var _store2 = _interopRequireDefault(_store); | ||
var _gyresLocalLocalFactory = __webpack_require__(2); | ||
var _gyresLocalFactory = __webpack_require__(3); | ||
var _gyresLocalLocalFactory2 = _interopRequireDefault(_gyresLocalLocalFactory); | ||
var _gyresLocalFactory2 = _interopRequireDefault(_gyresLocalFactory); | ||
var _gyresSimpleRestFactory = __webpack_require__(7); | ||
var _gyresSimpleRestFactory2 = _interopRequireDefault(_gyresSimpleRestFactory); | ||
// Middleware | ||
var _middleWareDispatchLogger = __webpack_require__(5); | ||
var _middleWareDispatchLogger = __webpack_require__(10); | ||
@@ -89,2 +93,3 @@ var _middleWareDispatchLogger2 = _interopRequireDefault(_middleWareDispatchLogger); | ||
var store = _store2["default"](); | ||
var usedNameSpaces = []; | ||
@@ -95,10 +100,15 @@ // Public functions | ||
* | ||
* @param {String} id Id of a registered gyre. | ||
* @param {String} id Id of a registered gyre factory. | ||
* @param {String} [nameSpace] Namespace of new gyre. | ||
* @returns {Object} Gyre instance. | ||
*/ | ||
var createGyre = function createGyre(id) { | ||
var createGyre = function createGyre(id, nameSpace) { | ||
if (!gyres.has(id)) { | ||
console.warn("GyreJS: Gyre '" + id + "' not registered."); | ||
console.warn("GyreJS: Gyre factory '" + id + "' not registered."); | ||
} | ||
return gyres.get(id)(store); | ||
if (usedNameSpaces.indexOf(nameSpace) !== -1) { | ||
throw new Error("GyreJS ('" + id + "'): A gyre using the namespace '" + nameSpace + "' not registered."); | ||
} | ||
usedNameSpaces.push(nameSpace); | ||
return gyres.get(id)(store, nameSpace); | ||
}; | ||
@@ -118,3 +128,4 @@ | ||
// Register standard gyres | ||
registerGyreFactory("local", _gyresLocalLocalFactory2["default"]); | ||
registerGyreFactory("local", _gyresLocalFactory2["default"]); | ||
registerGyreFactory("simpleRest", _gyresSimpleRestFactory2["default"]); | ||
@@ -127,2 +138,79 @@ exports.createGyre = createGyre; | ||
/* 1 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
exports.__esModule = true; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
var _actionHandler = __webpack_require__(2); | ||
var _actionHandler2 = _interopRequireDefault(_actionHandler); | ||
/** | ||
* gyreFactory() | ||
* | ||
* @param {String} defaultNS Default namespace name. | ||
* @param {Function} Reducer Reducer factory. | ||
* @param {Function} ReactHoC React HoC factory. | ||
* @param {Object} [actions] Default actions object. | ||
* @returns {Function} Gyre factory function. | ||
*/ | ||
var gyreFactory = function gyreFactory(defaultNS, Reducer, ReactHoC, actions) { | ||
return function (store, NS) { | ||
var nameSpace = NS || defaultNS; | ||
var AH = _actionHandler2["default"](store, nameSpace); | ||
if (actions) { | ||
AH.addActions(actions); | ||
} | ||
// Public functions | ||
/** | ||
* getReducer() Getter for reducer | ||
* | ||
* @param {String} matcher Matcher | ||
* @param {Function} cb Callback | ||
* @returns {Function} Reducer factory | ||
*/ | ||
var getReducer = function getReducer(matcher, cb) { | ||
return Reducer(store, matcher, cb, nameSpace); | ||
}; | ||
/** | ||
* setState() | ||
* | ||
* @param {Object|Immutable.Map} tState The state to set to this gyre. | ||
* @returns {Immutable.Map} Current store state. | ||
*/ | ||
var setState = function setState(tState) { | ||
return store.setState(tState, nameSpace); | ||
}; | ||
/** | ||
* reactHoC() | ||
* | ||
* @param {Object} react React instance. | ||
* @return {Function} HoC factory function. | ||
*/ | ||
var reactHoC = ReactHoC(getReducer); | ||
// API | ||
return { | ||
addAction: AH.addAction, | ||
addActions: AH.addActions, | ||
dispatch: AH.dispatch, | ||
getReducer: getReducer, | ||
reactHoC: reactHoC, | ||
setState: setState, | ||
use: AH.use | ||
}; | ||
}; | ||
}; | ||
exports["default"] = gyreFactory; | ||
module.exports = exports["default"]; | ||
/***/ }, | ||
/* 2 */ | ||
/***/ function(module, exports) { | ||
@@ -147,27 +235,2 @@ | ||
/** | ||
* addAction() | ||
* | ||
* @param {String} id Action ID. | ||
* @param {Function} func Reducer function. | ||
* @returns {void} | ||
*/ | ||
var addAction = function addAction(id, func) { | ||
return actionMap.set(id, function (args) { | ||
store.updateState(nameSpace, func, args, id); | ||
}); | ||
}; | ||
/** | ||
* addActions() | ||
* | ||
* @param {Object} actions Key/func object of actions. | ||
* @returns {void} | ||
*/ | ||
var addActions = function addActions(actions) { | ||
Object.keys(actions).forEach(function (action) { | ||
addAction(action, actions[action]); | ||
}); | ||
}; | ||
/** | ||
* dispatch() | ||
@@ -198,2 +261,31 @@ * | ||
/** | ||
* addAction() | ||
* | ||
* @param {String} id Action ID. | ||
* @param {Function} func Reducer function. | ||
* @param {Boolean} passDispatch Whether to pass the dispatch method to | ||
* the actions. | ||
* @returns {void} | ||
*/ | ||
var addAction = function addAction(id, func, passDispatch) { | ||
return actionMap.set(id, function (args) { | ||
store.updateState(nameSpace, func, args, passDispatch ? dispatch : null); | ||
}); | ||
}; | ||
/** | ||
* addActions() | ||
* | ||
* @param {Object} actions Key/func object of actions. | ||
* @param {Boolean} passDispatch Whether to pass the dispatch method to | ||
* the actions. | ||
* @returns {void} | ||
*/ | ||
var addActions = function addActions(actions, passDispatch) { | ||
Object.keys(actions).forEach(function (action) { | ||
addAction(action, actions[action], passDispatch); | ||
}); | ||
}; | ||
/** | ||
* use() | ||
@@ -221,3 +313,3 @@ * | ||
/***/ }, | ||
/* 2 */ | ||
/* 3 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -231,77 +323,171 @@ | ||
var _localAH = __webpack_require__(1); | ||
var _gyreFactory = __webpack_require__(1); | ||
var _localAH2 = _interopRequireDefault(_localAH); | ||
var _gyreFactory2 = _interopRequireDefault(_gyreFactory); | ||
var _localReducer = __webpack_require__(4); | ||
var _reducer = __webpack_require__(5); | ||
var _localReducer2 = _interopRequireDefault(_localReducer); | ||
var _reducer2 = _interopRequireDefault(_reducer); | ||
// React components | ||
var _reactHoC = __webpack_require__(4); | ||
var _localReactHoC = __webpack_require__(3); | ||
var _reactHoC2 = _interopRequireDefault(_reactHoC); | ||
var _localReactHoC2 = _interopRequireDefault(_localReactHoC); | ||
exports["default"] = _gyreFactory2["default"]("local", _reducer2["default"], _reactHoC2["default"]); | ||
module.exports = exports["default"]; | ||
/***/ }, | ||
/* 4 */ | ||
/***/ function(module, exports) { | ||
/** | ||
* * localFactory() | ||
* Higher order Component factory for local gyre. | ||
* | ||
* @param {Object} store Store instance | ||
* @param {String} NS Namespace | ||
* @param {Boolean} [debugMode] Debug mode switch | ||
* @returns {{addAction: Function, dispatch: Function, getHoC: Function, getStateHistory: Function, setState: Function}} API | ||
* @param {Function} reducer Reducer factory. | ||
* @returns {Function} HoC Factory. | ||
*/ | ||
var localFactory = function localFactory(store, NS) { | ||
var debugMode = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; | ||
"use strict"; | ||
var nameSpace = NS || "local"; | ||
var AH = _localAH2["default"](store, nameSpace, debugMode); | ||
exports.__esModule = true; | ||
// Public functions | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var localHoCFactory = function localHoCFactory(reducer) { | ||
/** | ||
* Getter for reducer | ||
* localHoC() | ||
* | ||
* @param {String} matcher Matcher | ||
* @param {Function} cb Callback | ||
* @returns {Function} Reducer factory | ||
* @param {String} matcher Matcher. | ||
* @param {Object} DefaultComponent Default component. | ||
* @param {*} initialData Initial state. | ||
* @returns {Object} React class | ||
*/ | ||
var getReducer = function getReducer(matcher, cb) { | ||
return _localReducer2["default"](store, matcher, cb, nameSpace, debugMode); | ||
return function (matcher, DefaultComponent) { | ||
return React.createClass({ | ||
displayName: "GyreJS-localHoC", | ||
getInitialState: function getInitialState() { | ||
return { | ||
data: null | ||
}; | ||
}, | ||
componentWillMount: function componentWillMount() { | ||
this.unRegisterReducer = reducer(matcher, this.handleNewData); | ||
}, | ||
componentWillUnmount: function componentWillUnmount() { | ||
this.unRegisterReducer(); | ||
}, | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state.data !== nextState.data; | ||
}, | ||
handleNewData: function handleNewData(data) { | ||
this.setState({ | ||
data: data | ||
}); | ||
}, | ||
render: function render() { | ||
return typeof this.state.data !== "undefined" ? React.createElement(DefaultComponent, _extends({}, this.props, this.state)) : false; | ||
} | ||
}); | ||
}; | ||
}; | ||
/** | ||
* setState() | ||
* | ||
* @param {Object|Immutable.Map} tState The state to set to this gyre. | ||
* @returns {Immutable.Map} Current store state. | ||
*/ | ||
var setState = function setState(tState) { | ||
return store.setState(tState, nameSpace); | ||
exports["default"] = localHoCFactory; | ||
module.exports = exports["default"]; | ||
/***/ }, | ||
/* 5 */ | ||
/***/ function(module, exports) { | ||
/** | ||
* reducer() | ||
* | ||
* @param {Object} store Store instance | ||
* @param {Array|String} matcher Matcher | ||
* @param {Function} cb Callback | ||
* @param {String} nameSpace Namespace | ||
* @returns {Function} Un-register function | ||
*/ | ||
"use strict"; | ||
exports.__esModule = true; | ||
var reducer = function reducer(store, matcher, cb, nameSpace) { | ||
// Private functions | ||
var update = function update(stateVar) { | ||
var state = stateVar.get(nameSpace); | ||
var matchValue = Array.isArray(matcher) ? matcher : [matcher]; | ||
if (state) { | ||
cb(matchValue.reduce(function (memo, val) { | ||
memo[val] = state.get(val); | ||
return memo; | ||
}, {})); | ||
} else { | ||
cb(void 0); | ||
} | ||
}; | ||
// API | ||
return { | ||
addAction: AH.addAction, | ||
addActions: AH.addActions, | ||
dispatch: AH.dispatch, | ||
getReducer: getReducer, | ||
reactHoC: _localReactHoC2["default"], | ||
setState: setState, | ||
use: AH.use | ||
}; | ||
// Return the un-register function right away. | ||
return store.addReducer(update); | ||
}; | ||
exports["default"] = localFactory; | ||
exports["default"] = reducer; | ||
module.exports = exports["default"]; | ||
/***/ }, | ||
/* 3 */ | ||
/* 6 */ | ||
/***/ function(module, exports) { | ||
"use strict"; | ||
exports.__esModule = true; | ||
var actions = {}; | ||
var ADD_QUERY = "ADD_QUERY"; | ||
actions[ADD_QUERY] = function (state, dispatcher, query) { | ||
return state.get("queries").set(query, query); | ||
}; | ||
exports["default"] = { | ||
passDispatch: true, | ||
actions: actions | ||
}; | ||
module.exports = exports["default"]; | ||
/***/ }, | ||
/* 7 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
exports.__esModule = true; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
var _gyreFactory = __webpack_require__(1); | ||
var _gyreFactory2 = _interopRequireDefault(_gyreFactory); | ||
var _reducer = __webpack_require__(9); | ||
var _reducer2 = _interopRequireDefault(_reducer); | ||
var _reactHoC = __webpack_require__(8); | ||
var _reactHoC2 = _interopRequireDefault(_reactHoC); | ||
var _actions = __webpack_require__(6); | ||
var _actions2 = _interopRequireDefault(_actions); | ||
exports["default"] = _gyreFactory2["default"]("simpleRest", _reducer2["default"], _reactHoC2["default"], _actions2["default"]); | ||
module.exports = exports["default"]; | ||
/***/ }, | ||
/* 8 */ | ||
/***/ function(module, exports) { | ||
/** | ||
* Higher order Component factory for local gyre. | ||
* | ||
* @param {Object} React Current react instance | ||
* @param {Function} reducer Reducer factory | ||
* @returns {Function} HoC Factory | ||
* @param {Function} reducer Reducer factory. | ||
* @returns {Function} HoC Factory. | ||
*/ | ||
@@ -314,16 +500,18 @@ "use strict"; | ||
var localHoCFactory = function localHoCFactory(React, reducer) { | ||
var localHoCFactory = function localHoCFactory(reducer) { | ||
/** | ||
* localHoC() | ||
* | ||
* @param {String} matcher Matcher | ||
* @param {Object} DefaultComponent Default component | ||
* @param {*} initialData Initial state | ||
* @param {String} matcher Matcher. | ||
* @param {Object} DefaultComponent Default component. | ||
* @param {*} initialData Initial state. | ||
* @returns {Object} React class | ||
*/ | ||
return function (matcher, DefaultComponent, initialData) { | ||
return function (matcher, DefaultComponent) { | ||
return React.createClass({ | ||
displayName: "GyreJS-localHoC", | ||
getInitialState: function getInitialState() { | ||
return initialData || null; | ||
return { | ||
data: null | ||
}; | ||
}, | ||
@@ -337,3 +525,3 @@ componentWillMount: function componentWillMount() { | ||
shouldComponentUpdate: function shouldComponentUpdate(nextState) { | ||
return this.state !== nextState; | ||
return this.state.data !== nextState.data; | ||
}, | ||
@@ -346,3 +534,3 @@ handleNewData: function handleNewData(data) { | ||
render: function render() { | ||
return this.state ? React.createElement(DefaultComponent, _extends({}, this.props, this.state)) : false; | ||
return typeof this.state.data !== "undefined" ? React.createElement(DefaultComponent, _extends({}, this.props, this.state)) : false; | ||
} | ||
@@ -357,3 +545,3 @@ }); | ||
/***/ }, | ||
/* 4 */ | ||
/* 9 */ | ||
/***/ function(module, exports) { | ||
@@ -365,3 +553,3 @@ | ||
* @param {Object} store Store instance | ||
* @param {String} matcher Matcher | ||
* @param {Array|String} matcher Matcher | ||
* @param {Function} cb Callback | ||
@@ -377,3 +565,3 @@ * @param {String} nameSpace Namespace | ||
var update = function update(stateVar) { | ||
var state = nameSpace ? stateVar.get(nameSpace) : stateVar; | ||
var state = stateVar.get(nameSpace); | ||
var matchValue = Array.isArray(matcher) ? matcher : [matcher]; | ||
@@ -399,3 +587,3 @@ | ||
/***/ }, | ||
/* 5 */ | ||
/* 10 */ | ||
/***/ function(module, exports) { | ||
@@ -424,3 +612,3 @@ | ||
/***/ }, | ||
/* 6 */ | ||
/* 11 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -434,3 +622,3 @@ | ||
var _immutable = __webpack_require__(7); | ||
var _immutable = __webpack_require__(12); | ||
@@ -525,5 +713,5 @@ var _immutable2 = _interopRequireDefault(_immutable); | ||
* | ||
* @param {Immutable.Map|Object} nState State | ||
* @param {String} [nameSpace] Namespace | ||
* @returns {Immutable.Map} New state | ||
* @param {Immutable.Map|Object} nState State. | ||
* @param {String} [nameSpace] Namespace. | ||
* @returns {Immutable.Map} New state. | ||
*/ | ||
@@ -538,9 +726,14 @@ var setState = function setState(nState, nameSpace) { | ||
* | ||
* @param {String} nameSpace Namespace | ||
* @param {Function} func Reducer function | ||
* @param {Array} args Reducer function arguments | ||
* @returns {Immutable.Map} state New state | ||
* @param {String} nameSpace Namespace. | ||
* @param {Function} func Reducer function. | ||
* @param {Array} args Reducer function arguments. | ||
* @param {Function} [dispatch] Dispatcher function. | ||
* @returns {Immutable.Map} state New state. | ||
*/ | ||
var updateState = function updateState(nameSpace, func, args) { | ||
setNewState(func.apply(undefined, [state.get(nameSpace) || IMap({})].concat(args)), nameSpace); | ||
var updateState = function updateState(nameSpace, func, args, dispatch) { | ||
var farg = [state.get(nameSpace) || IMap({})]; | ||
if (dispatch) { | ||
farg.concat(dispatch); | ||
} | ||
setNewState(func.apply(undefined, farg.concat(args)), nameSpace); | ||
return state; | ||
@@ -562,6 +755,6 @@ }; | ||
/***/ }, | ||
/* 7 */ | ||
/* 12 */ | ||
/***/ function(module, exports) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_7__; | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_12__; | ||
@@ -568,0 +761,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(6),o=r(u),a=n(2),i=r(a),c=n(5),s=r(c),f={dispatchLogger:s.default},d=new Map,l=o.default(),p=function(t){return d.has(t)||console.warn("GyreJS: Gyre '"+t+"' not registered."),d.get(t)(l)},g=function(t,e){d.set(t,e)};g("local",i.default),e.createGyre=p,e.middleWare=f,e.registerGyreFactory=g},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e){var n=new Map,r=[],u=function(r,u){return n.set(r,function(n){t.updateState(e,u,n,r)})},o=function(t){Object.keys(t).forEach(function(e){u(e,t[e])})},a=function(t){for(var u=arguments.length,o=Array(u>1?u-1:0),a=1;u>a;a++)o[a-1]=arguments[a];n.has(t)?r.reduce(function(n,r){return function(){return r(e,t,o,n)}},function(){return n.get(t)(o)})():console.warn("GyreJS-'"+e+"'-AH: Unregistered action requested: '"+t+"' with arguments:",o)},i=function(t){r.unshift(t)};return{addAction:u,addActions:o,dispatch:a,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),o=r(u),a=n(4),i=r(a),c=n(3),s=r(c),f=function(t,e){var n=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],r=e||"local",u=o.default(t,r,n),a=function(e,u){return i.default(t,e,u,r,n)},c=function(e){return t.setState(e,r)};return{addAction:u.addAction,addActions:u.addActions,dispatch:u.dispatch,getReducer:a,reactHoC:s.default,setState:c,use:u.use}};e.default=f,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,e){return function(r,u,o){return t.createClass({displayName:"GyreJS-localHoC",getInitialState:function(){return o||null},componentWillMount:function(){this.unRegisterReducer=e(r,this.handleNewData)},componentWillUnmount:function(){this.unRegisterReducer()},shouldComponentUpdate:function(t){return this.state!==t},handleNewData:function(t){this.setState({data:t})},render:function(){return this.state?t.createElement(u,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=r?t.get(r):t,o=Array.isArray(e)?e:[e];n(u?o.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(7),o=r(u),a=o.default.Map,i=function(){var t=a({}),e=0,n=new Map,r=function(){return n.forEach(function(e){return e(t)})},u=function(t){return function(){return n.delete(t)}},o=function(e,n){var u=a.isMap(e)?e:a(e);return t=n?t.set(n,u):u,r(),t},i=function(r){var o=e++;return n.set(o,r),r(t),u(o)},c=function(){return t},s=function(t,e){return o(t,e)},f=function(e,n,r){return o(n.apply(void 0,[t.get(e)||a({})].concat(r)),e),t};return{addReducer:i,getState:c,setState:s,updateState:f}};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(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}])}); |
@@ -14,6 +14,10 @@ /** | ||
var _gyresLocalLocalFactory = require("./gyres/local/localFactory"); | ||
var _gyresLocalFactory = require("./gyres/local/factory"); | ||
var _gyresLocalLocalFactory2 = _interopRequireDefault(_gyresLocalLocalFactory); | ||
var _gyresLocalFactory2 = _interopRequireDefault(_gyresLocalFactory); | ||
var _gyresSimpleRestFactory = require("./gyres/simpleRest/factory"); | ||
var _gyresSimpleRestFactory2 = _interopRequireDefault(_gyresSimpleRestFactory); | ||
// Middleware | ||
@@ -32,2 +36,3 @@ | ||
var store = _store2["default"](); | ||
var usedNameSpaces = []; | ||
@@ -38,10 +43,15 @@ // Public functions | ||
* | ||
* @param {String} id Id of a registered gyre. | ||
* @param {String} id Id of a registered gyre factory. | ||
* @param {String} [nameSpace] Namespace of new gyre. | ||
* @returns {Object} Gyre instance. | ||
*/ | ||
var createGyre = function createGyre(id) { | ||
var createGyre = function createGyre(id, nameSpace) { | ||
if (!gyres.has(id)) { | ||
console.warn("GyreJS: Gyre '" + id + "' not registered."); | ||
console.warn("GyreJS: Gyre factory '" + id + "' not registered."); | ||
} | ||
return gyres.get(id)(store); | ||
if (usedNameSpaces.indexOf(nameSpace) !== -1) { | ||
throw new Error("GyreJS ('" + id + "'): A gyre using the namespace '" + nameSpace + "' not registered."); | ||
} | ||
usedNameSpaces.push(nameSpace); | ||
return gyres.get(id)(store, nameSpace); | ||
}; | ||
@@ -61,3 +71,4 @@ | ||
// Register standard gyres | ||
registerGyreFactory("local", _gyresLocalLocalFactory2["default"]); | ||
registerGyreFactory("local", _gyresLocalFactory2["default"]); | ||
registerGyreFactory("simpleRest", _gyresSimpleRestFactory2["default"]); | ||
@@ -64,0 +75,0 @@ exports.createGyre = createGyre; |
@@ -97,5 +97,5 @@ "use strict"; | ||
* | ||
* @param {Immutable.Map|Object} nState State | ||
* @param {String} [nameSpace] Namespace | ||
* @returns {Immutable.Map} New state | ||
* @param {Immutable.Map|Object} nState State. | ||
* @param {String} [nameSpace] Namespace. | ||
* @returns {Immutable.Map} New state. | ||
*/ | ||
@@ -110,9 +110,14 @@ var setState = function setState(nState, nameSpace) { | ||
* | ||
* @param {String} nameSpace Namespace | ||
* @param {Function} func Reducer function | ||
* @param {Array} args Reducer function arguments | ||
* @returns {Immutable.Map} state New state | ||
* @param {String} nameSpace Namespace. | ||
* @param {Function} func Reducer function. | ||
* @param {Array} args Reducer function arguments. | ||
* @param {Function} [dispatch] Dispatcher function. | ||
* @returns {Immutable.Map} state New state. | ||
*/ | ||
var updateState = function updateState(nameSpace, func, args) { | ||
setNewState(func.apply(undefined, [state.get(nameSpace) || IMap({})].concat(args)), nameSpace); | ||
var updateState = function updateState(nameSpace, func, args, dispatch) { | ||
var farg = [state.get(nameSpace) || IMap({})]; | ||
if (dispatch) { | ||
farg.concat(dispatch); | ||
} | ||
setNewState(func.apply(undefined, farg.concat(args)), nameSpace); | ||
return state; | ||
@@ -119,0 +124,0 @@ }; |
{ | ||
"name": "gyrejs", | ||
"version": "0.0.11", | ||
"version": "0.0.12", | ||
"description": "Experimental data fetching and state library geared towards ReactJS", | ||
@@ -45,2 +45,3 @@ "main": "lib/gyrejs-min.js", | ||
"babel-loader": "^5.3.2", | ||
"cheerio": "^0.19.0", | ||
"eslint": "1.6.0", | ||
@@ -50,2 +51,3 @@ "eslint-config-airbnb": "^0.1.0", | ||
"react": "0.14.0", | ||
"react-dom": "^0.14.0", | ||
"rimraf": "^2.4.3", | ||
@@ -52,0 +54,0 @@ "tap-spec": "^4.1.0", |
@@ -5,3 +5,4 @@ /** | ||
import Store from "./store"; | ||
import LocalGyreFactory from "./gyres/local/localFactory"; | ||
import LocalGyre from "./gyres/local/factory"; | ||
import SimpleRestGyre from "./gyres/simpleRest/factory"; | ||
@@ -17,2 +18,3 @@ // Middleware | ||
const store = Store(); | ||
const usedNameSpaces = []; | ||
@@ -23,10 +25,15 @@ // Public functions | ||
* | ||
* @param {String} id Id of a registered gyre. | ||
* @param {String} id Id of a registered gyre factory. | ||
* @param {String} [nameSpace] Namespace of new gyre. | ||
* @returns {Object} Gyre instance. | ||
*/ | ||
const createGyre = (id) => { | ||
const createGyre = (id, nameSpace) => { | ||
if (!gyres.has(id)) { | ||
console.warn(`GyreJS: Gyre '${id}' not registered.`); | ||
console.warn(`GyreJS: Gyre factory '${id}' not registered.`); | ||
} | ||
return gyres.get(id)(store); | ||
if (usedNameSpaces.indexOf(nameSpace) !== -1) { | ||
throw new Error(`GyreJS ('${id}'): A gyre using the namespace '${nameSpace}' not registered.`); | ||
} | ||
usedNameSpaces.push(nameSpace); | ||
return gyres.get(id)(store, nameSpace); | ||
}; | ||
@@ -46,3 +53,4 @@ | ||
// Register standard gyres | ||
registerGyreFactory("local", LocalGyreFactory); | ||
registerGyreFactory("local", LocalGyre); | ||
registerGyreFactory("simpleRest", SimpleRestGyre); | ||
@@ -49,0 +57,0 @@ export { |
@@ -79,5 +79,5 @@ import Immutable from "immutable"; | ||
* | ||
* @param {Immutable.Map|Object} nState State | ||
* @param {String} [nameSpace] Namespace | ||
* @returns {Immutable.Map} New state | ||
* @param {Immutable.Map|Object} nState State. | ||
* @param {String} [nameSpace] Namespace. | ||
* @returns {Immutable.Map} New state. | ||
*/ | ||
@@ -90,9 +90,14 @@ const setState = (nState, nameSpace) => setNewState(nState, nameSpace); | ||
* | ||
* @param {String} nameSpace Namespace | ||
* @param {Function} func Reducer function | ||
* @param {Array} args Reducer function arguments | ||
* @returns {Immutable.Map} state New state | ||
* @param {String} nameSpace Namespace. | ||
* @param {Function} func Reducer function. | ||
* @param {Array} args Reducer function arguments. | ||
* @param {Function} [dispatch] Dispatcher function. | ||
* @returns {Immutable.Map} state New state. | ||
*/ | ||
const updateState = (nameSpace, func, args) => { | ||
setNewState(func(state.get(nameSpace) || IMap({}), ...args), nameSpace); | ||
const updateState = (nameSpace, func, args, dispatch) => { | ||
var farg = [state.get(nameSpace) || IMap({})]; | ||
if (dispatch) { | ||
farg.concat(dispatch); | ||
} | ||
setNewState(func(...farg.concat(args)), nameSpace); | ||
return state; | ||
@@ -99,0 +104,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
60251
34.05%33
26.92%1608
36.04%14
16.67%1
Infinity%