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

construct() — drizzle-orm Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  53fe8589_37a4_1206_812e_4e321d233cee["construct()"]
  53702de1_49d7_f27f_696b_4103d414417d["driver.ts"]
  53fe8589_37a4_1206_812e_4e321d233cee -->|defined in| 53702de1_49d7_f27f_696b_4103d414417d
  5536de85_84ac_d490_5c78_b39b215cb8a1["drizzle()"]
  5536de85_84ac_d490_5c78_b39b215cb8a1 -->|calls| 53fe8589_37a4_1206_812e_4e321d233cee
  6cdccc31_b9f0_91e5_09b4_cd9c682323e9["mock()"]
  6cdccc31_b9f0_91e5_09b4_cd9c682323e9 -->|calls| 53fe8589_37a4_1206_812e_4e321d233cee
  75ffa976_89a3_e4e8_2ef4_e79c39ec7b87["createSession()"]
  53fe8589_37a4_1206_812e_4e321d233cee -->|calls| 75ffa976_89a3_e4e8_2ef4_e79c39ec7b87
  style 53fe8589_37a4_1206_812e_4e321d233cee fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/pglite/driver.ts lines 49–96

function construct<TSchema extends Record<string, unknown> = Record<string, never>>(
	client: PgliteClient,
	config: DrizzleConfig<TSchema> = {},
): PgliteDatabase<TSchema> & {
	$client: PgliteClient;
} {
	const dialect = new PgDialect({ casing: config.casing });
	let logger;
	if (config.logger === true) {
		logger = new DefaultLogger();
	} else if (config.logger !== false) {
		logger = config.logger;
	}

	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 driver = new PgliteDriver(client, dialect, { logger, cache: config.cache });
	const session = driver.createSession(schema);
	const db = new PgliteDatabase(dialect, session, schema as any) as PgliteDatabase<TSchema>;
	(<any> db).$client = client;
	(<any> db).$cache = config.cache;
	if ((<any> db).$cache) {
		(<any> db).$cache['invalidate'] = config.cache?.onMutate;
	}
	// (<any> db).$cache = { invalidate: (<any> config).cache?.onMutate };
	// if (config.cache) {
	// 	for (
	// 		const key of Object.getOwnPropertyNames(Object.getPrototypeOf(config.cache)).filter((key) =>
	// 			key !== 'constructor'
	// 		)
	// 	) {
	// 		(<any> db).$cache[key as keyof typeof config.cache] = (<any> config).cache[key];
	// 	}
	// }

	return db as any;
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does construct() do?
construct() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/pglite/driver.ts.
Where is construct() defined?
construct() is defined in drizzle-orm/src/pglite/driver.ts at line 49.
What does construct() call?
construct() calls 1 function(s): createSession.
What calls construct()?
construct() is called by 2 function(s): drizzle, mock.

Analyze Your Own Codebase

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

Try Supermodel Free