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. 13 imports, 1 dependents.

File typescript DrizzleORM DatabaseDrivers 13 imports 1 dependents 3 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  d4882ed1_0e96_6210_f61b_425eb48edf20["driver.ts"]
  e8d52f5f_2316_1b4f_9799_7155b57c23ff["session.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> e8d52f5f_2316_1b4f_9799_7155b57c23ff
  96e11865_03f5_599b_419a_05dba059c0a5["AwsDataApiSession"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> 96e11865_03f5_599b_419a_05dba059c0a5
  c1888528_22f2_78cd_a2b9_80fc9f29b8f3["client-rds-data"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> c1888528_22f2_78cd_a2b9_80fc9f29b8f3
  27705a9d_afe9_57dd_8c97_e52d8a67d426["entity.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> 27705a9d_afe9_57dd_8c97_e52d8a67d426
  220c512d_350b_24bf_2142_53ec35a980ac["logger.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> 220c512d_350b_24bf_2142_53ec35a980ac
  84b656ff_244f_df0f_a4a0_653292f28349["db.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> 84b656ff_244f_df0f_a4a0_653292f28349
  65dc222f_bc11_439f_d65b_20d7052b24ec["dialect.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> 65dc222f_bc11_439f_d65b_20d7052b24ec
  fa14e9c0_b73d_4bcb_463b_adf18df8a285["index.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> fa14e9c0_b73d_4bcb_463b_adf18df8a285
  4b057e06_8cce_074d_7c75_28be612c5aae["raw.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> 4b057e06_8cce_074d_7c75_28be612c5aae
  e4d6a0ab_9aa2_13a6_a2f1_58d94314c3f2["relations.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> e4d6a0ab_9aa2_13a6_a2f1_58d94314c3f2
  be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd["sql.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd
  1fd6ac27_a0fb_a054_a358_c8766c3fcbd7["table.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> 1fd6ac27_a0fb_a054_a358_c8766c3fcbd7
  ecce3253_1e75_a87f_27b3_ca87e81a3024["utils.ts"]
  d4882ed1_0e96_6210_f61b_425eb48edf20 --> ecce3253_1e75_a87f_27b3_ca87e81a3024
  11fbe91a_9ce1_b916_36c9_940fa37ae9c4["migrator.ts"]
  11fbe91a_9ce1_b916_36c9_940fa37ae9c4 --> d4882ed1_0e96_6210_f61b_425eb48edf20
  style d4882ed1_0e96_6210_f61b_425eb48edf20 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data';
import { entityKind, is } from '~/entity.ts';
import type { Logger } from '~/logger.ts';
import { DefaultLogger } from '~/logger.ts';
import { PgDatabase } from '~/pg-core/db.ts';
import { PgDialect } from '~/pg-core/dialect.ts';
import type { PgColumn, PgInsertConfig, PgTable, TableConfig } from '~/pg-core/index.ts';
import { PgArray } from '~/pg-core/index.ts';
import type { PgRaw } from '~/pg-core/query-builders/raw.ts';
import {
	createTableRelationsHelpers,
	extractTablesRelationalConfig,
	type RelationalSchemaConfig,
	type TablesRelationalConfig,
} from '~/relations.ts';
import { Param, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';
import { Table } from '~/table.ts';
import type { DrizzleConfig, UpdateSet } from '~/utils.ts';
import type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from './session.ts';
import { AwsDataApiSession } from './session.ts';

export interface PgDriverOptions {
	logger?: Logger;
	cache?: Cache;
	database: string;
	resourceArn: string;
	secretArn: string;
}

export interface DrizzleAwsDataApiPgConfig<
	TSchema extends Record<string, unknown> = Record<string, never>,
> extends DrizzleConfig<TSchema> {
	database: string;
	resourceArn: string;
	secretArn: string;
}

export class AwsDataApiPgDatabase<
	TSchema extends Record<string, unknown> = Record<string, never>,
> extends PgDatabase<AwsDataApiPgQueryResultHKT, TSchema> {
	static override readonly [entityKind]: string = 'AwsDataApiPgDatabase';

	override execute<
		TRow extends Record<string, unknown> = Record<string, unknown>,
	>(query: SQLWrapper | string): PgRaw<AwsDataApiPgQueryResult<TRow>> {
		return super.execute(query);
	}
}

export class AwsPgDialect extends PgDialect {
	static override readonly [entityKind]: string = 'AwsPgDialect';

	override escapeParam(num: number): string {
		return `:${num + 1}`;
	}

	override buildInsertQuery(
		{ table, values, onConflict, returning, select, withList }: PgInsertConfig<PgTable<TableConfig>>,
	): SQL<unknown> {
		const columns: Record<string, PgColumn> = table[Table.Symbol.Columns];
// ... (130 more lines)

Domain

Subdomains

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, DatabaseDrivers subdomain.
What functions are defined in driver.ts?
driver.ts defines 3 function(s): construct, drizzle, mock.
What does driver.ts depend on?
driver.ts imports 13 module(s): AwsDataApiSession, client-rds-data, db.ts, dialect.ts, entity.ts, index.ts, logger.ts, raw.ts, and 5 more.
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/aws-data-api/pg/driver.ts (domain: DrizzleORM, subdomain: DatabaseDrivers, directory: drizzle-orm/src/aws-data-api/pg).

Analyze Your Own Codebase

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

Try Supermodel Free