/
inssane
/
Axios-api
Обзор
Документация
Войти
/
inssane
/
Axios-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
api/core/normalizeEndpoint.ts
31 строка
1 KB
Павел Чернышев
feat(core): добавить createApiClient и инфраструктуру мидлвар
02 июн 2026, 17:41
02 июн 2026, 17:41
1746604
Код
Авторство
О чём код?
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; const LONG_HEX_RE = /^[0-9a-f]{24,}$/i; const NUMERIC_RE = /^\d+$/; /** * Приводит путь запроса к стабильному виду для группировки в метриках и Sentry: * динамические сегменты (числовые id, UUID, длинные hex/guid) заменяются плейсхолдерами. * * `'/user/123/orders/8f3a1c2e-...'` → `'/user/:id/orders/:uuid'` * * Базовый хелпер; будущая endpoint-мидлвара сможет переиспользовать и расширить правила. */ export const normalizeEndpoint = (url?: string): string => { if (!url) return 'unknown'; const [path = ''] = url.split('?'); const normalized = path .split('/') .map(segment => { if (!segment) return segment; if (NUMERIC_RE.test(segment)) return ':id'; if (UUID_RE.test(segment)) return ':uuid'; if (LONG_HEX_RE.test(segment)) return ':id'; return segment; }) .join('/'); return normalized || '/'; };