relations.ts — drizzle-orm Source File
Architecture documentation for relations.ts, a typescript file in the drizzle-orm codebase. 12 imports, 1 dependents.
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
Functions
Types
- BuildQueryResult
- BuildRelationResult
- BuildRelationalQueryResult
- DBQueryConfig
- ExtractObjectValues
- ExtractRelationsFromTableExtraConfigSchema
- ExtractTableRelationsFromSchema
- ExtractTablesWithRelations
- FindTableByDBName
- NonUndefinedKeysOnly
- NormalizedRelation
- Operators
- OrderByOperators
- RelationConfig
- RelationalSchemaConfig
- ReturnTypeOrValue
- TableRelationalConfig
- TableRelationsHelpers
- TableRelationsKeysOnly
- TablesRelationalConfig
Dependencies
Imported By
Source
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