@vizzuality/layer-manager-utils
Version:
32 lines • 1.59 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetch = exports.post = exports.get = void 0;
const axios_1 = __importDefault(require("axios"));
const defaultHeaders = {
'Content-Type': 'application/json',
};
const get = (url, options = {}) => (0, axios_1.default)(Object.assign(Object.assign({}, options), { headers: Object.assign(Object.assign({}, defaultHeaders), (options.headers || {})), url, method: 'get' }));
exports.get = get;
const post = (url, body, options = {}) => (0, axios_1.default)(Object.assign(Object.assign({}, options), { headers: Object.assign(Object.assign({}, defaultHeaders), (options.headers || {})), data: body, url, method: 'post' }));
exports.post = post;
const fetch = (type, url, options = {}, layerModel) => {
const { layerRequest } = layerModel;
if (layerRequest) {
layerRequest.cancel('Operation canceled by the user.');
}
const layerRequestSource = axios_1.default.CancelToken.source();
layerModel.setLayerRequest(layerRequestSource);
const method = type === 'post' ? exports.post : exports.get;
const newLayerRequest = method(url, Object.assign(Object.assign({}, options), { cancelToken: layerRequestSource.token })).then((res) => {
if (res.status > 400) {
throw new Error(res.data);
}
return res.data;
});
return newLayerRequest;
};
exports.fetch = fetch;
//# sourceMappingURL=request.js.map