MCPcopy
hub / github.com/drizzle-team/drizzle-orm / drizzle

Function drizzle

drizzle-orm/src/better-sqlite3/driver.ts:68–123  ·  view source on GitHub ↗
(
	...params:
		| []
		| [
			Database | string,
		]
		| [
			Database | string,
			DrizzleConfig<TSchema>,
		]
		| [
			(
				& DrizzleConfig<TSchema>
				& ({
					connection?: DrizzleBetterSQLite3DatabaseConfig;
				} | {
					client: Database;
				})
			),
		]
)

Source from the content-addressed store, hash-verified

66}
67
68export function drizzle<
69 TSchema extends Record<string, unknown> = Record<string, never>,
70>(
71 ...params:
72 | []
73 | [
74 Database | string,
75 ]
76 | [
77 Database | string,
78 DrizzleConfig<TSchema>,
79 ]
80 | [
81 (
82 & DrizzleConfig<TSchema>
83 & ({
84 connection?: DrizzleBetterSQLite3DatabaseConfig;
85 } | {
86 client: Database;
87 })
88 ),
89 ]
90): BetterSQLite3Database<TSchema> & {
91 $client: Database;
92} {
93 if (params[0] === undefined || typeof params[0] === 'string') {
94 const instance = params[0] === undefined ? new Client() : new Client(params[0]);
95
96 return construct(instance, params[1]) as any;
97 }
98
99 if (isConfig(params[0])) {
100 const { connection, client, ...drizzleConfig } = params[0] as
101 & {
102 connection?: DrizzleBetterSQLite3DatabaseConfig;
103 client?: Database;
104 }
105 & DrizzleConfig<TSchema>;
106
107 if (client) return construct(client, drizzleConfig) as any;
108
109 if (typeof connection === 'object') {
110 const { source, ...options } = connection;
111
112 const instance = new Client(source, options);
113
114 return construct(instance, drizzleConfig) as any;
115 }
116
117 const instance = new Client(connection);
118
119 return construct(instance, drizzleConfig) as any;
120 }
121
122 return construct(params[0] as Database, params[1] as DrizzleConfig<TSchema> | undefined) as any;
123}
124
125export namespace drizzle {

Callers 12

mainFunction · 0.90
sqlite.test.tsFile · 0.90
sqliteTest.tsFile · 0.90
sqlite.test.tsFile · 0.90

Calls 2

isConfigFunction · 0.90
constructFunction · 0.70

Tested by

no test coverage detected