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 { config } from "../config";
import * as schema from "./schema";
const { DATABASE_CONNECTION_TYPE } = config.env;
const options = (() => {
switch (config.env.DATABASE_CONNECTION_TYPE) {
case 'local' : return {
url: 'file:local.sqlite',
}
case 'remote' : return {
url: config.env.DATABASE_URL,
authToken: config.env.DATABASE_AUTH_TOKEN!,
}
case 'local-replica' : return {
url: 'file:local.sqlite',
syncUrl: config.env.DATABASE_URL,
authToken: config.env.DATABASE_AUTH_TOKEN!,
}
}
})()
const options = {
local: { url: "file:local.sqlite" },
remote: {
url: config.env.DATABASE_URL,
authToken: config.env.DATABASE_AUTH_TOKEN!,
},
"local-replica": {
url: "file:local.sqlite",
syncUrl: config.env.DATABASE_URL,
authToken: config.env.DATABASE_AUTH_TOKEN!,
},
} satisfies Record<typeof DATABASE_CONNECTION_TYPE, Config>;
export const client = createClient(options);
export const client = createClient(options[DATABASE_CONNECTION_TYPE]);
await client.sync();