-
Notifications
You must be signed in to change notification settings - Fork 323
Expand file tree
/
Copy pathsetup.ts
More file actions
54 lines (53 loc) 路 1.79 KB
/
Copy pathsetup.ts
File metadata and controls
54 lines (53 loc) 路 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { match } from 'ts-pattern'
import type {
SetupDriverAdaptersInput,
DriverAdaptersManager,
} from './driver-adapters-manager/index.js'
import type { Env } from './types/index.js'
import { PgManager } from './driver-adapters-manager/pg.js'
import { NeonWsManager } from './driver-adapters-manager/neon.ws.js'
import { LibSQLManager } from './driver-adapters-manager/libsql.js'
import { PlanetScaleManager } from './driver-adapters-manager/planetscale.js'
import { D1Manager } from './driver-adapters-manager/d1.js'
import { BetterSQLite3Manager } from './driver-adapters-manager/better-sqlite3.js'
import { MssqlManager } from './driver-adapters-manager/mssql.js'
import { MariaDbManager } from './driver-adapters-manager/mariadb.js'
export async function setupDriverAdaptersManager(
env: Env,
input: SetupDriverAdaptersInput,
): Promise<DriverAdaptersManager> {
return match(env)
.with(
{ DRIVER_ADAPTER: 'pg' },
async (env) => await PgManager.setup(env, input),
)
.with(
{ DRIVER_ADAPTER: 'neon:ws' },
async (env) => await NeonWsManager.setup(env, input),
)
.with(
{ DRIVER_ADAPTER: 'libsql' },
async (env) => await LibSQLManager.setup(env, input),
)
.with(
{ DRIVER_ADAPTER: 'planetscale' },
async (env) => await PlanetScaleManager.setup(env, input),
)
.with(
{ DRIVER_ADAPTER: 'd1' },
async (env) => await D1Manager.setup(env, input),
)
.with(
{ DRIVER_ADAPTER: 'better-sqlite3' },
async (env) => await BetterSQLite3Manager.setup(env, input),
)
.with(
{ DRIVER_ADAPTER: 'mssql' },
async (env) => await MssqlManager.setup(env, input),
)
.with(
{ DRIVER_ADAPTER: 'mariadb' },
async (env) => await MariaDbManager.setup(env, input),
)
.exhaustive()
}