itd-api / RuntimeOptions
Interface: RuntimeOptions
Defined in: core/options.ts:172
Настройки исполнения запросов: куда ходить, как долго ждать и чем представляться.
Всё, что нужно generic-ядру и ничего сверх того. Авторизация и сессия описаны отдельно, а полный набор опций клиента их объединяет.
Все поля допускают явный undefined, чтобы можно было передавать значения, которых может не быть, — например new ItdClient({ timeout: process.env.TIMEOUT }).
Extended by
Properties
baseUrl?
optional baseUrl?: string;Defined in: core/options.ts:181
Базовый URL API. По умолчанию https://xn--d1ah4a.com.
Укажите здесь адрес своего прокси, если работаете из браузера: CORS для сторонних источников на итд.com, скорее всего, не настроен.
clock?
optional clock?: ItdClock;Defined in: core/options.ts:241
Часы для тайм-аутов, повторов и очередей. Обычно подменяются только в тестах.
deadline?
optional deadline?: number;Defined in: core/options.ts:222
Общий срок логической операции в мс: очередь, повторы, обновление авторизации, плагины и хуки. По умолчанию не ограничен.
Истечение даёт ItdTimeoutError с budget: 'deadline' и не повторяется. Тот же эффект даёт signal: AbortSignal.timeout(ms), но с ItdAbortError.
fetch?
optional fetch?: {
(input, init?): Promise<Response>;
(input, init?): Promise<Response>;
};Defined in: core/options.ts:239
Своя реализация fetch: для Deno, React Native, тестов или прокси.
Call Signature
(input, init?): Promise<Response>;Parameters
input
URL | RequestInfo
init?
RequestInit
Returns
Promise<Response>
Call Signature
(input, init?): Promise<Response>;Parameters
input
string | URL | Request
init?
RequestInit
Returns
Promise<Response>
headers?
optional headers?: Record<string, string>;Defined in: core/options.ts:245
Заголовки, добавляемые ко всем запросам, — например User-Agent для бота.
hooks?
optional hooks?: ClientHooks;Defined in: core/options.ts:258
Хуки запросов.
logger?
optional logger?:
| boolean
| Logger
| LogLevel;Defined in: core/options.ts:260
Логгер. true — консоль с уровня info, LogLevel — с указанного уровня, объект — свой.
mode?
optional mode?: RuntimeMode;Defined in: core/options.ts:243
Как обращаться с cookie. По умолчанию определяется по среде исполнения.
rateLimit?
optional rateLimit?: false | RateLimitOptions;Defined in: core/options.ts:234
Ограничение нагрузки. false отключает очередь.
retry?
optional retry?: false | RetryOptions;Defined in: core/options.ts:232
Повторные попытки. false отключает их полностью.
services?
optional services?: Record<string,
| string
| Omit<ServiceDefinition, "name">>;Defined in: core/options.ts:201
Сервисы платформы на отдельных доменах.
Ключ — имя сервиса, значение — базовый URL или определение целиком. Имя встроенного сервиса задаёт его хост; встроен один — status.
auth у встроенного сервиса наследуется, у нового выводится по хосту: токен уходит основному хосту и его поддоменам, остальным — по явному auth: true.
Example
const itd = new ItdClient({
services: {
status: 'https://my-proxy.example/status',
pb: { baseUrl: 'https://pbapi.xn--d1ah4a.com', headers: { Referer: 'https://pixel.xn--d1ah4a.com/' } },
},
});shutdownTimeout?
optional shutdownTimeout?: number;Defined in: core/options.ts:230
Сколько close() и dispose() ждут чужой код, мс. По умолчанию 10000.
Ждут обработчиков событийного канала и операций, вошедших в обёртки плагинов. По истечении срока ресурсы всё равно освобождаются, а метод отклоняется ItdStateError с указанием того, что удерживало остановку. 0 снимает ограничение.
timeout?
optional timeout?: number;Defined in: core/options.ts:214
Таймаут одной транспортной попытки в мс. По умолчанию 30000 — столько же использует сайт итд.com. 0 снимает ограничение.
Охватывает сборку заголовков, хуки onRequest и onResponse, перехватчики попытки, запрос и чтение тела ответа. Ожидание очереди, паузы между повторами и хук onError в него не входят. Истечение даёт ItdTimeoutError с budget: 'attempt'; safe- и idempotent-операции повторяются.
userAgent?
optional userAgent?: string | false;Defined in: core/options.ts:253
Значение заголовка User-Agent. false — не отправлять его вовсе.
По умолчанию Mozilla/5.0 (compatible; itd-api/<версия>; …): fetch в Node не шлёт User-Agent сам, а сайт стоит за DDoS-Guard, который такие запросы может не пропустить. В браузере опция не действует — там заголовок менять запрещено.