Configures an existing ApiClient with the full middleware stack
based on an EsiClientConfig. This is the single source of truth
for how config maps to middleware — used by EsiClient,
CustomEsiClient, and EsiApiFactory.
The caller is responsible for creating the ApiClient (with baseUrl,
clientId, accessToken) and setting datasource/language/tokenProvider
before calling this function, since those vary by construction surface.
Middleware the config supplies as instances (cache, rateLimiter,
circuitBreaker, deduplicator) is installed in place of what the config
would build: a supplied circuit breaker or deduplicator even when the
config leaves that stage off, a supplied cache unless the config turns the
ETag cache off. A supplied clock goes on the client and into every stage
built here. The returned deduplicator is only one built here.
Configures an existing ApiClient with the full middleware stack based on an EsiClientConfig. This is the single source of truth for how config maps to middleware — used by EsiClient, CustomEsiClient, and EsiApiFactory.
The caller is responsible for creating the ApiClient (with baseUrl, clientId, accessToken) and setting datasource/language/tokenProvider before calling this function, since those vary by construction surface.
Middleware the config supplies as instances (
cache,rateLimiter,circuitBreaker,deduplicator) is installed in place of what the config would build: a supplied circuit breaker or deduplicator even when the config leaves that stage off, a supplied cache unless the config turns the ETag cache off. A suppliedclockgoes on the client and into every stage built here. The returned deduplicator is only one built here.