fix: Обновить проверку лимита в API для корректной обработки запросов, улучшив фильтрацию данных и предотвращая ошибки при некорректных значениях лимита
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m41s

This commit is contained in:
2025-08-27 17:50:42 +07:00
parent cd3f7a84e3
commit 6a81ad9983
3 changed files with 15 additions and 9 deletions
+2 -1
View File
@@ -102,7 +102,8 @@ function Dashboard() {
const domains = [];
const ipRanges = [];
const asns = [];
const servers = serversRes.status === 'fulfilled' ? serversRes.value.data : [];
const serversRaw = serversRes.status === 'fulfilled' ? serversRes.value.data : [];
const servers = Array.isArray(serversRaw) ? serversRaw : [];
setRaw({ domains, ipRanges, asns, servers });
const countries = new Set(servers.map(server => server.country).filter(Boolean));
const providers = new Set(servers.map(server => server.provider).filter(Boolean));
+9 -4
View File
@@ -32,15 +32,20 @@ api.interceptors.response.use(
if (method === 'get') {
const key = buildCacheKey(response.config);
const etag = response.headers?.etag;
if (etag) {
responseCache.set(key, { etag, data: response.data, headers: response.headers });
}
// Если пришёл 304 (на всякий случай, axios обычно не кидает в success 304), подменим данными из кеша
// Если 304 — всегда пробуем вернуть кеш, не трогая response.data
if (response.status === 304) {
const cached = responseCache.get(key);
if (cached) {
return { ...response, status: 200, data: cached.data, headers: { ...cached.headers, 'x-from-cache': '1' } };
}
// нет кеша — вернём пустые семантически корректные данные (чтобы не падали .map)
// вызывающий код должен ожидать типы, поэтому лучше не подменять тип неожиданно.
// Просто пропустим дальше как есть — до второго интерсептора и обработчиков.
return response;
}
// Не 304: обновляем кеш, но только если есть валидный etag
if (etag) {
responseCache.set(key, { etag, data: response.data, headers: response.headers });
}
}
} catch {}