Перейти к основному содержимому

Утилиты для Axios

В качестве реализации HTTP-клиентов используется axios с дополнением в виде пакета middleware-axios, позволяющего добавлять промежуточные слои процесса исходящих HTTP-запросов.

Логирование

Также пакет предоставляет функцию создания middleware для логирования исходящих http-запросов.

import { create } from 'middleware-axios';
import { logMiddleware } from '@sima-land/isomorph/utils/axios';

const client = create();

const middleware = logMiddleware({
beforeRequest({ config, defaults }) {
console.log('beforeRequest');
},
afterResponse({ config, defaults, responser }) {
console.log('afterResponse');
},
onCatch({ config, defaults, error }) {
console.log('onCatch');
},
});

client.use(middleware);

Sauce

Пакет предоставляет функцию sauce позволяющую сделать возвращаемые из методов экземпляра AxiosInstance промисы "безопасными".

"Безопасный" промис никогда не перейдет в состояние rejected. Вместо этого, в состоянии resolved, результатом будет объект-обертка над AxiosResponse.

import { create } from 'axios';
import { sauce } from '@sima-land/isomorph/utils/axios';

const client = sauce(create({ baseURL: 'http://some-api.com/' }));

const { ok, data, error } = await client.get('/some-endpoint');

if (ok) {
console.log(data);
} else {
console.error(error);
}