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

insert.ts — drizzle-orm Source File

Architecture documentation for insert.ts, a typescript file in the drizzle-orm codebase. 23 imports, 0 dependents.

File typescript DrizzleORM QueryBuilders 23 imports 2 classes

Entity Profile

Dependency Diagram

graph LR
  6f066777_3f37_e9b7_9d78_03e1a3ea895d["insert.ts"]
  f4f42b4c_8610_03dd_fe01_232098668127["common.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> f4f42b4c_8610_03dd_fe01_232098668127
  ce49a5a3_688d_ddce_fd32_28428e51cae2["utils.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> ce49a5a3_688d_ddce_fd32_28428e51cae2
  0233f895_0081_faa0_ff5a_5f45a56e9cc3["extractUsedTable"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 0233f895_0081_faa0_ff5a_5f45a56e9cc3
  07dd6b3b_dc76_a449_419f_d180e820b911["query-builder.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 07dd6b3b_dc76_a449_419f_d180e820b911
  6fbf8d35_ebd1_2ae8_988d_1aa0127184d7["QueryBuilder"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 6fbf8d35_ebd1_2ae8_988d_1aa0127184d7
  65d45edf_0d8a_b7f0_1780_573c12d9a0e6["select.types.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 65d45edf_0d8a_b7f0_1780_573c12d9a0e6
  ebf76db1_7804_287b_622a_ab94e9efc196["update.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> ebf76db1_7804_287b_622a_ab94e9efc196
  47a9c453_10f1_a759_6246_695fcce2b20a["types.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 47a9c453_10f1_a759_6246_695fcce2b20a
  27705a9d_afe9_57dd_8c97_e52d8a67d426["entity.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 27705a9d_afe9_57dd_8c97_e52d8a67d426
  65dc222f_bc11_439f_d65b_20d7052b24ec["dialect.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 65dc222f_bc11_439f_d65b_20d7052b24ec
  4a9ebb9b_2251_70f7_0498_495dca0986eb["indexes.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 4a9ebb9b_2251_70f7_0498_495dca0986eb
  0e227879_31b1_8596_726d_80119efbf846["session.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 0e227879_31b1_8596_726d_80119efbf846
  17418917_ff81_c4e5_90f4_f37d557e5d51["table.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> 17418917_ff81_c4e5_90f4_f37d557e5d51
  d31ad410_b8fc_5d88_a194_70aa7419676a["query-builder.ts"]
  6f066777_3f37_e9b7_9d78_03e1a3ea895d --> d31ad410_b8fc_5d88_a194_70aa7419676a
  style 6f066777_3f37_e9b7_9d78_03e1a3ea895d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { WithCacheConfig } from '~/cache/core/types.ts';
import { entityKind, is } from '~/entity.ts';
import type { PgDialect } from '~/pg-core/dialect.ts';
import type { IndexColumn } from '~/pg-core/indexes.ts';
import type {
	PgPreparedQuery,
	PgQueryResultHKT,
	PgQueryResultKind,
	PgSession,
	PreparedQueryConfig,
} from '~/pg-core/session.ts';
import type { PgTable, TableConfig } from '~/pg-core/table.ts';
import type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';
import type { SelectResultFields } from '~/query-builders/select.types.ts';
import { QueryPromise } from '~/query-promise.ts';
import type { RunnableQuery } from '~/runnable-query.ts';
import { SelectionProxyHandler } from '~/selection-proxy.ts';
import type { ColumnsSelection, Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';
import { Param, SQL, sql } from '~/sql/sql.ts';
import type { Subquery } from '~/subquery.ts';
import type { InferInsertModel } from '~/table.ts';
import { Columns, getTableName, Table } from '~/table.ts';
import { tracer } from '~/tracing.ts';
import { haveSameKeys, mapUpdateSet, type NeonAuthToken, orderSelectedFields } from '~/utils.ts';
import type { AnyPgColumn, PgColumn } from '../columns/common.ts';
import { extractUsedTable } from '../utils.ts';
import { QueryBuilder } from './query-builder.ts';
import type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';
import type { PgUpdateSetSource } from './update.ts';

export interface PgInsertConfig<TTable extends PgTable = PgTable> {
	table: TTable;
	values: Record<string, Param | SQL>[] | PgInsertSelectQueryBuilder<TTable> | SQL;
	withList?: Subquery[];
	onConflict?: SQL;
	returningFields?: SelectedFieldsFlat;
	returning?: SelectedFieldsOrdered;
	select?: boolean;
	overridingSystemValue_?: boolean;
}

export type PgInsertValue<TTable extends PgTable<TableConfig>, OverrideT extends boolean = false> =
	& {
		[Key in keyof InferInsertModel<TTable, { dbColumnNames: false; override: OverrideT }>]:
			| InferInsertModel<TTable, { dbColumnNames: false; override: OverrideT }>[Key]
			| SQL
			| Placeholder;
	}
	& {};

export type PgInsertSelectQueryBuilder<TTable extends PgTable> = TypedQueryBuilder<
	{ [K in keyof TTable['$inferInsert']]: AnyPgColumn | SQL | SQL.Aliased | TTable['$inferInsert'][K] }
>;

export class PgInsertBuilder<
	TTable extends PgTable,
	TQueryResult extends PgQueryResultHKT,
	OverrideT extends boolean = false,
> {
	static readonly [entityKind]: string = 'PgInsertBuilder';
// ... (392 more lines)

Domain

Subdomains

Dependencies

Frequently Asked Questions

What does insert.ts do?
insert.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, QueryBuilders subdomain.
What does insert.ts depend on?
insert.ts imports 23 module(s): QueryBuilder, common.ts, dialect.ts, entity.ts, extractUsedTable, indexes.ts, query-builder.ts, query-builder.ts, and 15 more.
Where is insert.ts in the architecture?
insert.ts is located at drizzle-orm/src/pg-core/query-builders/insert.ts (domain: DrizzleORM, subdomain: QueryBuilders, directory: drizzle-orm/src/pg-core/query-builders).

Analyze Your Own Codebase

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

Try Supermodel Free