@sp-api-sdk/common
Version:
Selling Parner API common library
41 lines (40 loc) • 1.43 kB
TypeScript
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 {};