TanStack

keyedAdapters

ts
function keyedAdapters<TMap>(map): { [K in string | number | symbol]: TMap[K] extends KeyedAdapter<A> ? KeyedAdapter<A> : TMap[K] extends (key: string) => A ? KeyedAdapter<A> : never };

Defined in: packages/ai/src/byok/keyed.ts:94

Keyed adapters for several providers in one map. The map key is the provider id, so a key goes only to the factory of its own provider. An entry is a factory (the key comes only from the x-byok-<id> header), or a keyedAdapter made with a BYOK descriptor (its env names are the fallback). Pick one per request with keyedAdapterFromRequest from @tanstack/ai/byok/server.

Type Parameters

TMap

TMap extends Record<string, | KeyedAdapter<unknown> | ((key) => unknown)>

Parameters

map

TMap

Returns

{ [K in string | number | symbol]: TMap[K] extends KeyedAdapter<A> ? KeyedAdapter<A> : TMap[K] extends (key: string) => A ? KeyedAdapter<A> : never }

Throws

Error when a key is not a valid provider id, or when a keyed adapter entry is for a different provider than its key.

Example

ts
const models = keyedAdapters({
  openai: (key) => createOpenaiChat('gpt-6.1-sol', key),
  anthropic: keyedAdapter(anthropicByok, (key) =>
    createAnthropicChat('claude-sonnet-5-5', key),
  ),
})