chore: refactor + add typesafety to libsql client options map

main
Jesse Holden 2023-09-28 22:52:42 -04:00
parent edd0d2a6f6
commit 2661c9d37e
No known key found for this signature in database
GPG Key ID: 2CE4A129D10A6557
1 changed files with 15 additions and 18 deletions

@ -1,27 +1,24 @@
import { createClient } from "@libsql/client"; import { createClient, type Config } from "@libsql/client";
import { drizzle } from "drizzle-orm/libsql"; import { drizzle } from "drizzle-orm/libsql";
import { config } from "../config"; import { config } from "../config";
import * as schema from "./schema"; import * as schema from "./schema";
const { DATABASE_CONNECTION_TYPE } = config.env;
const options = (() => { const options = {
switch (config.env.DATABASE_CONNECTION_TYPE) { local: { url: "file:local.sqlite" },
case 'local' : return { remote: {
url: 'file:local.sqlite', url: config.env.DATABASE_URL,
} authToken: config.env.DATABASE_AUTH_TOKEN!,
case 'remote' : return { },
url: config.env.DATABASE_URL, "local-replica": {
authToken: config.env.DATABASE_AUTH_TOKEN!, url: "file:local.sqlite",
} syncUrl: config.env.DATABASE_URL,
case 'local-replica' : return { authToken: config.env.DATABASE_AUTH_TOKEN!,
url: 'file:local.sqlite', },
syncUrl: config.env.DATABASE_URL, } satisfies Record<typeof DATABASE_CONNECTION_TYPE, Config>;
authToken: config.env.DATABASE_AUTH_TOKEN!,
}
}
})()
export const client = createClient(options); export const client = createClient(options[DATABASE_CONNECTION_TYPE]);
await client.sync(); await client.sync();