UNPKG

@dabapps/redux-requests

Version:
83 lines 3.07 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require("./utils"); exports.REQUEST_STATE = 'REQUEST_STATE'; function setRequestState(actionSet, requestState, data, tag, meta) { if (tag === void 0) { tag = ''; } return { payload: { actionSet: actionSet, data: data, requestState: requestState, tag: tag, meta: meta, }, type: exports.REQUEST_STATE, }; } exports.setRequestState = setRequestState; exports.RESET_REQUEST_STATE = 'RESET_REQUEST_STATE'; function resetRequestState(actionSet, tag) { if (tag === void 0) { tag = ''; } return { payload: { actionSet: actionSet, tag: tag, }, type: exports.RESET_REQUEST_STATE, }; } exports.resetRequestState = resetRequestState; function serializeMeta(meta, options) { return __assign({}, meta, { tag: options.tag || '' }); } function requestWithConfig(actionSet, axiosConfig, options, extraMeta) { if (options === void 0) { options = {}; } if (extraMeta === void 0) { extraMeta = {}; } return function (dispatch) { var meta = serializeMeta(extraMeta, options); dispatch({ type: actionSet.REQUEST, meta: meta }); dispatch(setRequestState(actionSet, 'REQUEST', null, meta.tag, meta)); return utils_1.apiRequest(axiosConfig).then(function (response) { dispatch({ type: actionSet.SUCCESS, payload: response, meta: meta, }); dispatch(setRequestState(actionSet, 'SUCCESS', response, meta.tag)); return response; }, function (error) { var shouldRethrow = options.shouldRethrow; dispatch({ type: actionSet.FAILURE, payload: error, meta: meta, error: true, }); dispatch(setRequestState(actionSet, 'FAILURE', error, meta.tag)); if (shouldRethrow && shouldRethrow(error)) { return Promise.reject(error); } return Promise.resolve(); }); }; } exports.requestWithConfig = requestWithConfig; function request(actionSet, url, method, data, params) { if (params === void 0) { params = {}; } var headers = params.headers, tag = params.tag, metaData = params.metaData, shouldRethrow = params.shouldRethrow; return requestWithConfig(actionSet, { url: url, method: method, data: data, headers: headers }, { tag: tag, shouldRethrow: shouldRethrow }, metaData); } exports.request = request; //# sourceMappingURL=actions.js.map