patternplate-client
Version:
Universal javascript client application for patternplate
122 lines (94 loc) • 8.98 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
exports.createPromiseThunkAction = createPromiseThunkAction;
exports.handlePromiseThunkAction = handlePromiseThunkAction;
var _reduxActions = require('redux-actions');
var _handleDependentActions = require('./handle-dependent-actions');
var _handleDependentActions2 = _interopRequireDefault(_handleDependentActions);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ident = function ident(i) {
return i;
};
var asyncIdent = function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(i) {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
return _context.abrupt('return', i);
case 1:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
}));
return function asyncIdent(_x) {
return _ref.apply(this, arguments);
};
}();
function createPromiseThunkAction(name, rawCreator) {
var _this = this;
var creator = rawCreator || asyncIdent;
var fn = function fn(payload) {
var delayedAction = (0, _reduxActions.createAction)(name + '_DELAYED');
var successAction = (0, _reduxActions.createAction)(name + '_SUCCESS');
var startAction = (0, _reduxActions.createAction)(name + '_START');
var throwsAction = (0, _reduxActions.createAction)(name + '_THROWS');
return function () {
var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(dispatch, getState) {
var delayedTimer, result;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
dispatch(startAction(payload, ident, getState));
delayedTimer = global.setTimeout(function () {
dispatch(delayedAction(payload, ident, getState));
}, 1000);
_context2.prev = 2;
_context2.next = 5;
return creator(payload, dispatch, getState);
case 5:
result = _context2.sent;
global.clearTimeout(delayedTimer);
dispatch(successAction(result));
return _context2.abrupt('return', result);
case 11:
_context2.prev = 11;
_context2.t0 = _context2['catch'](2);
global.clearTimeout(delayedTimer);
dispatch(throwsAction(_context2.t0));
return _context2.abrupt('return', _context2.t0);
case 16:
case 'end':
return _context2.stop();
}
}
}, _callee2, _this, [[2, 11]]);
}));
return function (_x2, _x3) {
return _ref2.apply(this, arguments);
};
}();
};
fn.__name = name;
return fn;
}
function handlePromiseThunkAction(rawName, handler) {
var _handleDependentActio;
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var name = rawName.__name || rawName;
options.dependencies = options.dependencies || [];
var reducer = (0, _handleDependentActions2.default)((_handleDependentActio = {}, (0, _defineProperty3.default)(_handleDependentActio, name + '_START', handler.start || ident), (0, _defineProperty3.default)(_handleDependentActio, name + '_DELAYED', handler.delayed || ident), (0, _defineProperty3.default)(_handleDependentActio, name + '_SUCCESS', handler.success || ident), (0, _defineProperty3.default)(_handleDependentActio, name + '_THROWS', handler.throws || ident), _handleDependentActio), options);
return reducer;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9hcHBsaWNhdGlvbi9hY3Rpb25zL3Byb21pc2UtdGh1bmstYWN0aW9uLmpzIl0sIm5hbWVzIjpbImNyZWF0ZVByb21pc2VUaHVua0FjdGlvbiIsImhhbmRsZVByb21pc2VUaHVua0FjdGlvbiIsImlkZW50IiwiaSIsImFzeW5jSWRlbnQiLCJuYW1lIiwicmF3Q3JlYXRvciIsImNyZWF0b3IiLCJmbiIsImRlbGF5ZWRBY3Rpb24iLCJzdWNjZXNzQWN0aW9uIiwic3RhcnRBY3Rpb24iLCJ0aHJvd3NBY3Rpb24iLCJkaXNwYXRjaCIsImdldFN0YXRlIiwicGF5bG9hZCIsImRlbGF5ZWRUaW1lciIsImdsb2JhbCIsInNldFRpbWVvdXQiLCJyZXN1bHQiLCJjbGVhclRpbWVvdXQiLCJfX25hbWUiLCJyYXdOYW1lIiwiaGFuZGxlciIsIm9wdGlvbnMiLCJkZXBlbmRlbmNpZXMiLCJyZWR1Y2VyIiwic3RhcnQiLCJkZWxheWVkIiwic3VjY2VzcyIsInRocm93cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBTWdCQSx3QixHQUFBQSx3QjtRQThCQUMsd0IsR0FBQUEsd0I7O0FBcENoQjs7QUFDQTs7Ozs7O0FBRUEsSUFBTUMsUUFBUSxTQUFSQSxLQUFRO0FBQUEsUUFBS0MsQ0FBTDtBQUFBLENBQWQ7QUFDQSxJQUFNQztBQUFBLHFGQUFhLGlCQUFNRCxDQUFOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1Q0FBV0EsQ0FBWDs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUFiOztBQUFBO0FBQUE7QUFBQTtBQUFBLEdBQU47O0FBRU8sU0FBU0gsd0JBQVQsQ0FBa0NLLElBQWxDLEVBQXdDQyxVQUF4QyxFQUFvRDtBQUFBOztBQUMxRCxLQUFNQyxVQUFVRCxjQUFjRixVQUE5Qjs7QUFFQSxLQUFNSSxLQUFLLFNBQUxBLEVBQUssVUFBVztBQUNyQixNQUFNQyxnQkFBZ0IsZ0NBQWdCSixJQUFoQixjQUF0QjtBQUNBLE1BQU1LLGdCQUFnQixnQ0FBZ0JMLElBQWhCLGNBQXRCO0FBQ0EsTUFBTU0sY0FBYyxnQ0FBZ0JOLElBQWhCLFlBQXBCO0FBQ0EsTUFBTU8sZUFBZSxnQ0FBZ0JQLElBQWhCLGFBQXJCOztBQUVBO0FBQUEsd0ZBQU8sa0JBQU9RLFFBQVAsRUFBaUJDLFFBQWpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNORCxpQkFBU0YsWUFBWUksT0FBWixFQUFxQmIsS0FBckIsRUFBNEJZLFFBQTVCLENBQVQ7QUFDTUUsb0JBRkEsR0FFZUMsT0FBT0MsVUFBUCxDQUFrQixZQUFNO0FBQzVDTCxrQkFBU0osY0FBY00sT0FBZCxFQUF1QmIsS0FBdkIsRUFBOEJZLFFBQTlCLENBQVQ7QUFDQSxTQUZvQixFQUVsQixJQUZrQixDQUZmO0FBQUE7QUFBQTtBQUFBLGVBTWdCUCxRQUFRUSxPQUFSLEVBQWlCRixRQUFqQixFQUEyQkMsUUFBM0IsQ0FOaEI7O0FBQUE7QUFNQ0ssY0FORDs7QUFPTEYsZUFBT0csWUFBUCxDQUFvQkosWUFBcEI7QUFDQUgsaUJBQVNILGNBQWNTLE1BQWQsQ0FBVDtBQVJLLDBDQVNFQSxNQVRGOztBQUFBO0FBQUE7QUFBQTs7QUFXTEYsZUFBT0csWUFBUCxDQUFvQkosWUFBcEI7QUFDQUgsaUJBQVNELDBCQUFUO0FBWks7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBUDs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQSxFQXRCRDtBQXVCQUosSUFBR2EsTUFBSCxHQUFZaEIsSUFBWjtBQUNBLFFBQU9HLEVBQVA7QUFDQTs7QUFFTSxTQUFTUCx3QkFBVCxDQUFrQ3FCLE9BQWxDLEVBQTJDQyxPQUEzQyxFQUFrRTtBQUFBOztBQUFBLEtBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFDeEUsS0FBTW5CLE9BQU9pQixRQUFRRCxNQUFSLElBQWtCQyxPQUEvQjtBQUNBRSxTQUFRQyxZQUFSLEdBQXVCRCxRQUFRQyxZQUFSLElBQXdCLEVBQS9DO0FBQ0EsS0FBTUMsVUFBVSx3SEFDWHJCLElBRFcsYUFDSWtCLFFBQVFJLEtBQVIsSUFBaUJ6QixLQURyQix3REFFWEcsSUFGVyxlQUVNa0IsUUFBUUssT0FBUixJQUFtQjFCLEtBRnpCLHdEQUdYRyxJQUhXLGVBR01rQixRQUFRTSxPQUFSLElBQW1CM0IsS0FIekIsd0RBSVhHLElBSlcsY0FJS2tCLFFBQVFPLE1BQVIsSUFBa0I1QixLQUp2QiwyQkFLYnNCLE9BTGEsQ0FBaEI7QUFNQSxRQUFPRSxPQUFQO0FBQ0EiLCJmaWxlIjoicHJvbWlzZS10aHVuay1hY3Rpb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUFjdGlvbn0gZnJvbSAncmVkdXgtYWN0aW9ucyc7XG5pbXBvcnQgaGFuZGxlRGVwZW5kZW50QWN0aW9ucyBmcm9tICcuL2hhbmRsZS1kZXBlbmRlbnQtYWN0aW9ucyc7XG5cbmNvbnN0IGlkZW50ID0gaSA9PiBpO1xuY29uc3QgYXN5bmNJZGVudCA9IGFzeW5jIGkgPT4gaTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VUaHVua0FjdGlvbihuYW1lLCByYXdDcmVhdG9yKSB7XG5cdGNvbnN0IGNyZWF0b3IgPSByYXdDcmVhdG9yIHx8IGFzeW5jSWRlbnQ7XG5cblx0Y29uc3QgZm4gPSBwYXlsb2FkID0+IHtcblx0XHRjb25zdCBkZWxheWVkQWN0aW9uID0gY3JlYXRlQWN0aW9uKGAke25hbWV9X0RFTEFZRURgKTtcblx0XHRjb25zdCBzdWNjZXNzQWN0aW9uID0gY3JlYXRlQWN0aW9uKGAke25hbWV9X1NVQ0NFU1NgKTtcblx0XHRjb25zdCBzdGFydEFjdGlvbiA9IGNyZWF0ZUFjdGlvbihgJHtuYW1lfV9TVEFSVGApO1xuXHRcdGNvbnN0IHRocm93c0FjdGlvbiA9IGNyZWF0ZUFjdGlvbihgJHtuYW1lfV9USFJPV1NgKTtcblxuXHRcdHJldHVybiBhc3luYyAoZGlzcGF0Y2gsIGdldFN0YXRlKSA9PiB7XG5cdFx0XHRkaXNwYXRjaChzdGFydEFjdGlvbihwYXlsb2FkLCBpZGVudCwgZ2V0U3RhdGUpKTtcblx0XHRcdGNvbnN0IGRlbGF5ZWRUaW1lciA9IGdsb2JhbC5zZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0ZGlzcGF0Y2goZGVsYXllZEFjdGlvbihwYXlsb2FkLCBpZGVudCwgZ2V0U3RhdGUpKTtcblx0XHRcdH0sIDEwMDApO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgY3JlYXRvcihwYXlsb2FkLCBkaXNwYXRjaCwgZ2V0U3RhdGUpO1xuXHRcdFx0XHRnbG9iYWwuY2xlYXJUaW1lb3V0KGRlbGF5ZWRUaW1lcik7XG5cdFx0XHRcdGRpc3BhdGNoKHN1Y2Nlc3NBY3Rpb24ocmVzdWx0KSk7XG5cdFx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRnbG9iYWwuY2xlYXJUaW1lb3V0KGRlbGF5ZWRUaW1lcik7XG5cdFx0XHRcdGRpc3BhdGNoKHRocm93c0FjdGlvbihlcnJvcikpO1xuXHRcdFx0XHRyZXR1cm4gZXJyb3I7XG5cdFx0XHR9XG5cdFx0fTtcblx0fTtcblx0Zm4uX19uYW1lID0gbmFtZTtcblx0cmV0dXJuIGZuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlUHJvbWlzZVRodW5rQWN0aW9uKHJhd05hbWUsIGhhbmRsZXIsIG9wdGlvbnMgPSB7fSkge1xuXHRjb25zdCBuYW1lID0gcmF3TmFtZS5fX25hbWUgfHwgcmF3TmFtZTtcblx0b3B0aW9ucy5kZXBlbmRlbmNpZXMgPSBvcHRpb25zLmRlcGVuZGVuY2llcyB8fCBbXTtcblx0Y29uc3QgcmVkdWNlciA9IGhhbmRsZURlcGVuZGVudEFjdGlvbnMoe1xuXHRcdFtgJHtuYW1lfV9TVEFSVGBdOiBoYW5kbGVyLnN0YXJ0IHx8IGlkZW50LFxuXHRcdFtgJHtuYW1lfV9ERUxBWUVEYF06IGhhbmRsZXIuZGVsYXllZCB8fCBpZGVudCxcblx0XHRbYCR7bmFtZX1fU1VDQ0VTU2BdOiBoYW5kbGVyLnN1Y2Nlc3MgfHwgaWRlbnQsXG5cdFx0W2Ake25hbWV9X1RIUk9XU2BdOiBoYW5kbGVyLnRocm93cyB8fCBpZGVudFxuXHR9LCBvcHRpb25zKTtcblx0cmV0dXJuIHJlZHVjZXI7XG59XG4iXX0=
;