dbSDK
Resources

Resolve a provider at runtime

Customer connections are a stored provider id plus credentials. A registry should open the handle without a compile-time switch.

Customer connections are not known at compile time. The host stores a provider id plus encrypted credentials, then resolves a provider when a request arrives. A hardcoded switch does not scale.

registry.ts
import { connect, createRegistry } from "@db-sdk/core";
import { postgres } from "@db-sdk/postgres";
import { firestore } from "@db-sdk/firestore";

const registry = createRegistry({ postgres, firestore });

const db = await connect({
  provider: registry.resolve(
    connection.provider,
    connection.credentials,
  ),
});

Intended direction

Factory functions and a registry. The exact API is not decided. The requirement is: a stored provider id plus credentials must be enough to open a connection without a compile-time switch.