Home / File/ driver.ts — drizzle-orm Source File

driver.ts — drizzle-orm Source File

Architecture documentation for driver.ts, a typescript file in the drizzle-orm codebase. 4 imports, 1 dependents.

File typescript DrizzleORM RelationalQuery 4 imports 1 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  31b4414e_8263_88ee_640d_ad9fb5a46759["driver.ts"]
  a9334ac2_693e_d2b0_7aa8_0e8c536982a0["driver-core.ts"]
  31b4414e_8263_88ee_640d_ad9fb5a46759 --> a9334ac2_693e_d2b0_7aa8_0e8c536982a0
  b91dc682_fc28_2e61_4197_8c9918cec2d7["construct"]
  31b4414e_8263_88ee_640d_ad9fb5a46759 --> b91dc682_fc28_2e61_4197_8c9918cec2d7
  33707adf_3867_206c_1f47_142479def47f["client"]
  31b4414e_8263_88ee_640d_ad9fb5a46759 --> 33707adf_3867_206c_1f47_142479def47f
  ecce3253_1e75_a87f_27b3_ca87e81a3024["utils.ts"]
  31b4414e_8263_88ee_640d_ad9fb5a46759 --> ecce3253_1e75_a87f_27b3_ca87e81a3024
  fbe07776_671d_3f57_b962_ec600e4bdb2a["migrator.ts"]
  fbe07776_671d_3f57_b962_ec600e4bdb2a --> 31b4414e_8263_88ee_640d_ad9fb5a46759
  style 31b4414e_8263_88ee_640d_ad9fb5a46759 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { type Client, type Config, createClient } from '@libsql/client';
import { type DrizzleConfig, isConfig } from '~/utils.ts';
import { construct as construct, type LibSQLDatabase } from './driver-core.ts';

export { LibSQLDatabase } from './driver-core.ts';

export function drizzle<
	TSchema extends Record<string, unknown> = Record<string, never>,
	TClient extends Client = Client,
>(
	...params: [
		TClient | string,
	] | [
		TClient | string,
		DrizzleConfig<TSchema>,
	] | [
		(
			& DrizzleConfig<TSchema>
			& ({
				connection: string | Config;
			} | {
				client: TClient;
			})
		),
	]
): LibSQLDatabase<TSchema> & {
	$client: TClient;
} {
	if (typeof params[0] === 'string') {
		const instance = createClient({
			url: params[0],
		});

		return construct(instance, params[1]) as any;
	}

	if (isConfig(params[0])) {
		const { connection, client, ...drizzleConfig } = params[0] as
			& { connection?: Config; client?: TClient }
			& DrizzleConfig<TSchema>;

		if (client) return construct(client, drizzleConfig) as any;

		const instance = typeof connection === 'string' ? createClient({ url: connection }) : createClient(connection!);

		return construct(instance, drizzleConfig) as any;
	}

	return construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;
}

export namespace drizzle {
	export function mock<TSchema extends Record<string, unknown> = Record<string, never>>(
		config?: DrizzleConfig<TSchema>,
	): LibSQLDatabase<TSchema> & {
		$client: '$client is not available on drizzle.mock()';
	} {
		return construct({} as any, config) as any;
	}
}

Domain

Subdomains

Functions

Dependencies

Frequently Asked Questions

What does driver.ts do?
driver.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, RelationalQuery subdomain.
What functions are defined in driver.ts?
driver.ts defines 2 function(s): drizzle, mock.
What does driver.ts depend on?
driver.ts imports 4 module(s): client, construct, driver-core.ts, utils.ts.
What files import driver.ts?
driver.ts is imported by 1 file(s): migrator.ts.
Where is driver.ts in the architecture?
driver.ts is located at drizzle-orm/src/libsql/driver.ts (domain: DrizzleORM, subdomain: RelationalQuery, directory: drizzle-orm/src/libsql).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free