UNPKG

@minax/redux-hooks

Version:
87 lines (76 loc) 7.28 kB
"use strict"; 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