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

Настройки клиента ​

createMxik() работает без настроек. Значения по умолчанию:

ОпцияПо умолчаниюОписание
lang'ru'Язык названий в результатах: 'ru' или 'uz'
pageSize20Размер страницы для search, filter и dvCert
timeout10000Таймаут запроса в мс, 0 отключает его
cachefalsetrue или свой кеш, см. Кеш
baseURLtasnif.soliq.uzКорень API, см. Прокси
fetchglobalThis.fetchСм. Свой fetch
headersЗаголовки для каждого запроса

Полный baseURL по умолчанию: https://tasnif.soliq.uz/api/cls-api.

ts
const mxik = createMxik({
  lang: 'uz',
  pageSize: 50,
  timeout: 5000,
})

Для отдельного запроса ​

Последний аргумент любого метода — опции. Они переопределяют настройки клиента для этого вызова:

ОпцияМетодыОписание
langвсеЯзык названий
signalвсеAbortSignal для отмены запроса
pagesearch, filter, dvCertНомер страницы, начиная с 1
sizeпостраничные и *AllРазмер страницы
ts
await mxik.search('кофе', {
  page: 2,
  lang: 'uz',
  signal: AbortSignal.timeout(3000),
})

Прокси ​

Если сервер не может напрямую обратиться к tasnif.soliq.uz, поставьте перед ним прокси в Узбекистане и укажите его в baseURL. Пути и параметры запроса остаются прежними:

ts
const mxik = createMxik({
  baseURL: 'https://mxik-proxy.example.uz/api/cls-api',
  headers: { authorization: `Bearer ${process.env.PROXY_TOKEN}` },
})

Свой fetch ​

Передайте свой fetch для окружений без глобального fetch, для логирования или чтобы подменить API в тестах:

ts
const mxik = createMxik({
  fetch: async () => Response.json({
    success: true,
    data: [{ mxikCode: '00901001001048023' }],
    recordTotal: 1,
  }),
})

const { items } = await mxik.search('anything')
items[0].mxikCode // '00901001001048023'

Деструктуризация ​

Клиент — обычный объект без this, поэтому методы работают и по отдельности:

ts
const { search, get } = createMxik()

Неофициальный клиент, не связан с Налоговым комитетом Узбекистана и tasnif.soliq.uz.
Распространяется под лицензией MIT.