@dabapps/redux-requests
Version:
Library for simple redux requests
83 lines • 3.07 kB
JavaScript
;
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