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

Function drizzle

drizzle-orm/src/singlestore/driver.ts:123–184  ·  view source on GitHub ↗
(
	...params: [
		TClient | string,
	] | [
		TClient | string,
		SingleStoreDriverDrizzleConfig<TSchema>,
	] | [
		(
			& SingleStoreDriverDrizzleConfig<TSchema>
			& ({
				connection: string | PoolOptions;
			} | {
				client: TClient;
			})
		),
	]
)

Source from the content-addressed store, hash-verified

121};
122
123export function drizzle<
124 TSchema extends Record<string, unknown> = Record<string, never>,
125 TClient extends AnySingleStoreDriverConnection = CallbackPool,
126>(
127 ...params: [
128 TClient | string,
129 ] | [
130 TClient | string,
131 SingleStoreDriverDrizzleConfig<TSchema>,
132 ] | [
133 (
134 & SingleStoreDriverDrizzleConfig<TSchema>
135 & ({
136 connection: string | PoolOptions;
137 } | {
138 client: TClient;
139 })
140 ),
141 ]
142): SingleStoreDriverDatabase<TSchema> & {
143 $client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;
144} {
145 if (typeof params[0] === 'string') {
146 const connectionString = params[0]!;
147 const instance = createPool({
148 uri: connectionString,
149 connectAttributes: CONNECTION_ATTRS,
150 });
151
152 return construct(instance, params[1]) as any;
153 }
154
155 if (isConfig(params[0])) {
156 const { connection, client, ...drizzleConfig } = params[0] as
157 & { connection?: PoolOptions | string; client?: TClient }
158 & SingleStoreDriverDrizzleConfig<TSchema>;
159
160 if (client) return construct(client, drizzleConfig) as any;
161
162 let opts: PoolOptions = {};
163 opts = typeof connection === 'string'
164 ? {
165 uri: connection,
166 supportBigNumbers: true,
167 connectAttributes: CONNECTION_ATTRS,
168 }
169 : {
170 ...connection,
171 connectAttributes: {
172 ...connection!.connectAttributes,
173 ...CONNECTION_ATTRS,
174 },
175 };
176
177 const instance = createPool(opts);
178 const db = construct(instance, drizzleConfig);
179
180 return db as any;

Calls 2

isConfigFunction · 0.90
constructFunction · 0.70

Tested by

no test coverage detected