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

alias.ts — drizzle-orm Source File

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

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

Entity Profile

Dependency Diagram

graph LR
  ab181952_5759_c0bf_aeab_f255a140fe2a["alias.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb["column.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  48bb4797_1254_752d_d782_521f09c1a1d5["Column"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 48bb4797_1254_752d_d782_521f09c1a1d5
  bc6d807f_7198_da43_c1e6_911af80c80ee["entity.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> bc6d807f_7198_da43_c1e6_911af80c80ee
  c020d230_75a2_3639_d9a6_35f2ba7fd5bc["is"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> c020d230_75a2_3639_d9a6_35f2ba7fd5bc
  2f47d090_425d_2e56_2395_4c4d912316f0["relations.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 2f47d090_425d_2e56_2395_4c4d912316f0
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a["sql.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 99347ab2_b1a1_faf4_e37c_7643e4b2eb8a
  2361fb30_407d_7604_384a_a24acc5652f6["SQL"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 2361fb30_407d_7604_384a_a24acc5652f6
  eb432528_5e12_9f5b_6ed4_4aeab03024d8["sql"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> eb432528_5e12_9f5b_6ed4_4aeab03024d8
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67["table.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  6f4580c8_dbd3_725b_5126_f06988ed43ab["Table"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 6f4580c8_dbd3_725b_5126_f06988ed43ab
  84d0ea35_e4ab_0d94_802f_66e4bc7f77eb["Table"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 84d0ea35_e4ab_0d94_802f_66e4bc7f77eb
  0d9c6746_ab9a_92ca_2e6a_987b95f91630["view-common.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 0d9c6746_ab9a_92ca_2e6a_987b95f91630
  a54a11d6_4422_4e60_3d09_6c04afd8f1eb["selection-proxy.ts"]
  a54a11d6_4422_4e60_3d09_6c04afd8f1eb --> ab181952_5759_c0bf_aeab_f255a140fe2a
  style ab181952_5759_c0bf_aeab_f255a140fe2a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { AnyColumn } from './column.ts';
import { Column } from './column.ts';
import { entityKind, is } from './entity.ts';
import type { Relation } from './relations.ts';
import type { View } from './sql/sql.ts';
import { SQL, sql } from './sql/sql.ts';
import { Table } from './table.ts';
import { ViewBaseConfig } from './view-common.ts';

export class ColumnAliasProxyHandler<TColumn extends Column> implements ProxyHandler<TColumn> {
	static readonly [entityKind]: string = 'ColumnAliasProxyHandler';

	constructor(private table: Table | View) {}

	get(columnObj: TColumn, prop: string | symbol): any {
		if (prop === 'table') {
			return this.table;
		}

		return columnObj[prop as keyof TColumn];
	}
}

export class TableAliasProxyHandler<T extends Table | View> implements ProxyHandler<T> {
	static readonly [entityKind]: string = 'TableAliasProxyHandler';

	constructor(private alias: string, private replaceOriginalName: boolean) {}

	get(target: T, prop: string | symbol): any {
		if (prop === Table.Symbol.IsAlias) {
			return true;
		}

		if (prop === Table.Symbol.Name) {
			return this.alias;
		}

		if (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {
			return this.alias;
		}

		if (prop === ViewBaseConfig) {
			return {
				...target[ViewBaseConfig as keyof typeof target],
				name: this.alias,
				isAlias: true,
			};
		}

		if (prop === Table.Symbol.Columns) {
			const columns = (target as Table)[Table.Symbol.Columns];
			if (!columns) {
				return columns;
			}

			const proxiedColumns: { [key: string]: any } = {};

			Object.keys(columns).map((key) => {
				proxiedColumns[key] = new Proxy(
					columns[key]!,
// ... (67 more lines)

Domain

Subdomains

Frequently Asked Questions

What does alias.ts do?
alias.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 alias.ts?
alias.ts defines 5 function(s): aliasedRelation, aliasedTable, aliasedTableColumn, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias.
What does alias.ts depend on?
alias.ts imports 12 module(s): Column, SQL, Table, Table, column.ts, entity.ts, is, relations.ts, and 4 more.
What files import alias.ts?
alias.ts is imported by 1 file(s): selection-proxy.ts.
Where is alias.ts in the architecture?
alias.ts is located at drizzle-orm/src/alias.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