UNPKG

@sp-api-sdk/common

Version:
41 lines (40 loc) 1.43 kB
import axios, { type AxiosError, type Method } from 'axios'; import { errorLogger, requestLogger, responseLogger } from 'axios-logger'; import { type SellingPartnerApiAuth } from '@sp-api-sdk/auth'; import { type SellingPartnerRegion } from './regions'; type RequestLogConfig = Exclude<Parameters<typeof requestLogger>[1], undefined>; type ResponseLogConfig = Exclude<Parameters<typeof responseLogger>[1], undefined>; type ErrorLogConfig = Exclude<Parameters<typeof errorLogger>[1], undefined>; export interface RateLimit { urlRegex: RegExp; rate: number; burst: number; method: Method; } export interface OnRetryParameters { delay: number; rateLimit?: number; retryCount: number; error: AxiosError; } export interface ClientConfiguration { auth: SellingPartnerApiAuth; restrictedDataToken?: string; region: SellingPartnerRegion; userAgent?: string; sandbox?: boolean; rateLimiting?: { retry: boolean; onRetry?: (retryInfo: OnRetryParameters) => void; }; logging?: { request?: RequestLogConfig | true; response?: ResponseLogConfig | true; error?: ErrorLogConfig | true; }; } export declare function createAxiosInstance({ auth, restrictedDataToken, region, userAgent, sandbox, rateLimiting, logging, }: ClientConfiguration, rateLimits: RateLimit[]): { axios: axios.AxiosInstance; endpoint: string; }; export {};