Home / Function/ drizzle() — drizzle-orm Function Reference

drizzle() — drizzle-orm Function Reference

Architecture documentation for the drizzle() function in driver.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  dd6edcd6_b093_7d62_248e_53e45adb74b4["drizzle()"]
  5eb41267_daaa_4ab2_fd1c_fe0fdff5c37a["driver.ts"]
  dd6edcd6_b093_7d62_248e_53e45adb74b4 -->|defined in| 5eb41267_daaa_4ab2_fd1c_fe0fdff5c37a
  style dd6edcd6_b093_7d62_248e_53e45adb74b4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/sqlite-proxy/driver.ts lines 53–101

export function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(
	callback: RemoteCallback,
	batchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema>,
	config?: DrizzleConfig<TSchema>,
): SqliteRemoteDatabase<TSchema> {
	const dialect = new SQLiteAsyncDialect({ casing: config?.casing });
	let logger;
	let cache;
	let _batchCallback: AsyncBatchRemoteCallback | undefined;
	let _config: DrizzleConfig<TSchema> = {};

	if (batchCallback) {
		if (typeof batchCallback === 'function') {
			_batchCallback = batchCallback as AsyncBatchRemoteCallback;
			_config = config ?? {};
		} else {
			_batchCallback = undefined;
			_config = batchCallback as DrizzleConfig<TSchema>;
		}

		if (_config.logger === true) {
			logger = new DefaultLogger();
		} else if (_config.logger !== false) {
			logger = _config.logger;
			cache = _config.cache;
		}
	}

	let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;
	if (_config.schema) {
		const tablesConfig = extractTablesRelationalConfig(
			_config.schema,
			createTableRelationsHelpers,
		);
		schema = {
			fullSchema: _config.schema,
			schema: tablesConfig.tables,
			tableNamesMap: tablesConfig.tableNamesMap,
		};
	}

	const session = new SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger, cache });
	const db = new SqliteRemoteDatabase('async', dialect, session, schema) as SqliteRemoteDatabase<TSchema>;
	(<any> db).$cache = cache;
	if ((<any> db).$cache) {
		(<any> db).$cache['invalidate'] = cache?.onMutate;
	}
	return db;
}

Domain

Subdomains

Frequently Asked Questions

What does drizzle() do?
drizzle() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/sqlite-proxy/driver.ts.
Where is drizzle() defined?
drizzle() is defined in drizzle-orm/src/sqlite-proxy/driver.ts at line 53.

Analyze Your Own Codebase

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

Try Supermodel Free