resolveAuthOptions<TContext> function

AuthOptions<TContext> resolveAuthOptions<TContext>({
  1. required AuthOptions<TContext> options,
  2. Iterable<AuthProvider> configuredProviders = const <AuthProvider>[],
  3. AuthStore? store,
  4. Client? httpClient,
  5. AuthSessionStrategy? sessionStrategy,
  6. Duration? sessionMaxAge,
  7. Duration? sessionUpdateAge,
})

Resolves final options by merging framework overrides into options.

This helper keeps option merge behavior consistent across framework integrations, such as Routed and Shelf adapters. Providers merge by ID. Existing option-level HTTP clients, session ages, and strategies take precedence over helper arguments. A replacement store derives AuthStoreMode.ephemeral for InMemoryAuthStore and durable mode for other stores.

Implementation

AuthOptions<TContext> resolveAuthOptions<TContext>({
  required AuthOptions<TContext> options,
  Iterable<AuthProvider> configuredProviders = const <AuthProvider>[],
  AuthStore? store,
  http.Client? httpClient,
  AuthSessionStrategy? sessionStrategy,
  Duration? sessionMaxAge,
  Duration? sessionUpdateAge,
}) {
  final mergedProviders = mergeAuthProvidersById(
    options.providers,
    configuredProviders,
  );
  return options.copyWith(
    providers: mergedProviders,
    store: store ?? options.store,
    storeMode: store == null
        ? options.storeMode
        : store is InMemoryAuthStore
        ? AuthStoreMode.ephemeral
        : AuthStoreMode.durable,
    httpClient: options.httpClient ?? httpClient,
    sessionStrategy: sessionStrategy ?? options.sessionStrategy,
    sessionMaxAge: options.sessionMaxAge ?? sessionMaxAge,
    sessionUpdateAge: options.sessionUpdateAge ?? sessionUpdateAge,
  );
}