alias.ts — drizzle-orm Source File
Architecture documentation for alias.ts, a typescript file in the drizzle-orm codebase. 12 imports, 1 dependents.
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
Functions
Imported By
Source
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