@minax/redux-hooks
Version:
Achieve Redux By React Hooks
87 lines (76 loc) • 7.28 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var isPromise = function isPromise(obj) {
return !!obj && (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
};
var createActions = function createActions(actions, dispatch, additions) {
var haveLoading = additions && additions.find(function (i) {
return i === 'loading';
});
var res = {};
Object.keys(actions).forEach(function (key) {
res[key] = function () {
var val = actions[key].apply(actions, arguments);
if (isPromise(val)) {
return new Promise(function (resolve) {
if (haveLoading) {
dispatch({
type: '@@loading/start',
payload: key
});
}
val.then(function (v) {
dispatch({
payload: v,
type: key
});
if (haveLoading) {
dispatch({
type: '@@loading/end',
payload: key
});
}
resolve({
payload: v,
type: key
});
})["catch"](function (err) {
dispatch({
payload: err,
type: key,
error: true
});
if (haveLoading) {
dispatch({
type: '@@loading/end',
payload: key
});
}
resolve({
payload: err,
type: key,
error: true
});
});
});
} else {
dispatch({
payload: val,
type: key
});
return {
payload: val,
type: key
};
}
};
});
return res;
};
var _default = createActions;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVBY3Rpb25zLnRzIl0sIm5hbWVzIjpbImlzUHJvbWlzZSIsIm9iaiIsInRoZW4iLCJjcmVhdGVBY3Rpb25zIiwiYWN0aW9ucyIsImRpc3BhdGNoIiwiYWRkaXRpb25zIiwiaGF2ZUxvYWRpbmciLCJmaW5kIiwiaSIsInJlcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwidmFsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0eXBlIiwicGF5bG9hZCIsInYiLCJlcnIiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBTUEsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ0MsR0FBRCxFQUFjO0FBQzlCLFNBQ0UsQ0FBQyxDQUFDQSxHQUFGLEtBQ0MsUUFBT0EsR0FBUCxNQUFlLFFBQWYsSUFBMkIsT0FBT0EsR0FBUCxLQUFlLFVBRDNDLEtBRUEsT0FBT0EsR0FBRyxDQUFDQyxJQUFYLEtBQW9CLFVBSHRCO0FBS0QsQ0FORDs7QUFRQSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLE9BQUQsRUFBZUMsUUFBZixFQUE4QkMsU0FBOUIsRUFBdUQ7QUFDM0UsTUFBTUMsV0FBVyxHQUFHRCxTQUFTLElBQUlBLFNBQVMsQ0FBQ0UsSUFBVixDQUFlLFVBQUFDLENBQUM7QUFBQSxXQUFJQSxDQUFDLEtBQUssU0FBVjtBQUFBLEdBQWhCLENBQWpDO0FBQ0EsTUFBTUMsR0FBUSxHQUFHLEVBQWpCO0FBQ0FDLEVBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZUixPQUFaLEVBQXFCUyxPQUFyQixDQUE2QixVQUFDQyxHQUFELEVBQVM7QUFDcENKLElBQUFBLEdBQUcsQ0FBQ0ksR0FBRCxDQUFILEdBQVcsWUFBa0I7QUFDM0IsVUFBTUMsR0FBRyxHQUFHWCxPQUFPLENBQUNVLEdBQUQsQ0FBUCxPQUFBVixPQUFPLFlBQW5COztBQUNBLFVBQUlKLFNBQVMsQ0FBQ2UsR0FBRCxDQUFiLEVBQW9CO0FBQ2xCLGVBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBYTtBQUM5QixjQUFJVixXQUFKLEVBQWlCO0FBQ2ZGLFlBQUFBLFFBQVEsQ0FBQztBQUNQYSxjQUFBQSxJQUFJLEVBQUUsaUJBREM7QUFFUEMsY0FBQUEsT0FBTyxFQUFFTDtBQUZGLGFBQUQsQ0FBUjtBQUlEOztBQUNEQyxVQUFBQSxHQUFHLENBQUNiLElBQUosQ0FBUyxVQUFDa0IsQ0FBRCxFQUFZO0FBQ25CZixZQUFBQSxRQUFRLENBQUM7QUFDUGMsY0FBQUEsT0FBTyxFQUFFQyxDQURGO0FBRVBGLGNBQUFBLElBQUksRUFBRUo7QUFGQyxhQUFELENBQVI7O0FBSUEsZ0JBQUlQLFdBQUosRUFBaUI7QUFDZkYsY0FBQUEsUUFBUSxDQUFDO0FBQ1BhLGdCQUFBQSxJQUFJLEVBQUUsZUFEQztBQUVQQyxnQkFBQUEsT0FBTyxFQUFFTDtBQUZGLGVBQUQsQ0FBUjtBQUlEOztBQUNERyxZQUFBQSxPQUFPLENBQUM7QUFBRUUsY0FBQUEsT0FBTyxFQUFFQyxDQUFYO0FBQWNGLGNBQUFBLElBQUksRUFBRUo7QUFBcEIsYUFBRCxDQUFQO0FBQ0QsV0FaRCxXQVlTLFVBQUNPLEdBQUQsRUFBYztBQUNyQmhCLFlBQUFBLFFBQVEsQ0FBQztBQUNQYyxjQUFBQSxPQUFPLEVBQUVFLEdBREY7QUFFUEgsY0FBQUEsSUFBSSxFQUFFSixHQUZDO0FBR1BRLGNBQUFBLEtBQUssRUFBRTtBQUhBLGFBQUQsQ0FBUjs7QUFLQSxnQkFBSWYsV0FBSixFQUFpQjtBQUNmRixjQUFBQSxRQUFRLENBQUM7QUFDUGEsZ0JBQUFBLElBQUksRUFBRSxlQURDO0FBRVBDLGdCQUFBQSxPQUFPLEVBQUVMO0FBRkYsZUFBRCxDQUFSO0FBSUQ7O0FBQ0RHLFlBQUFBLE9BQU8sQ0FBQztBQUFFRSxjQUFBQSxPQUFPLEVBQUVFLEdBQVg7QUFBZ0JILGNBQUFBLElBQUksRUFBRUosR0FBdEI7QUFBMkJRLGNBQUFBLEtBQUssRUFBRTtBQUFsQyxhQUFELENBQVA7QUFDRCxXQXpCRDtBQTBCRCxTQWpDTSxDQUFQO0FBa0NELE9BbkNELE1BbUNPO0FBQ0xqQixRQUFBQSxRQUFRLENBQUM7QUFDUGMsVUFBQUEsT0FBTyxFQUFFSixHQURGO0FBRVBHLFVBQUFBLElBQUksRUFBRUo7QUFGQyxTQUFELENBQVI7QUFJQSxlQUFPO0FBQUVLLFVBQUFBLE9BQU8sRUFBRUosR0FBWDtBQUFnQkcsVUFBQUEsSUFBSSxFQUFFSjtBQUF0QixTQUFQO0FBQ0Q7QUFDRixLQTVDRDtBQTZDRCxHQTlDRDtBQStDQSxTQUFPSixHQUFQO0FBQ0QsQ0FuREQ7O2VBcURlUCxhIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNQcm9taXNlID0gKG9iajogYW55KSA9PiB7XG4gIHJldHVybiAoXG4gICAgISFvYmogJiZcbiAgICAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJykgJiZcbiAgICB0eXBlb2Ygb2JqLnRoZW4gPT09ICdmdW5jdGlvbidcbiAgKVxufVxuXG5jb25zdCBjcmVhdGVBY3Rpb25zID0gKGFjdGlvbnM6IGFueSwgZGlzcGF0Y2g6IGFueSwgYWRkaXRpb25zPzogc3RyaW5nW10pID0+IHtcbiAgY29uc3QgaGF2ZUxvYWRpbmcgPSBhZGRpdGlvbnMgJiYgYWRkaXRpb25zLmZpbmQoaSA9PiBpID09PSAnbG9hZGluZycpXG4gIGNvbnN0IHJlczogYW55ID0ge31cbiAgT2JqZWN0LmtleXMoYWN0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgcmVzW2tleV0gPSAoLi4uYXJnczogYW55KSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBhY3Rpb25zW2tleV0oLi4uYXJncylcbiAgICAgIGlmIChpc1Byb21pc2UodmFsKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICBpZiAoaGF2ZUxvYWRpbmcpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgdHlwZTogJ0BAbG9hZGluZy9zdGFydCcsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IGtleVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsLnRoZW4oKHY6IGFueSkgPT4ge1xuICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB2LFxuICAgICAgICAgICAgICB0eXBlOiBrZXlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBpZiAoaGF2ZUxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdAQGxvYWRpbmcvZW5kJyxcbiAgICAgICAgICAgICAgICBwYXlsb2FkOiBrZXlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUoeyBwYXlsb2FkOiB2LCB0eXBlOiBrZXkgfSlcbiAgICAgICAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgcGF5bG9hZDogZXJyLFxuICAgICAgICAgICAgICB0eXBlOiBrZXksXG4gICAgICAgICAgICAgIGVycm9yOiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgaWYgKGhhdmVMb2FkaW5nKSB7XG4gICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnQEBsb2FkaW5nL2VuZCcsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDoga2V5XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKHsgcGF5bG9hZDogZXJyLCB0eXBlOiBrZXksIGVycm9yOiB0cnVlIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICBwYXlsb2FkOiB2YWwsXG4gICAgICAgICAgdHlwZToga2V5XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiB7IHBheWxvYWQ6IHZhbCwgdHlwZToga2V5IH1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG4gIHJldHVybiByZXNcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlQWN0aW9uc1xuIl19
;