New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

gyrejs

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gyrejs - npm Package Compare versions

Comparing version

to
0.0.14

example1.js

815

dist/gyrejs.js

@@ -10,3 +10,3 @@ (function webpackUniversalModuleDefinition(root, factory) {

root["GyreJS"] = factory(root["Immutable"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_13__) {
})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {
return /******/ (function(modules) { // webpackBootstrap

@@ -58,5 +58,3 @@ /******/ // The module cache

/**
* Import libs
*/
// Import sub libraries
"use strict";

@@ -68,21 +66,21 @@

var _store = __webpack_require__(12);
var _store = __webpack_require__(15);
var _store2 = _interopRequireDefault(_store);
var _gyresLocalFactory = __webpack_require__(3);
var _gyresLocalFactory = __webpack_require__(5);
var _gyresLocalFactory2 = _interopRequireDefault(_gyresLocalFactory);
var _gyresSimpleRestFactory = __webpack_require__(7);
var _gyresSmartRestFactory = __webpack_require__(9);
var _gyresSimpleRestFactory2 = _interopRequireDefault(_gyresSimpleRestFactory);
var _gyresSmartRestFactory2 = _interopRequireDefault(_gyresSmartRestFactory);
// Middleware
var _middleWareDispatchLogger = __webpack_require__(10);
var _middleWareDispatchLogger = __webpack_require__(13);
var _middleWareDispatchLogger2 = _interopRequireDefault(_middleWareDispatchLogger);
var _middleWareInjectDispatch = __webpack_require__(11);
var _middleWareInjectDispatch = __webpack_require__(14);

@@ -99,3 +97,2 @@ var _middleWareInjectDispatch2 = _interopRequireDefault(_middleWareInjectDispatch);

var store = _store2["default"]();
var usedNameSpaces = [];

@@ -107,14 +104,11 @@ // Public functions

* @param {String} id Id of a registered gyre factory.
* @param {String} [nameSpace] Namespace of new gyre.
* @param {Object} [options] Options object for gyre.
* @returns {Object} Gyre instance.
*/
var createGyre = function createGyre(id, nameSpace) {
var createGyre = function createGyre(id, options) {
if (!gyres.has(id)) {
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.");
}
usedNameSpaces.push(nameSpace);
return gyres.get(id)(store, nameSpace);
return gyres.get(id)(store, Object.assign({}, { NS: id + "-" + Date.now() }, options));
};

@@ -135,3 +129,3 @@

registerGyreFactory("local", _gyresLocalFactory2["default"]);
registerGyreFactory("simpleRest", _gyresSimpleRestFactory2["default"]);
registerGyreFactory("smartRest", _gyresSmartRestFactory2["default"]);

@@ -144,2 +138,8 @@ exports.createGyre = createGyre;

/* 1 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
/***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) {

@@ -153,3 +153,3 @@

var _actionHandler = __webpack_require__(2);
var _actionHandler = __webpack_require__(4);

@@ -161,15 +161,14 @@ var _actionHandler2 = _interopRequireDefault(_actionHandler);

*
* @param {String} defaultNS Default namespace name.
* @param {Function} Reducer Reducer factory.
* @param {Function} ReactHoC React HoC factory.
* @param {Object} [actions] Default actions object.
* @param {Function} [actions] Default actions object.
* @param {Immutable.Map|Object} [state] Initial state 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);
}
var gyreFactory = function gyreFactory(Reducer, ReactHoC) {
var actions = arguments.length <= 2 || arguments[2] === undefined ? function () {} : arguments[2];
var state = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];
return function (store, options) {
// Private variables
var AH = _actionHandler2["default"](store, options);

@@ -185,3 +184,3 @@ // Public functions

var getReducer = function getReducer(matcher, cb) {
return Reducer(store, matcher, cb, nameSpace);
return Reducer(store, AH.dispatch, matcher, cb, options);
};

@@ -196,6 +195,15 @@

var setState = function setState(tState) {
return store.setState(tState, nameSpace);
return store.setState(tState, options.NS);
};
/**
* getState()
*
* @returns {Immutable.Map} Current store state.
*/
var getState = function getState() {
return store.getState.get(options.NS);
};
/**
* reactHoC()

@@ -208,2 +216,6 @@ *

// Setup
AH.addActions(actions(options));
setState(state);
// API

@@ -214,2 +226,3 @@ return {

dispatch: AH.dispatch,
getState: getState,
getReducer: getReducer,

@@ -227,10 +240,299 @@ reactHoC: reactHoC,

/***/ },
/* 2 */
/* 3 */
/***/ function(module, exports) {
/**
* localAH()
* extractEndpoints()
*
* @param {Object} query Query object.
* @returns {Object[]} Array of endpoints.
*/
"use strict";
exports.__esModule = true;
var extractEndpoints = function extractEndpoints(query) {
var marked1$0 = [processQuery].map(regeneratorRuntime.mark);
function processQuery(q, root, branch) {
var _iterator, _isArray, _i, _ref, i, val, tBranch, rV, _iterator2, _isArray2, _i2, _ref2, idVal;
return regeneratorRuntime.wrap(function processQuery$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
_iterator = Object.keys(q), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();
case 1:
if (!_isArray) {
context$2$0.next = 7;
break;
}
if (!(_i >= _iterator.length)) {
context$2$0.next = 4;
break;
}
return context$2$0.abrupt("break", 36);
case 4:
_ref = _iterator[_i++];
context$2$0.next = 11;
break;
case 7:
_i = _iterator.next();
if (!_i.done) {
context$2$0.next = 10;
break;
}
return context$2$0.abrupt("break", 36);
case 10:
_ref = _i.value;
case 11:
i = _ref;
val = q[i];
tBranch = branch ? branch.concat([i]) : [i];
rV = {
name: root ? root + "/" + i : i,
branch: tBranch,
id: val.id ? val.id : null,
fields: val.fields ? val.fields : null
};
if (!(rV.fields || rV.id && !val.children)) {
context$2$0.next = 18;
break;
}
context$2$0.next = 18;
return rV;
case 18:
if (!val.children) {
context$2$0.next = 34;
break;
}
_iterator2 = Array.isArray(val.id) ? val.id : [val.id], _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();
case 20:
if (!_isArray2) {
context$2$0.next = 26;
break;
}
if (!(_i2 >= _iterator2.length)) {
context$2$0.next = 23;
break;
}
return context$2$0.abrupt("break", 34);
case 23:
_ref2 = _iterator2[_i2++];
context$2$0.next = 30;
break;
case 26:
_i2 = _iterator2.next();
if (!_i2.done) {
context$2$0.next = 29;
break;
}
return context$2$0.abrupt("break", 34);
case 29:
_ref2 = _i2.value;
case 30:
idVal = _ref2;
return context$2$0.delegateYield(processQuery(val.children, idVal ? i + "/" + idVal : i, tBranch), "t0", 32);
case 32:
context$2$0.next = 20;
break;
case 34:
context$2$0.next = 1;
break;
case 36:
case "end":
return context$2$0.stop();
}
}, marked1$0[0], this);
}
var it = processQuery(query);
var res = it.next();
var urlDefs = [];
while (!res.done) {
urlDefs.push(res.value);
res = it.next();
}
return urlDefs;
};
/**
* createUrls()
* Creates urls from query
*
* @param {Object}query Query object.
* @returns {String[]} Array of urls.
*/
var createUrls = function createUrls(query) {
var urlDefs = extractEndpoints(query);
return urlDefs.map(function (urlDef) {
var urlString = urlDef.name;
if (urlDef.hasOwnProperty("id") && urlDef.id !== null) {
urlString = urlString + "/" + urlDef.id;
}
if (Array.isArray(urlDef.fields) && urlDef.fields.length > 0) {
urlString = urlString + "?fields=" + urlDef.fields.toString();
}
return {
path: urlString,
type: urlDef.branch[urlDef.branch.length - 1],
root: urlDef.name
};
});
};
/**
* checkStatusAndParse()
*
* @param {Object} response Fetch response.
* @returns {Object} Parsed response.
*/
var checkStatusAndParse = function checkStatusAndParse(response) {
if (response.status >= 200 && response.status < 300) {
return response.json().then(function (data) {
return {
success: true,
data: data
};
});
}
return new Promise(function (resolve) {
return resolve({
success: false,
msg: response,
code: response.status
});
});
};
/**
* parse()
*
* @param {Immutable.Map} endpoint
* @returns {*}
*/
var transform = function transform(endpoint) {
return function (response) {
if (response.success) {
var _ret = (function () {
var rData = Array.isArray(response.data) ? response.data : [response.data];
// Get idList and map data
var idList = {};
var data = {};
idList[endpoint.get("root")] = [];
data[endpoint.get("type")] = {};
rData.forEach(function (entry) {
idList[endpoint.get("root")].push(entry.id.toString());
data[endpoint.get("type")][entry.id.toString()] = entry;
});
return {
v: {
success: true,
data: data,
idList: idList
}
};
})();
if (typeof _ret === "object") return _ret.v;
}
return response;
};
};
/**
* fetchUrl()
*
* @param {String} host Endpoint host.
* @param {Immutable.Map} endpoint Endpoint options.
* @returns {Promise} Promise of fetch.
*/
var fetchUrl = function fetchUrl(host, endpoint) {
var hostName = host || location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : "");
// Fetch data
return fetch(hostName + "/" + endpoint.get("path")).then(checkStatusAndParse).then(transform(endpoint));
};
/**
* hash()
* Simple hash from string
*
* @param {String} str string
* @returns {Number} hash Hash of string.
*/
var hash = function hash(str) {
var len = str.length;
var h = 0;
if (str.length === 0) {
return h;
}
for (var i = 0; i < len; i++) {
var chr = str.charCodeAt(i);
h = (h << 5) - h + chr;
h |= 0;
}
return h;
};
/**
* hashQueryObject()
* Simple query hash from object
*
* @param {Object} obj Query object
* @returns {Number} hash Hash of query.
*/
var hashQueryObject = function hashQueryObject(obj) {
return hash(JSON.stringify(obj));
};
// Helper functions
var helpers = {
createUrls: createUrls,
fetchUrl: fetchUrl,
hashQueryObject: hashQueryObject
};
exports["default"] = helpers;
module.exports = exports["default"];
// If it has fields, OR an id and no children, return as endpoint.
/***/ },
/* 4 */
/***/ function(module, exports) {
/**
* actionHandler()
*
* @param {Object} store instance.
* @param {String} nameSpace state key.
* @param {Object} options Options object.
* @returns {{addAction: Function, dispatch: Function}} API.

@@ -241,3 +543,3 @@ */

exports.__esModule = true;
var localAH = function localAH(store, nameSpace) {
var actionHandler = function actionHandler(store, options) {
// Private variables

@@ -264,3 +566,3 @@ var actionMap = new Map();

return function () {
return next(nameSpace, id, args, prev, dispatch);
return next(options.NS, id, args, prev, dispatch);
};

@@ -271,3 +573,3 @@ }, function () {

} else {
console.warn(">> GyreJS-'" + nameSpace + "'-gyre: Unregistered action dispatched: '" + id + "' with arguments:", args, ". (This is a no-op)");
console.warn(">> GyreJS-'" + options.NS + "'-gyre: Unregistered action dispatched: '" + id + "' with arguments:", args, ". (This is a no-op)");
}

@@ -281,9 +583,8 @@ };

* @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) {
var addAction = function addAction(id, func) {
return actionMap.set(id, function (args) {
store.updateState(nameSpace, func, args, passDispatch ? dispatch : null);
store.updateState(options.NS, func, args);
});

@@ -296,9 +597,8 @@ };

* @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) {
var addActions = function addActions(actions) {
Object.keys(actions).forEach(function (action) {
addAction(action, actions[action], passDispatch);
addAction(action, actions[action]);
});

@@ -326,7 +626,7 @@ };

exports["default"] = localAH;
exports["default"] = actionHandler;
module.exports = exports["default"];
/***/ },
/* 3 */
/* 5 */
/***/ function(module, exports, __webpack_require__) {

@@ -340,19 +640,19 @@

var _gyreFactory = __webpack_require__(1);
var _gyreFactory = __webpack_require__(2);
var _gyreFactory2 = _interopRequireDefault(_gyreFactory);
var _reducer = __webpack_require__(5);
var _reducer = __webpack_require__(7);
var _reducer2 = _interopRequireDefault(_reducer);
var _reactHoC = __webpack_require__(4);
var _reactHoC = __webpack_require__(6);
var _reactHoC2 = _interopRequireDefault(_reactHoC);
exports["default"] = _gyreFactory2["default"]("local", _reducer2["default"], _reactHoC2["default"]);
exports["default"] = _gyreFactory2["default"](_reducer2["default"], _reactHoC2["default"]);
module.exports = exports["default"];
/***/ },
/* 4 */
/* 6 */
/***/ function(module, exports) {

@@ -404,3 +704,3 @@

render: function render() {
return typeof this.state.data !== "undefined" ? React.createElement(DefaultComponent, _extends({}, this.props, this.state)) : false;
return typeof this.state.data !== "undefined" ? React.createElement(DefaultComponent, _extends({}, this.props, this.state.data)) : false;
}

@@ -415,3 +715,3 @@ });

/***/ },
/* 5 */
/* 7 */
/***/ function(module, exports) {

@@ -423,5 +723,6 @@

* @param {Object} store Store instance
* @param {Function} dispatch Dispatch
* @param {Array|String} matcher Matcher
* @param {Function} cb Callback
* @param {String} nameSpace Namespace
* @param {Object} options Options object.
* @returns {Function} Un-register function

@@ -432,6 +733,6 @@ */

exports.__esModule = true;
var reducer = function reducer(store, matcher, cb, nameSpace) {
var reducer = function reducer(store, dispatch, matcher, cb, options) {
// Private functions
var update = function update(stateVar) {
var state = stateVar.get(nameSpace);
var state = stateVar.get(options.NS);
var matchValue = Array.isArray(matcher) ? matcher : [matcher];

@@ -457,4 +758,4 @@

/***/ },
/* 6 */
/***/ function(module, exports) {
/* 8 */
/***/ function(module, exports, __webpack_require__) {

@@ -464,17 +765,198 @@ "use strict";

exports.__esModule = true;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _helpers = __webpack_require__(3);
var _immutable = __webpack_require__(1);
var _immutable2 = _interopRequireDefault(_immutable);
var IMap = _immutable2["default"].Map;
var IList = _immutable2["default"].List;
// Status constants
var STATUS_COMPLETED = "COMPLETED";
var STATUS_LOADING = "LOADING";
// const STATUS_CREATING = "CREATING";
var STATUS_UPDATING = "UPDATING";
// const STATUS_REMOVING = "REMOVING";
var STATUS_ERROR = "ERROR";
// Actions
var actions = {};
var ADD_QUERY = "ADD_QUERY";
var FETCH_QUERY = "FETCH_QUERY";
var COMPLETE_QUERY = "COMPLETE_QUERY";
var FAIL_QUERY = "FAIL_QUERY";
var CREATE = "CREATE";
var ADD_QUERY = "ADD_QUERY";
actions[ADD_QUERY] = function (state, dispatcher, query) {
return state.get("queries").set(query, query);
/*
const UPDATE = "UPDATE";
const DELETE = "DELETE";
*/
// Misc
var newQuery = IMap({
status: null,
count: 0
});
exports["default"] = function (_ref) {
var hostname = _ref.hostname;
/**
* Action: ADD_QUERY
*
* @param state
* @param query
* @param hash
* @param dispatch
*/
actions[ADD_QUERY] = function (state, query, hash, dispatch) {
return state.reduce(function (memo, value, key) {
if (key === "queries") {
memo = memo.set("queries", value.set(hash, newQuery.merge(value.get(hash)).merge({
hash: hash,
urls: _helpers.createUrls(query)
}).map(function (qvVal, qvKey) {
switch (qvKey) {
case "count":
{
return qvVal + 1;
}
case "status":
{
return qvVal === STATUS_COMPLETED ? STATUS_UPDATING : qvVal;
}
default:
return qvVal;
}
})).map(function (qVal, qKey) {
if (qKey === hash) {
if ([STATUS_LOADING, STATUS_UPDATING].indexOf(qVal.get("status")) === -1) {
dispatch(FETCH_QUERY, qVal);
}
}
return qVal.set("status", qVal.get("status") || STATUS_LOADING);
}));
}
return memo;
}, state);
};
/**
* Action: FETCH_QUERY
*
* @param state
* @param query
* @param dispatch
*/
actions[FETCH_QUERY] = function (state, query, dispatch) {
// Fetch urls
var promiseArray = query.get("urls").map(function (endpoint) {
return _helpers.fetchUrl(hostname, endpoint);
});
Promise.all(promiseArray).then(function (resultArray) {
var fetchResult = resultArray.reduce(function (memo, _ref2) {
var success = _ref2.success;
var msg = _ref2.msg;
if (!success) {
memo.success = false;
memo.msgList = memo.msgList.push(msg);
}
return memo;
}, { success: true, msgList: IList([]) });
if (fetchResult.success) {
dispatch(COMPLETE_QUERY, resultArray, query);
} else {
dispatch(FAIL_QUERY, fetchResult.msgList, query);
}
})["catch"](function (error) {
dispatch(FAIL_QUERY, [error], query);
});
};
/**
* Action: COMPLETE_QUERY
*
* @param state
* @param resultArray
* @param query
*/
actions[COMPLETE_QUERY] = function (state, resultArray, query) {
return state.reduce(function (memo, value, key) {
if (key === "queries") {
memo = memo.set("queries", value.map(function (qr, ky) {
var qry = qr;
if (ky === query.get("hash")) {
qry = qry.merge({
"status": STATUS_COMPLETED,
"idList": resultArray.reduce(function (prev, next) {
return prev.merge(next.idList);
}, IMap({}))
});
}
return qry;
}));
}
if (key === "data") {
memo = memo.set("data", resultArray.reduce(function (prev, result) {
return prev.mergeDeep(result.data);
}, memo.get("data")));
}
return memo;
}, state);
};
/**
* Action: FAIL_QUERY
*
* @param state
* @param msgList
* @param query
*/
actions[FAIL_QUERY] = function (state, msgList, query) {
return state.reduce(function (memo, value, key) {
if (key === "queries") {
memo = memo.set("queries", value.map(function (qr, ky) {
var qry = qr;
if (ky === query.get("hash")) {
qry = qry.merge({
"status": STATUS_ERROR,
"msg": msgList
});
}
return qry;
}));
}
return memo;
}, state);
};
actions[CREATE] = function (state, type, data) {
return state.reduce(function (memo, value, key) {
if (key === "data") {
var id = Date.now();
memo = memo.setIn(["data", type, id], _immutable2["default"].fromJS(data));
}
return memo;
}, state);
};
return actions;
};
exports["default"] = {
passDispatch: true,
actions: actions
};
module.exports = exports["default"];
/***/ },
/* 7 */
/* 9 */
/***/ function(module, exports, __webpack_require__) {

@@ -488,25 +970,41 @@

var _gyreFactory = __webpack_require__(1);
var _gyreFactory = __webpack_require__(2);
var _gyreFactory2 = _interopRequireDefault(_gyreFactory);
var _reducer = __webpack_require__(9);
var _reducer = __webpack_require__(11);
var _reducer2 = _interopRequireDefault(_reducer);
var _reactHoC = __webpack_require__(8);
var _reactHoC = __webpack_require__(10);
var _reactHoC2 = _interopRequireDefault(_reactHoC);
var _actions = __webpack_require__(6);
var _actions = __webpack_require__(8);
var _actions2 = _interopRequireDefault(_actions);
exports["default"] = _gyreFactory2["default"]("simpleRest", _reducer2["default"], _reactHoC2["default"], _actions2["default"]);
var _state = __webpack_require__(12);
var _state2 = _interopRequireDefault(_state);
exports["default"] = _gyreFactory2["default"](_reducer2["default"], _reactHoC2["default"], _actions2["default"], _state2["default"]);
module.exports = exports["default"];
/***/ },
/* 8 */
/***/ function(module, exports) {
/* 10 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
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; };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _immutable = __webpack_require__(1);
var _immutable2 = _interopRequireDefault(_immutable);
/**

@@ -518,18 +1016,13 @@ * Higher order Component factory for local gyre.

*/
"use strict";
exports.__esModule = true;
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) {
var reactHoCFactory = function reactHoCFactory(reducer) {
/**
* localHoC()
* reactHoC()
*
* @param {String} matcher Matcher.
* @param {Object} DefaultComponent Default component.
* @param {*} initialData Initial state.
* @param {Object} LoadingComponent Loading component.
* @param {Object} ErrorComponent Error component.
* @returns {Object} React class
*/
return function (matcher, DefaultComponent) {
return function (matcher, DefaultComponent, LoadingComponent, ErrorComponent) {
return React.createClass({

@@ -545,4 +1038,11 @@ displayName: "GyreJS-localHoC",

},
shouldComponentUpdate: function shouldComponentUpdate(nextState) {
return this.state.data !== nextState.data;
shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) {
if (this.state.status !== nextState.status) {
return true;
}
if (nextState.data) {
return !_immutable2["default"].is(nextState.data, this.state.data);
}
return true;
},

@@ -552,9 +1052,32 @@ componentWillUnmount: function componentWillUnmount() {

},
handleNewData: function handleNewData(data) {
handleNewData: function handleNewData(status, data) {
this.setState({
data: data
data: data,
status: status
});
},
render: function render() {
return typeof this.state.data !== "undefined" ? React.createElement(DefaultComponent, _extends({}, this.props, this.state)) : false;
// Render wrapped component with current props and state as props.
if (!this.state || !this.state.status) {
return false;
}
var Component = undefined;
switch (this.state.status) {
case "LOADING":
{
Component = LoadingComponent;
break;
}
case "ERROR":
{
Component = ErrorComponent;
break;
}
default:
{
Component = DefaultComponent;
}
}
return Component ? React.createElement(Component, _extends({}, this.props, this.state)) : false;
}

@@ -565,9 +1088,23 @@ });

exports["default"] = localHoCFactory;
exports["default"] = reactHoCFactory;
module.exports = exports["default"];
/***/ },
/* 9 */
/***/ function(module, exports) {
/* 11 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _immutable = __webpack_require__(1);
var _immutable2 = _interopRequireDefault(_immutable);
var _helpers = __webpack_require__(3);
var IMap = _immutable2["default"].Map;
/**

@@ -577,26 +1114,47 @@ * reducer()

* @param {Object} store Store instance
* @param {Function} dispatch Dispatch
* @param {Array|String} matcher Matcher
* @param {Function} cb Callback
* @param {String} nameSpace Namespace
* @param {Object} NS NameSpace from Options object.
* @returns {Function} Un-register function
*/
"use strict";
var reducer = function reducer(store, dispatch, matcher, cb, _ref) {
var NS = _ref.NS;
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];
var queryHash = _helpers.hashQueryObject(matcher);
if (state) {
cb(matchValue.reduce(function (memo, val) {
memo[val] = state.get(val);
var update = function update(state) {
var queryResult = state.getIn([NS, "queries", queryHash, "idList"]);
var queryInfo = state.getIn([NS, "queries", queryHash]);
if (queryResult) {
cb(queryInfo.get("status"), queryResult.reduce(function (mm, value, key) {
var memo = mm;
// Create path
var path = key.split("/").reduce(function (mem, val, index) {
if (index % 2 === 0 && index) {
mem.push("children");
}
mem.push(val);
return mem;
}, []);
// Add to reducer result
var type = key.split("/");
type = type[type.length - 1];
value.forEach(function (val) {
memo = memo.mergeDeepIn(path.concat(val), state.getIn([NS, "data", type, val]));
});
return memo;
}, {}));
}, IMap({})));
} else {
cb(void 0);
cb(queryInfo.get("status"));
}
};
// Emit action to add query
dispatch("ADD_QUERY", matcher, queryHash);
// Return the un-register function right away.

@@ -610,3 +1168,25 @@ return store.addReducer(update);

/***/ },
/* 10 */
/* 12 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _immutable = __webpack_require__(1);
var _immutable2 = _interopRequireDefault(_immutable);
var IMap = _immutable2["default"].Map;
exports["default"] = IMap({
queries: IMap({}),
data: IMap({})
});
module.exports = exports["default"];
/***/ },
/* 13 */
/***/ function(module, exports) {

@@ -635,3 +1215,3 @@

/***/ },
/* 11 */
/* 14 */
/***/ function(module, exports) {

@@ -661,3 +1241,3 @@

/***/ },
/* 12 */
/* 15 */
/***/ function(module, exports, __webpack_require__) {

@@ -671,3 +1251,3 @@

var _immutable = __webpack_require__(13);
var _immutable = __webpack_require__(1);

@@ -724,4 +1304,6 @@ var _immutable2 = _interopRequireDefault(_immutable);

var setNewState = function setNewState(newState, nameSpace) {
state = state.set(nameSpace, newState);
sendUpdate();
if (state.get(nameSpace) !== newState) {
state = state.set(nameSpace, newState);
sendUpdate();
}
return state;

@@ -775,11 +1357,6 @@ };

* @param {Array} args Reducer function arguments.
* @param {Function} [dispatch] Dispatcher function.
* @returns {Immutable.Map} state New state.
*/
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)) || state.get(nameSpace), nameSpace);
var updateState = function updateState(nameSpace, func, args) {
setNewState(func.apply(undefined, [state.get(nameSpace)].concat(args)) || state.get(nameSpace), nameSpace);
return state;

@@ -800,8 +1377,2 @@ };

/***/ },
/* 13 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_13__;
/***/ }

@@ -808,0 +1379,0 @@ /******/ ])

2

dist/gyrejs.min.js

@@ -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(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}])});
!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(15),a=r(u),s=n(5),i=r(s),o=n(9),c=r(o),f=n(13),d=r(f),l=n(14),p=r(l),h={dispatchLogger:d.default,injectDispatch:p.default},g=new Map,m=a.default(),v=function(t,e){return g.has(t)||console.warn(">> GyreJS: Gyre factory '"+t+"' not registered."),g.get(t)(m,Object.assign({},{NS:t+"-"+Date.now()},e))},_=function(t,e){g.set(t,e)};_("local",i.default),_("smartRest",c.default),e.createGyre=v,e.middleWare=h,e.registerGyreFactory=_},function(e,n){e.exports=t},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var u=n(4),a=r(u),s=function(t,e){var n=arguments.length<=2||void 0===arguments[2]?function(){}:arguments[2],r=arguments.length<=3||void 0===arguments[3]?{}:arguments[3];return function(u,s){var i=a.default(u,s),o=function(e,n){return t(u,i.dispatch,e,n,s)},c=function(t){return u.setState(t,s.NS)},f=function(){return u.getState.get(s.NS)},d=e(o);return i.addActions(n(s)),c(r),{addAction:i.addAction,addActions:i.addActions,dispatch:i.dispatch,getState:f,getReducer:o,reactHoC:d,setState:c,use:i.use}}};e.default=s,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t){function e(t,r,u){var a,s,i,o,c,f,d,l,p,h,g,m,v;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:a=Object.keys(t),s=Array.isArray(a),i=0,a=s?a:a[Symbol.iterator]();case 1:if(!s){n.next=7;break}if(!(i>=a.length)){n.next=4;break}return n.abrupt("break",36);case 4:o=a[i++],n.next=11;break;case 7:if(i=a.next(),!i.done){n.next=10;break}return n.abrupt("break",36);case 10:o=i.value;case 11:if(c=o,f=t[c],d=u?u.concat([c]):[c],l={name:r?r+"/"+c:c,branch:d,id:f.id?f.id:null,fields:f.fields?f.fields:null},!(l.fields||l.id&&!f.children)){n.next=18;break}return n.next=18,l;case 18:if(!f.children){n.next=34;break}p=Array.isArray(f.id)?f.id:[f.id],h=Array.isArray(p),g=0,p=h?p:p[Symbol.iterator]();case 20:if(!h){n.next=26;break}if(!(g>=p.length)){n.next=23;break}return n.abrupt("break",34);case 23:m=p[g++],n.next=30;break;case 26:if(g=p.next(),!g.done){n.next=29;break}return n.abrupt("break",34);case 29:m=g.value;case 30:return v=m,n.delegateYield(e(f.children,v?c+"/"+v:c,d),"t0",32);case 32:n.next=20;break;case 34:n.next=1;break;case 36:case"end":return n.stop()}},n[0],this)}for(var n=[e].map(regeneratorRuntime.mark),r=e(t),u=r.next(),a=[];!u.done;)a.push(u.value),u=r.next();return a},r=function(t){var e=n(t);return e.map(function(t){var e=t.name;return t.hasOwnProperty("id")&&null!==t.id&&(e=e+"/"+t.id),Array.isArray(t.fields)&&t.fields.length>0&&(e=e+"?fields="+t.fields.toString()),{path:e,type:t.branch[t.branch.length-1],root:t.name}})},u=function(t){return t.status>=200&&t.status<300?t.json().then(function(t){return{success:!0,data:t}}):new Promise(function(e){return e({success:!1,msg:t,code:t.status})})},a=function(t){return function(e){if(e.success){var n=function(){var n=Array.isArray(e.data)?e.data:[e.data],r={},u={};return r[t.get("root")]=[],u[t.get("type")]={},n.forEach(function(e){r[t.get("root")].push(e.id.toString()),u[t.get("type")][e.id.toString()]=e}),{v:{success:!0,data:u,idList:r}}}();if("object"==typeof n)return n.v}return e}},s=function(t,e){var n=t||location.protocol+"//"+location.hostname+(location.port?":"+location.port:"");return fetch(n+"/"+e.get("path")).then(u).then(a(e))},i=function(t){var e=t.length,n=0;if(0===t.length)return n;for(var r=0;e>r;r++){var u=t.charCodeAt(r);n=(n<<5)-n+u,n|=0}return n},o=function(t){return i(JSON.stringify(t))},c={createUrls:r,fetchUrl:s,hashQueryObject:o};e.default=c,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e){var n=new Map,r=[],u=function o(t){for(var u=arguments.length,a=Array(u>1?u-1:0),s=1;u>s;s++)a[s-1]=arguments[s];n.has(t)?r.reduce(function(n,r){return function(){return r(e.NS,t,a,n,o)}},function(){return n.get(t)(a)})():console.warn(">> GyreJS-'"+e.NS+"'-gyre: Unregistered action dispatched: '"+t+"' with arguments:",a,". (This is a no-op)")},a=function(r,u){return n.set(r,function(n){t.updateState(e.NS,u,n)})},s=function(t){Object.keys(t).forEach(function(e){a(e,t[e])})},i=function(t){r.unshift(t)};return{addAction:a,addActions:s,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(2),a=r(u),s=n(7),i=r(s),o=n(6),c=r(o);e.default=a.default(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.data)):!1}})}};e.default=r,t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var n=function(t,e,n,r,u){var a=function(t){var e=t.get(u.NS),a=Array.isArray(n)?n:[n];r(e?a.reduce(function(t,n){return t[n]=e.get(n),t},{}):void 0)};return t.addReducer(a)};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(3),a=n(1),s=r(a),i=s.default.Map,o=s.default.List,c="COMPLETED",f="LOADING",d="UPDATING",l="ERROR",p={},h="ADD_QUERY",g="FETCH_QUERY",m="COMPLETE_QUERY",v="FAIL_QUERY",_="CREATE",y=i({status:null,count:0});e.default=function(t){var e=t.hostname;return p[h]=function(t,e,n,r){return t.reduce(function(t,a,s){return"queries"===s&&(t=t.set("queries",a.set(n,y.merge(a.get(n)).merge({hash:n,urls:u.createUrls(e)}).map(function(t,e){switch(e){case"count":return t+1;case"status":return t===c?d:t;default:return t}})).map(function(t,e){return e===n&&-1===[f,d].indexOf(t.get("status"))&&r(g,t),t.set("status",t.get("status")||f)}))),t},t)},p[g]=function(t,n,r){var a=n.get("urls").map(function(t){return u.fetchUrl(e,t)});Promise.all(a).then(function(t){var e=t.reduce(function(t,e){var n=e.success,r=e.msg;return n||(t.success=!1,t.msgList=t.msgList.push(r)),t},{success:!0,msgList:o([])});e.success?r(m,t,n):r(v,e.msgList,n)}).catch(function(t){r(v,[t],n)})},p[m]=function(t,e,n){return t.reduce(function(t,r,u){return"queries"===u&&(t=t.set("queries",r.map(function(t,r){var u=t;return r===n.get("hash")&&(u=u.merge({status:c,idList:e.reduce(function(t,e){return t.merge(e.idList)},i({}))})),u}))),"data"===u&&(t=t.set("data",e.reduce(function(t,e){return t.mergeDeep(e.data)},t.get("data")))),t},t)},p[v]=function(t,e,n){return t.reduce(function(t,r,u){return"queries"===u&&(t=t.set("queries",r.map(function(t,r){var u=t;return r===n.get("hash")&&(u=u.merge({status:l,msg:e})),u}))),t},t)},p[_]=function(t,e,n){return t.reduce(function(t,r,u){if("data"===u){var a=Date.now();t=t.setIn(["data",e,a],s.default.fromJS(n))}return t},t)},p},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(2),a=r(u),s=n(11),i=r(s),o=n(10),c=r(o),f=n(8),d=r(f),l=n(12),p=r(l);e.default=a.default(i.default,c.default,d.default,p.default),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=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},a=n(1),s=r(a),i=function(t){return function(e,n,r,a){return React.createClass({displayName:"GyreJS-localHoC",getInitialState:function(){return{data:null}},componentWillMount:function(){this.unRegisterReducer=t(e,this.handleNewData)},shouldComponentUpdate:function(t,e){return this.state.status!==e.status?!0:e.data?!s.default.is(e.data,this.state.data):!0},componentWillUnmount:function(){this.unRegisterReducer()},handleNewData:function(t,e){this.setState({data:e,status:t})},render:function(){if(!this.state||!this.state.status)return!1;var t=void 0;switch(this.state.status){case"LOADING":t=r;break;case"ERROR":t=a;break;default:t=n}return t?React.createElement(t,u({},this.props,this.state)):!1}})}};e.default=i,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),s=n(3),i=a.default.Map,o=function(t,e,n,r,u){var a=u.NS,o=s.hashQueryObject(n),c=function(t){var e=t.getIn([a,"queries",o,"idList"]),n=t.getIn([a,"queries",o]);e?r(n.get("status"),e.reduce(function(e,n,r){var u=e,s=r.split("/").reduce(function(t,e,n){return n%2===0&&n&&t.push("children"),t.push(e),t},[]),i=r.split("/");return i=i[i.length-1],n.forEach(function(e){u=u.mergeDeepIn(s.concat(e),t.getIn([a,"data",i,e]))}),u},i({}))):r(n.get("status"))};return e("ADD_QUERY",n,o),t.addReducer(c)};e.default=o,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),s=a.default.Map;e.default=s({queries:s({}),data:s({})}),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(1),a=r(u),s=a.default.Map,i=function(){var t=s({}),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.get(r)!==e&&(t=t.set(r,e),n()),t},a=function(n){return e.push(n),n(t),r(n)},i=function(){return t},o=function(t,e){return u(s.isMap(t)?t:s(t),e)},c=function(e,n,r){return u(n.apply(void 0,[t.get(e)].concat(r))||t.get(e),e),t};return{addReducer:a,getState:i,setState:o,updateState:c}};e.default=i,t.exports=e.default}])});
/**
* localAH()
* actionHandler()
*
* @param {Object} store instance.
* @param {String} nameSpace state key.
* @param {Object} options Options object.
* @returns {{addAction: Function, dispatch: Function}} API.

@@ -11,3 +11,3 @@ */

exports.__esModule = true;
var localAH = function localAH(store, nameSpace) {
var actionHandler = function actionHandler(store, options) {
// Private variables

@@ -34,3 +34,3 @@ var actionMap = new Map();

return function () {
return next(nameSpace, id, args, prev, dispatch);
return next(options.NS, id, args, prev, dispatch);
};

@@ -41,3 +41,3 @@ }, function () {

} else {
console.warn(">> GyreJS-'" + nameSpace + "'-gyre: Unregistered action dispatched: '" + id + "' with arguments:", args, ". (This is a no-op)");
console.warn(">> GyreJS-'" + options.NS + "'-gyre: Unregistered action dispatched: '" + id + "' with arguments:", args, ". (This is a no-op)");
}

@@ -51,9 +51,8 @@ };

* @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) {
var addAction = function addAction(id, func) {
return actionMap.set(id, function (args) {
store.updateState(nameSpace, func, args, passDispatch ? dispatch : null);
store.updateState(options.NS, func, args);
});

@@ -66,9 +65,8 @@ };

* @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) {
var addActions = function addActions(actions) {
Object.keys(actions).forEach(function (action) {
addAction(action, actions[action], passDispatch);
addAction(action, actions[action]);
});

@@ -96,3 +94,3 @@ };

exports["default"] = localAH;
exports["default"] = actionHandler;
module.exports = exports["default"];

@@ -14,15 +14,14 @@ "use strict";

*
* @param {String} defaultNS Default namespace name.
* @param {Function} Reducer Reducer factory.
* @param {Function} ReactHoC React HoC factory.
* @param {Object} [actions] Default actions object.
* @param {Function} [actions] Default actions object.
* @param {Immutable.Map|Object} [state] Initial state 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);
}
var gyreFactory = function gyreFactory(Reducer, ReactHoC) {
var actions = arguments.length <= 2 || arguments[2] === undefined ? function () {} : arguments[2];
var state = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];
return function (store, options) {
// Private variables
var AH = _actionHandler2["default"](store, options);

@@ -38,3 +37,3 @@ // Public functions

var getReducer = function getReducer(matcher, cb) {
return Reducer(store, matcher, cb, nameSpace);
return Reducer(store, AH.dispatch, matcher, cb, options);
};

@@ -49,6 +48,15 @@

var setState = function setState(tState) {
return store.setState(tState, nameSpace);
return store.setState(tState, options.NS);
};
/**
* getState()
*
* @returns {Immutable.Map} Current store state.
*/
var getState = function getState() {
return store.getState.get(options.NS);
};
/**
* reactHoC()

@@ -61,2 +69,6 @@ *

// Setup
AH.addActions(actions(options));
setState(state);
// API

@@ -67,2 +79,3 @@ return {

dispatch: AH.dispatch,
getState: getState,
getReducer: getReducer,

@@ -69,0 +82,0 @@ reactHoC: reactHoC,

@@ -19,3 +19,3 @@ "use strict";

exports["default"] = _gyreFactory2["default"]("local", _reducer2["default"], _reactHoC2["default"]);
exports["default"] = _gyreFactory2["default"](_reducer2["default"], _reactHoC2["default"]);
module.exports = exports["default"];

@@ -45,3 +45,3 @@ /**

render: function render() {
return typeof this.state.data !== "undefined" ? React.createElement(DefaultComponent, _extends({}, this.props, this.state)) : false;
return typeof this.state.data !== "undefined" ? React.createElement(DefaultComponent, _extends({}, this.props, this.state.data)) : false;
}

@@ -48,0 +48,0 @@ });

@@ -5,5 +5,6 @@ /**

* @param {Object} store Store instance
* @param {Function} dispatch Dispatch
* @param {Array|String} matcher Matcher
* @param {Function} cb Callback
* @param {String} nameSpace Namespace
* @param {Object} options Options object.
* @returns {Function} Un-register function

@@ -14,6 +15,6 @@ */

exports.__esModule = true;
var reducer = function reducer(store, matcher, cb, nameSpace) {
var reducer = function reducer(store, dispatch, matcher, cb, options) {
// Private functions
var update = function update(stateVar) {
var state = stateVar.get(nameSpace);
var state = stateVar.get(options.NS);
var matchValue = Array.isArray(matcher) ? matcher : [matcher];

@@ -20,0 +21,0 @@

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

/**
* Import libs
*/
// Import sub libraries
"use strict";

@@ -18,5 +16,5 @@

var _gyresSimpleRestFactory = require("./gyres/simpleRest/factory");
var _gyresSmartRestFactory = require("./gyres/smartRest/factory");
var _gyresSimpleRestFactory2 = _interopRequireDefault(_gyresSimpleRestFactory);
var _gyresSmartRestFactory2 = _interopRequireDefault(_gyresSmartRestFactory);

@@ -41,3 +39,2 @@ // Middleware

var store = _store2["default"]();
var usedNameSpaces = [];

@@ -49,14 +46,11 @@ // Public functions

* @param {String} id Id of a registered gyre factory.
* @param {String} [nameSpace] Namespace of new gyre.
* @param {Object} [options] Options object for gyre.
* @returns {Object} Gyre instance.
*/
var createGyre = function createGyre(id, nameSpace) {
var createGyre = function createGyre(id, options) {
if (!gyres.has(id)) {
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.");
}
usedNameSpaces.push(nameSpace);
return gyres.get(id)(store, nameSpace);
return gyres.get(id)(store, Object.assign({}, { NS: id + "-" + Date.now() }, options));
};

@@ -77,3 +71,3 @@

registerGyreFactory("local", _gyresLocalFactory2["default"]);
registerGyreFactory("simpleRest", _gyresSimpleRestFactory2["default"]);
registerGyreFactory("smartRest", _gyresSmartRestFactory2["default"]);

@@ -80,0 +74,0 @@ exports.createGyre = createGyre;

@@ -59,4 +59,6 @@ "use strict";

var setNewState = function setNewState(newState, nameSpace) {
state = state.set(nameSpace, newState);
sendUpdate();
if (state.get(nameSpace) !== newState) {
state = state.set(nameSpace, newState);
sendUpdate();
}
return state;

@@ -110,11 +112,6 @@ };

* @param {Array} args Reducer function arguments.
* @param {Function} [dispatch] Dispatcher function.
* @returns {Immutable.Map} state New state.
*/
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)) || state.get(nameSpace), nameSpace);
var updateState = function updateState(nameSpace, func, args) {
setNewState(func.apply(undefined, [state.get(nameSpace)].concat(args)) || state.get(nameSpace), nameSpace);
return state;

@@ -121,0 +118,0 @@ };

{
"name": "gyrejs",
"version": "0.0.13",
"version": "0.0.14",
"description": "Experimental data fetching and state library geared towards ReactJS",

@@ -21,3 +21,3 @@ "main": "lib/gyrejs-min.js",

"watch": "watch 'npm run check' src tests",
"watch:build": "watch 'npm run build' src"
"watch:build": "watch 'npm run build:umd' src"
},

@@ -50,2 +50,3 @@ "repository": {

"eslint-plugin-react": "^3.5.1",
"isomorphic-fetch": "^2.1.1",
"react": "0.14.0",

@@ -52,0 +53,0 @@ "react-dom": "^0.14.0",

/**
* localAH()
* actionHandler()
*
* @param {Object} store instance.
* @param {String} nameSpace state key.
* @param {Object} options Options object.
* @returns {{addAction: Function, dispatch: Function}} API.
*/
const localAH = (store, nameSpace) => {
const actionHandler = (store, options) => {
// Private variables

@@ -25,7 +25,7 @@ const actionMap = new Map();

middleWare.reduce((prev, next) =>
() => next(nameSpace, id, args, prev, dispatch),
() => next(options.NS, id, args, prev, dispatch),
() => actionMap.get(id)(args))();
}
else {
console.warn(`>> GyreJS-'${nameSpace}'-gyre: Unregistered action dispatched: '${id}' with arguments:`,
console.warn(`>> GyreJS-'${options.NS}'-gyre: Unregistered action dispatched: '${id}' with arguments:`,
args, ". (This is a no-op)");

@@ -40,9 +40,8 @@ }

* @param {Function} func Reducer function.
* @param {Boolean} passDispatch Whether to pass the dispatch method to
* the actions.
* @returns {void}
*/
const addAction = (id, func, passDispatch) =>
const addAction = (id, func) =>
actionMap.set(id, (args) => {
store.updateState(nameSpace, func, args, passDispatch ? dispatch : null);
store.updateState(options.NS, func, args);
});

@@ -54,9 +53,8 @@

* @param {Object} actions Key/func object of actions.
* @param {Boolean} passDispatch Whether to pass the dispatch method to
* the actions.
* @returns {void}
*/
const addActions = (actions, passDispatch) => {
const addActions = (actions) => {
Object.keys(actions).forEach(action => {
addAction(action, actions[action], passDispatch);
addAction(action, actions[action]);
});

@@ -84,2 +82,2 @@ };

export default localAH;
export default actionHandler;

@@ -6,55 +6,66 @@ import ActionHandler from "./actionHandler";

*
* @param {String} defaultNS Default namespace name.
* @param {Function} Reducer Reducer factory.
* @param {Function} ReactHoC React HoC factory.
* @param {Object} [actions] Default actions object.
* @param {Function} [actions] Default actions object.
* @param {Immutable.Map|Object} [state] Initial state object.
* @returns {Function} Gyre factory function.
*/
const gyreFactory = (defaultNS, Reducer, ReactHoC, actions) => (store, NS) => {
const nameSpace = NS || defaultNS;
const AH = ActionHandler(store, nameSpace);
if (actions) {
AH.addActions(actions);
}
const gyreFactory = (Reducer, ReactHoC, actions = () => {}, state = {}) =>
(store, options) => {
// Private variables
const AH = ActionHandler(store, options);
// Public functions
/**
* getReducer() Getter for reducer
*
* @param {String} matcher Matcher
* @param {Function} cb Callback
* @returns {Function} Reducer factory
*/
const getReducer = (matcher, cb) =>
Reducer(store, matcher, cb, nameSpace);
// Public functions
/**
* getReducer() Getter for reducer
*
* @param {String} matcher Matcher
* @param {Function} cb Callback
* @returns {Function} Reducer factory
*/
const getReducer = (matcher, cb) =>
Reducer(store, AH.dispatch, matcher, cb, options);
/**
* setState()
*
* @param {Object|Immutable.Map} tState The state to set to this gyre.
* @returns {Immutable.Map} Current store state.
*/
const setState = (tState) =>
store.setState(tState, nameSpace);
/**
* setState()
*
* @param {Object|Immutable.Map} tState The state to set to this gyre.
* @returns {Immutable.Map} Current store state.
*/
const setState = (tState) =>
store.setState(tState, options.NS);
/**
* reactHoC()
*
* @param {Object} react React instance.
* @return {Function} HoC factory function.
*/
const reactHoC = ReactHoC(getReducer);
/**
* getState()
*
* @returns {Immutable.Map} Current store state.
*/
const getState = () =>
store.getState.get(options.NS);
// API
return {
addAction: AH.addAction,
addActions: AH.addActions,
dispatch: AH.dispatch,
getReducer,
reactHoC,
setState,
use: AH.use
/**
* reactHoC()
*
* @param {Object} react React instance.
* @return {Function} HoC factory function.
*/
const reactHoC = ReactHoC(getReducer);
// Setup
AH.addActions(actions(options));
setState(state);
// API
return {
addAction: AH.addAction,
addActions: AH.addActions,
dispatch: AH.dispatch,
getState,
getReducer,
reactHoC,
setState,
use: AH.use
};
};
};
export default gyreFactory;
import GyreFactory from "../../gyreFactory";
import Reducer from "./reducer";
import ReactHoC from "./reactHoC";
export default GyreFactory("local", Reducer, ReactHoC);
export default GyreFactory(Reducer, ReactHoC);

@@ -40,3 +40,3 @@ /**

return typeof this.state.data !== "undefined"
? <DefaultComponent {...this.props} {...this.state}/>
? <DefaultComponent {...this.props} {...this.state.data}/>
: false;

@@ -43,0 +43,0 @@ }

@@ -5,11 +5,12 @@ /**

* @param {Object} store Store instance
* @param {Function} dispatch Dispatch
* @param {Array|String} matcher Matcher
* @param {Function} cb Callback
* @param {String} nameSpace Namespace
* @param {Object} options Options object.
* @returns {Function} Un-register function
*/
const reducer = (store, matcher, cb, nameSpace) => {
const reducer = (store, dispatch, matcher, cb, options) => {
// Private functions
const update = (stateVar) => {
const state = stateVar.get(nameSpace);
const state = stateVar.get(options.NS);
const matchValue = Array.isArray(matcher) ? matcher : [matcher];

@@ -16,0 +17,0 @@

@@ -1,7 +0,5 @@

/**
* Import libs
*/
// Import sub libraries
import Store from "./store";
import LocalGyre from "./gyres/local/factory";
import SimpleRestGyre from "./gyres/simpleRest/factory";
import SmartRestGyre from "./gyres/smartRest/factory";

@@ -19,3 +17,2 @@ // Middleware

const store = Store();
const usedNameSpaces = [];

@@ -27,14 +24,11 @@ // Public functions

* @param {String} id Id of a registered gyre factory.
* @param {String} [nameSpace] Namespace of new gyre.
* @param {Object} [options] Options object for gyre.
* @returns {Object} Gyre instance.
*/
const createGyre = (id, nameSpace) => {
const createGyre = (id, options) => {
if (!gyres.has(id)) {
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.`);
}
usedNameSpaces.push(nameSpace);
return gyres.get(id)(store, nameSpace);
return gyres.get(id)(store, Object.assign({}, {NS: `${id}-${Date.now()}`}, options));
};

@@ -55,3 +49,3 @@

registerGyreFactory("local", LocalGyre);
registerGyreFactory("simpleRest", SimpleRestGyre);
registerGyreFactory("smartRest", SmartRestGyre);

@@ -58,0 +52,0 @@ export {

@@ -43,4 +43,6 @@ import Immutable from "immutable";

const setNewState = (newState, nameSpace) => {
state = state.set(nameSpace, newState);
sendUpdate();
if (state.get(nameSpace) !== newState) {
state = state.set(nameSpace, newState);
sendUpdate();
}
return state;

@@ -91,11 +93,6 @@ };

* @param {Array} args Reducer function arguments.
* @param {Function} [dispatch] Dispatcher function.
* @returns {Immutable.Map} state New state.
*/
const updateState = (nameSpace, func, args, dispatch) => {
var farg = [state.get(nameSpace) || IMap({})];
if (dispatch) {
farg.concat(dispatch);
}
setNewState(func(...farg.concat(args)) || state.get(nameSpace), nameSpace);
const updateState = (nameSpace, func, args) => {
setNewState(func(...[state.get(nameSpace)].concat(args)) || state.get(nameSpace), nameSpace);
return state;

@@ -102,0 +99,0 @@ };

Sorry, the diff of this file is not supported yet