API client for True Engineering React projects
API Client — обёртка над Axios с поддержкой фиче-флагов и возможностью отмены запросов.
- Обновлены настройки npm registry
- Добавлена интеграция @tanstack/react-query
- Добавлена pathTemplateMiddleware
- Добавлена поддержка динамических хэдеров
- Добавлен экспорт isErrorQuery и getErrorCode
- mock - добавлен NoInfer
- Исправлен тип mock
- Унифицирована конфигурация моков
- Добавлена поддержка ошибки в canceledRequestHandler
- Добавлены расширяемый тип ApiConfig и семейство вспомогательных типов
- Добавлен public static withQueries - фабричный метод для создания API клиента с системой динамического добавления запросов
- export default заменен на именованный экспорт
- axios - обновлен до последней версии
- BaseConfigType - исправлена типизация полей transformError, processResponseHeaders, setFeatureFlags
- IRequestOptions - добавлены поля method, areParallelRequestsPossible, isCacheDisabled, path
- compileQuery - переписан на URLSearchParams, добавлена кастомизация spaceEncoder
- private static addNewQueryParam, preventCache и getUrlTail - удалены
- private shouldMockRequest, processFeatureFlags - изменена сигнатура
- public pendingRequests - CancelTokenSource заменен на AbortController ()
- public compileUrl - больше не мержит опции с this.request и не обрабатывает isCacheDisabled
- protected getRequestOrMock - заменен на protected getRequest, теперь занимается только инициацией запроса
- public createRequest - теперь занимается сборкой и запуском middlewares
- Добавлены опция middlewares и метод getDefaultMiddlewares
- Старая логика createRequest и getRequestOrMock перенесена в *Middleware методы с небольшими изменениями:
- transformError теперь вызывается до showErrorToaster
- Отменный запрос не попадает в mapper
- areParallelRequestsPossible теперь влияет на текущий запрос, а не предыдущий (для константного значения логика не изменилась)
- isCacheDisabled теперь добавляет ключ _ (&_=123 вместо &123)
- Поднята версия NodeJs
- Расширен тип IRequestParams (IValidTypes) - boolean
- Тип RequestMethodTypes - заменен на Method (axios)
- Добавлен параметр requestName в метод hidePreloader
- Добавлено свойство shouldShowGlobalPreloader в apiClient
- Добавлена возможность получить полную ошибку в showErrorToaster (поле rawError в IApiClientError)
- Реализована возможность мока отдельного метода (поле mockedEnvironments в IRequestOptionsBase)
- Реализована возможность отмены запроса (поле signal в IRequestOptions)
- В режиме тестов добавлена попытка получить моки из mocks после попытки получить их из mockedResponses
- nullToUndefined, INullToUndefined и INullableOptional перенесены в @true-engineering/true-react-platform-helpers
- Сохранение JSDoc в *.d.ts файлах
- Подключена библиотека @true-engineering/true-react-platform-helpers
- Удалены правила линтера, которые относятся к react
- Добавлена сортировка импортов
- Максимальное число символов в строке увеличено до 100
- Усилена типизация функции nullToUndefined. Для этого были добавлены типы INullToUndefined и INullableOptional
- Типизированы методы api-client для работы с моками. Для этого были добавлены типы ILoggedRequest и ILogs
- Исправлена типизация метода getRequestOrMock в api-client
- Реализована возможность отображения тостера при успешном завершении запроса.
Для этого были добавлены параметры shouldShowToasterOnSuccess и showSuccessToaster
- Функция nullToUndef переименована в nullToUndefined
- Параметр showToaster переименован в showErrorToaster