UNPKG

react-dadata

Version:

React-компонент для подсказок адресов, организаций и банков с помощью сервиса DaData.ru

47 lines (46 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeRequest = void 0; var xhr; var makeRequest = function (method, endpoint, data, cache, onReceiveData) { if (xhr) { xhr.abort(); } var cacheKey; if (cache) { cacheKey = cache.serializeCacheKey({ headers: data.headers, body: data.json, url: endpoint, method: method, }); var cachedData = cache.get(cacheKey); if (cachedData) { onReceiveData(cachedData); return; } } xhr = new XMLHttpRequest(); xhr.open(method, endpoint); if (data.headers) { for (var _i = 0, _a = Object.entries(data.headers); _i < _a.length; _i++) { var _b = _a[_i], header = _b[0], headerValue = _b[1]; xhr.setRequestHeader(header, headerValue); } } xhr.send(JSON.stringify(data.json)); xhr.onreadystatechange = function () { var _a; if (!xhr || xhr.readyState !== 4) { return; } if (xhr.status === 200) { var payload = (_a = JSON.parse(xhr.response)) === null || _a === void 0 ? void 0 : _a.suggestions; if (payload) { cache === null || cache === void 0 ? void 0 : cache.set(cacheKey, payload); onReceiveData(payload); } } }; }; exports.makeRequest = makeRequest;