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

relations.ts — drizzle-orm Source File

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

File typescript DrizzleORM RelationalQuery 12 imports 1 dependents 11 functions 3 classes

Entity Profile

Dependency Diagram

graph LR
  2f47d090_425d_2e56_2395_4c4d912316f0["relations.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb["column.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  48bb4797_1254_752d_d782_521f09c1a1d5["Column"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 48bb4797_1254_752d_d782_521f09c1a1d5
  bc6d807f_7198_da43_c1e6_911af80c80ee["entity.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> bc6d807f_7198_da43_c1e6_911af80c80ee
  c020d230_75a2_3639_d9a6_35f2ba7fd5bc["is"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> c020d230_75a2_3639_d9a6_35f2ba7fd5bc
  87a357d2_c2ec_b04d_8912_3b8be2a92815["primary-keys.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 87a357d2_c2ec_b04d_8912_3b8be2a92815
  35be54b0_979d_726f_b396_86ad54fdbc25["PrimaryKeyBuilder"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 35be54b0_979d_726f_b396_86ad54fdbc25
  17c46812_327b_bbab_41fb_43fd93ffa1ed["index.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 17c46812_327b_bbab_41fb_43fd93ffa1ed
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a["sql.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 99347ab2_b1a1_faf4_e37c_7643e4b2eb8a
  2361fb30_407d_7604_384a_a24acc5652f6["SQL"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 2361fb30_407d_7604_384a_a24acc5652f6
  eb432528_5e12_9f5b_6ed4_4aeab03024d8["sql"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> eb432528_5e12_9f5b_6ed4_4aeab03024d8
  99737bc3_a631_a054_9291_f966c791930f["utils.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 99737bc3_a631_a054_9291_f966c791930f
  1fd6ac27_a0fb_a054_a358_c8766c3fcbd7["table.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 1fd6ac27_a0fb_a054_a358_c8766c3fcbd7
  ab181952_5759_c0bf_aeab_f255a140fe2a["alias.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 2f47d090_425d_2e56_2395_4c4d912316f0
  style 2f47d090_425d_2e56_2395_4c4d912316f0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { type AnyTable, getTableUniqueName, type InferModelFromColumns, Table } from '~/table.ts';
import { type AnyColumn, Column } from './column.ts';
import { entityKind, is } from './entity.ts';
import { PrimaryKeyBuilder } from './pg-core/primary-keys.ts';
import {
	and,
	asc,
	between,
	desc,
	eq,
	exists,
	gt,
	gte,
	ilike,
	inArray,
	isNotNull,
	isNull,
	like,
	lt,
	lte,
	ne,
	not,
	notBetween,
	notExists,
	notIlike,
	notInArray,
	notLike,
	or,
} from './sql/expressions/index.ts';
import { type Placeholder, SQL, sql } from './sql/sql.ts';
import type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.ts';

export abstract class Relation<TTableName extends string = string> {
	static readonly [entityKind]: string = 'Relation';

	declare readonly $brand: 'Relation';
	readonly referencedTableName: TTableName;
	fieldName!: string;

	constructor(
		readonly sourceTable: Table,
		readonly referencedTable: AnyTable<{ name: TTableName }>,
		readonly relationName: string | undefined,
	) {
		this.referencedTableName = referencedTable[Table.Symbol.Name] as TTableName;
	}

	abstract withFieldName(fieldName: string): Relation<TTableName>;
}

export class Relations<
	TTableName extends string = string,
	TConfig extends Record<string, Relation> = Record<string, Relation>,
> {
	static readonly [entityKind]: string = 'Relations';

	declare readonly $brand: 'Relations';

	constructor(
		readonly table: AnyTable<{ name: TTableName }>,
// ... (666 more lines)

Domain

Subdomains

Frequently Asked Questions

What does relations.ts do?
relations.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 relations.ts?
relations.ts defines 11 function(s): args, createMany, createOne, createTableRelationsHelpers, extractTablesRelationalConfig, fields, getOperators, getOrderByOperators, mapRelationalRow, normalizeRelation, and 1 more.
What does relations.ts depend on?
relations.ts imports 12 module(s): Column, PrimaryKeyBuilder, SQL, column.ts, entity.ts, index.ts, is, primary-keys.ts, and 4 more.
What files import relations.ts?
relations.ts is imported by 1 file(s): alias.ts.
Where is relations.ts in the architecture?
relations.ts is located at drizzle-orm/src/relations.ts (domain: DrizzleORM, subdomain: RelationalQuery, directory: drizzle-orm/src).

Analyze Your Own Codebase

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

Try Supermodel Free