drizzle-orm 1.0.0-beta.6-a42e15a → 1.0.0-beta.6-ea4d663

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/alias.cjs CHANGED
@@ -22,6 +22,7 @@ __export(alias_exports, {
22
22
  ColumnTableAliasProxyHandler: () => ColumnTableAliasProxyHandler,
23
23
  RelationTableAliasProxyHandler: () => RelationTableAliasProxyHandler,
24
24
  TableAliasProxyHandler: () => TableAliasProxyHandler,
25
+ ViewSelectionAliasProxyHandler: () => ViewSelectionAliasProxyHandler,
25
26
  aliasedColumn: () => aliasedColumn,
26
27
  aliasedRelation: () => aliasedRelation,
27
28
  aliasedTable: () => aliasedTable,
@@ -35,6 +36,8 @@ var import_column_common = require("./column-common.cjs");
35
36
  var import_column = require("./column.cjs");
36
37
  var import_entity = require("./entity.cjs");
37
38
  var import_sql = require("./sql/sql.cjs");
39
+ var import_sql2 = require("./sql/sql.cjs");
40
+ var import_subquery = require("./subquery.cjs");
38
41
  var import_table = require("./table.cjs");
39
42
  var import_view_common = require("./view-common.cjs");
40
43
  class ColumnTableAliasProxyHandler {
@@ -53,6 +56,20 @@ class ColumnTableAliasProxyHandler {
53
56
  return columnObj[prop];
54
57
  }
55
58
  }
59
+ class ViewSelectionAliasProxyHandler {
60
+ constructor(view, selection, ignoreColumnAlias) {
61
+ this.view = view;
62
+ this.selection = selection;
63
+ this.ignoreColumnAlias = ignoreColumnAlias;
64
+ }
65
+ static [import_entity.entityKind] = "ViewSelectionAliasProxyHandler";
66
+ get(selection, prop) {
67
+ const value = selection[prop];
68
+ if ((0, import_entity.is)(value, import_column.Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(this.view, this.ignoreColumnAlias));
69
+ if ((0, import_entity.is)(value, import_subquery.Subquery) || (0, import_entity.is)(value, import_sql2.SQL) || (0, import_entity.is)(value, import_sql2.SQL.Aliased) || (0, import_sql2.isSQLWrapper)(value) || typeof value !== "object" && value !== null) return value;
70
+ return new Proxy(value, this);
71
+ }
72
+ }
56
73
  class TableAliasProxyHandler {
57
74
  constructor(alias, replaceOriginalName, ignoreColumnAlias) {
58
75
  this.alias = alias;
@@ -74,7 +91,15 @@ class TableAliasProxyHandler {
74
91
  return {
75
92
  ...target[import_view_common.ViewBaseConfig],
76
93
  name: this.alias,
77
- isAlias: true
94
+ isAlias: true,
95
+ selectedFields: new Proxy(
96
+ target[import_view_common.ViewBaseConfig].selectedFields,
97
+ new ViewSelectionAliasProxyHandler(
98
+ new Proxy(target, this),
99
+ target[import_view_common.ViewBaseConfig].selectedFields,
100
+ this.ignoreColumnAlias
101
+ )
102
+ )
78
103
  };
79
104
  }
80
105
  if (prop === import_table.Table.Symbol.Columns) {
@@ -82,6 +107,16 @@ class TableAliasProxyHandler {
82
107
  if (!columns) {
83
108
  return columns;
84
109
  }
110
+ if ((0, import_entity.is)(target, import_sql.View)) {
111
+ return new Proxy(
112
+ target[import_table.Table.Symbol.Columns],
113
+ new ViewSelectionAliasProxyHandler(
114
+ new Proxy(target, this),
115
+ target[import_table.Table.Symbol.Columns],
116
+ this.ignoreColumnAlias
117
+ )
118
+ );
119
+ }
85
120
  const proxiedColumns = {};
86
121
  Object.keys(columns).map((key) => {
87
122
  proxiedColumns[key] = new Proxy(
@@ -153,17 +188,17 @@ function aliasedTableColumn(column, tableAlias) {
153
188
  );
154
189
  }
155
190
  function mapColumnsInAliasedSQLToAlias(query, alias) {
156
- return new import_sql.SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);
191
+ return new import_sql2.SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);
157
192
  }
158
193
  function mapColumnsInSQLToAlias(query, alias) {
159
- return import_sql.sql.join(query.queryChunks.map((c) => {
194
+ return import_sql2.sql.join(query.queryChunks.map((c) => {
160
195
  if ((0, import_entity.is)(c, import_column.Column)) {
161
196
  return aliasedTableColumn(c, alias);
162
197
  }
163
- if ((0, import_entity.is)(c, import_sql.SQL)) {
198
+ if ((0, import_entity.is)(c, import_sql2.SQL)) {
164
199
  return mapColumnsInSQLToAlias(c, alias);
165
200
  }
166
- if ((0, import_entity.is)(c, import_sql.SQL.Aliased)) {
201
+ if ((0, import_entity.is)(c, import_sql2.SQL.Aliased)) {
167
202
  return mapColumnsInAliasedSQLToAlias(c, alias);
168
203
  }
169
204
  return c;
@@ -181,6 +216,7 @@ function getOriginalColumnFromAlias(column) {
181
216
  ColumnTableAliasProxyHandler,
182
217
  RelationTableAliasProxyHandler,
183
218
  TableAliasProxyHandler,
219
+ ViewSelectionAliasProxyHandler,
184
220
  aliasedColumn,
185
221
  aliasedRelation,
186
222
  aliasedTable,
package/alias.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/alias.ts"],"sourcesContent":["import type * as V1 from './_relations.ts';\nimport { OriginalColumn } from './column-common.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport type { View } from './sql/sql.ts';\nimport { SQL, sql } from './sql/sql.ts';\nimport { Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class ColumnTableAliasProxyHandler<TColumn extends Column> implements ProxyHandler<TColumn> {\n\tstatic readonly [entityKind]: string = 'ColumnTableAliasProxyHandler';\n\n\tconstructor(private table: Table | View, private ignoreColumnAlias?: boolean) {}\n\n\tget(columnObj: TColumn, prop: string | symbol): any {\n\t\tif (prop === 'table') {\n\t\t\treturn this.table;\n\t\t}\n\n\t\tif (prop === 'isAlias' && this.ignoreColumnAlias) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn columnObj[prop as keyof TColumn];\n\t}\n}\n\nexport class TableAliasProxyHandler<T extends Table | View> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'TableAliasProxyHandler';\n\n\tconstructor(private alias: string, private replaceOriginalName: boolean, private ignoreColumnAlias?: boolean) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === Table.Symbol.IsAlias) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === Table.Symbol.Name) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...target[ViewBaseConfig as keyof typeof target],\n\t\t\t\tname: this.alias,\n\t\t\t\tisAlias: true,\n\t\t\t};\n\t\t}\n\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = (target as Table)[Table.Symbol.Columns];\n\t\t\tif (!columns) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tconst proxiedColumns: { [key: string]: any } = {};\n\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(\n\t\t\t\t\tcolumns[key]!,\n\t\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn proxiedColumns;\n\t\t}\n\n\t\tconst value = target[prop as keyof typeof target];\n\t\tif (is(value, Column)) {\n\t\t\treturn new Proxy(\n\t\t\t\tvalue as AnyColumn,\n\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\nexport class ColumnAliasProxyHandler<T extends Column> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'ColumnAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: keyof Column): any {\n\t\tif (prop === 'isAlias') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === 'name') {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === 'keyAsName') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (prop === OriginalColumn) {\n\t\t\treturn () => target;\n\t\t}\n\n\t\treturn target[prop];\n\t}\n}\n\nexport class RelationTableAliasProxyHandler<T extends V1.Relation> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'RelationTableAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === 'sourceTable') {\n\t\t\treturn aliasedTable(target.sourceTable, this.alias);\n\t\t}\n\n\t\treturn target[prop as keyof typeof target];\n\t}\n}\n\nexport function aliasedTable<T extends Table | View>(table: T, tableAlias: string): T {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false, false));\n}\n\nexport function aliasedColumn<T extends Column>(column: T, alias: string): T {\n\treturn new Proxy(column, new ColumnAliasProxyHandler(alias));\n}\n\nexport function aliasedRelation<T extends V1.Relation>(relation: T, tableAlias: string): T {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\n\nexport function aliasedTableColumn<T extends AnyColumn>(column: T, tableAlias: string): T {\n\treturn new Proxy(\n\t\tcolumn,\n\t\tnew ColumnTableAliasProxyHandler(\n\t\t\tnew Proxy(column.table, new TableAliasProxyHandler(tableAlias, false, false)),\n\t\t\tfalse,\n\t\t),\n\t);\n}\n\nexport function mapColumnsInAliasedSQLToAlias(query: SQL.Aliased, alias: string): SQL.Aliased {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\n\nexport function mapColumnsInSQLToAlias(query: SQL, alias: string): SQL {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) {\n\t\t\treturn aliasedTableColumn(c, alias);\n\t\t}\n\t\tif (is(c, SQL)) {\n\t\t\treturn mapColumnsInSQLToAlias(c, alias);\n\t\t}\n\t\tif (is(c, SQL.Aliased)) {\n\t\t\treturn mapColumnsInAliasedSQLToAlias(c, alias);\n\t\t}\n\t\treturn c;\n\t}));\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.as = function(alias: string): Column {\n\treturn aliasedColumn(this, alias);\n};\n\nexport function getOriginalColumnFromAlias<T extends Column>(column: T): T {\n\treturn column[OriginalColumn]();\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/alias.ts"],"sourcesContent":["import type * as V1 from './_relations.ts';\nimport { OriginalColumn } from './column-common.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { View } from './sql/sql.ts';\nimport { isSQLWrapper, SQL, sql } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class ColumnTableAliasProxyHandler<TColumn extends Column> implements ProxyHandler<TColumn> {\n\tstatic readonly [entityKind]: string = 'ColumnTableAliasProxyHandler';\n\n\tconstructor(private table: Table | View, private ignoreColumnAlias?: boolean) {}\n\n\tget(columnObj: TColumn, prop: string | symbol): any {\n\t\tif (prop === 'table') {\n\t\t\treturn this.table;\n\t\t}\n\n\t\tif (prop === 'isAlias' && this.ignoreColumnAlias) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn columnObj[prop as keyof TColumn];\n\t}\n}\n\nexport class ViewSelectionAliasProxyHandler<TSelection extends Record<string, unknown>>\n\timplements ProxyHandler<TSelection>\n{\n\tstatic readonly [entityKind]: string = 'ViewSelectionAliasProxyHandler';\n\n\tconstructor(protected view: View, protected selection: TSelection, private ignoreColumnAlias?: boolean) {}\n\n\tget(selection: TSelection, prop: string | symbol): any {\n\t\tconst value = selection[prop as keyof TSelection];\n\n\t\tif (is(value, Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(this.view, this.ignoreColumnAlias));\n\t\tif (\n\t\t\tis(value, Subquery) || is(value, SQL) || is(value, SQL.Aliased) || isSQLWrapper(value)\n\t\t\t|| (typeof value !== 'object' && value !== null)\n\t\t) return value;\n\n\t\treturn new Proxy(value as Record<string, unknown>, this);\n\t}\n}\n\nexport class TableAliasProxyHandler<T extends Table | View> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'TableAliasProxyHandler';\n\n\tconstructor(private alias: string, private replaceOriginalName: boolean, private ignoreColumnAlias?: boolean) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === Table.Symbol.IsAlias) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === Table.Symbol.Name) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...target[ViewBaseConfig as keyof typeof target],\n\t\t\t\tname: this.alias,\n\t\t\t\tisAlias: true,\n\t\t\t\tselectedFields: new Proxy(\n\t\t\t\t\t(<View> target)[ViewBaseConfig].selectedFields,\n\t\t\t\t\tnew ViewSelectionAliasProxyHandler(\n\t\t\t\t\t\tnew Proxy(target, this) as View,\n\t\t\t\t\t\t(<View> target)[ViewBaseConfig].selectedFields,\n\t\t\t\t\t\tthis.ignoreColumnAlias,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = (target as Table)[Table.Symbol.Columns];\n\t\t\tif (!columns) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tif (is(target, View)) {\n\t\t\t\treturn new Proxy(\n\t\t\t\t\t(<View> target)[Table.Symbol.Columns],\n\t\t\t\t\tnew ViewSelectionAliasProxyHandler(\n\t\t\t\t\t\tnew Proxy(target, this) as View,\n\t\t\t\t\t\t(<View> target)[Table.Symbol.Columns],\n\t\t\t\t\t\tthis.ignoreColumnAlias,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst proxiedColumns: { [key: string]: any } = {};\n\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(\n\t\t\t\t\tcolumns[key]!,\n\t\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn proxiedColumns;\n\t\t}\n\n\t\tconst value = target[prop as keyof typeof target];\n\t\tif (is(value, Column)) {\n\t\t\treturn new Proxy(\n\t\t\t\tvalue as AnyColumn,\n\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\nexport class ColumnAliasProxyHandler<T extends Column> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'ColumnAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: keyof Column): any {\n\t\tif (prop === 'isAlias') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === 'name') {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === 'keyAsName') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (prop === OriginalColumn) {\n\t\t\treturn () => target;\n\t\t}\n\n\t\treturn target[prop];\n\t}\n}\n\nexport class RelationTableAliasProxyHandler<T extends V1.Relation> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'RelationTableAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === 'sourceTable') {\n\t\t\treturn aliasedTable(target.sourceTable, this.alias);\n\t\t}\n\n\t\treturn target[prop as keyof typeof target];\n\t}\n}\n\nexport function aliasedTable<T extends Table | View>(table: T, tableAlias: string): T {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false, false));\n}\n\nexport function aliasedColumn<T extends Column>(column: T, alias: string): T {\n\treturn new Proxy(column, new ColumnAliasProxyHandler(alias));\n}\n\nexport function aliasedRelation<T extends V1.Relation>(relation: T, tableAlias: string): T {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\n\nexport function aliasedTableColumn<T extends AnyColumn>(column: T, tableAlias: string): T {\n\treturn new Proxy(\n\t\tcolumn,\n\t\tnew ColumnTableAliasProxyHandler(\n\t\t\tnew Proxy(column.table, new TableAliasProxyHandler(tableAlias, false, false)),\n\t\t\tfalse,\n\t\t),\n\t);\n}\n\nexport function mapColumnsInAliasedSQLToAlias(query: SQL.Aliased, alias: string): SQL.Aliased {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\n\nexport function mapColumnsInSQLToAlias(query: SQL, alias: string): SQL {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) {\n\t\t\treturn aliasedTableColumn(c, alias);\n\t\t}\n\t\tif (is(c, SQL)) {\n\t\t\treturn mapColumnsInSQLToAlias(c, alias);\n\t\t}\n\t\tif (is(c, SQL.Aliased)) {\n\t\t\treturn mapColumnsInAliasedSQLToAlias(c, alias);\n\t\t}\n\t\treturn c;\n\t}));\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.as = function(alias: string): Column {\n\treturn aliasedColumn(this, alias);\n};\n\nexport function getOriginalColumnFromAlias<T extends Column>(column: T): T {\n\treturn column[OriginalColumn]();\n}\n"],"mappings":"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","names":["import_sql"]}
package/alias.d.cts CHANGED
@@ -2,7 +2,7 @@ import type * as V1 from "./_relations.cjs";
2
2
  import type { AnyColumn } from "./column.cjs";
3
3
  import { Column } from "./column.cjs";
4
4
  import { entityKind } from "./entity.cjs";
5
- import type { View } from "./sql/sql.cjs";
5
+ import { View } from "./sql/sql.cjs";
6
6
  import { SQL } from "./sql/sql.cjs";
7
7
  import { Table } from "./table.cjs";
8
8
  export declare class ColumnTableAliasProxyHandler<TColumn extends Column> implements ProxyHandler<TColumn> {
@@ -12,6 +12,14 @@ export declare class ColumnTableAliasProxyHandler<TColumn extends Column> implem
12
12
  constructor(table: Table | View, ignoreColumnAlias?: boolean | undefined);
13
13
  get(columnObj: TColumn, prop: string | symbol): any;
14
14
  }
15
+ export declare class ViewSelectionAliasProxyHandler<TSelection extends Record<string, unknown>> implements ProxyHandler<TSelection> {
16
+ protected view: View;
17
+ protected selection: TSelection;
18
+ private ignoreColumnAlias?;
19
+ static readonly [entityKind]: string;
20
+ constructor(view: View, selection: TSelection, ignoreColumnAlias?: boolean | undefined);
21
+ get(selection: TSelection, prop: string | symbol): any;
22
+ }
15
23
  export declare class TableAliasProxyHandler<T extends Table | View> implements ProxyHandler<T> {
16
24
  private alias;
17
25
  private replaceOriginalName;
package/alias.d.ts CHANGED
@@ -2,7 +2,7 @@ import type * as V1 from "./_relations.js";
2
2
  import type { AnyColumn } from "./column.js";
3
3
  import { Column } from "./column.js";
4
4
  import { entityKind } from "./entity.js";
5
- import type { View } from "./sql/sql.js";
5
+ import { View } from "./sql/sql.js";
6
6
  import { SQL } from "./sql/sql.js";
7
7
  import { Table } from "./table.js";
8
8
  export declare class ColumnTableAliasProxyHandler<TColumn extends Column> implements ProxyHandler<TColumn> {
@@ -12,6 +12,14 @@ export declare class ColumnTableAliasProxyHandler<TColumn extends Column> implem
12
12
  constructor(table: Table | View, ignoreColumnAlias?: boolean | undefined);
13
13
  get(columnObj: TColumn, prop: string | symbol): any;
14
14
  }
15
+ export declare class ViewSelectionAliasProxyHandler<TSelection extends Record<string, unknown>> implements ProxyHandler<TSelection> {
16
+ protected view: View;
17
+ protected selection: TSelection;
18
+ private ignoreColumnAlias?;
19
+ static readonly [entityKind]: string;
20
+ constructor(view: View, selection: TSelection, ignoreColumnAlias?: boolean | undefined);
21
+ get(selection: TSelection, prop: string | symbol): any;
22
+ }
15
23
  export declare class TableAliasProxyHandler<T extends Table | View> implements ProxyHandler<T> {
16
24
  private alias;
17
25
  private replaceOriginalName;
package/alias.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { OriginalColumn } from "./column-common.js";
2
2
  import { Column } from "./column.js";
3
3
  import { entityKind, is } from "./entity.js";
4
- import { SQL, sql } from "./sql/sql.js";
4
+ import { View } from "./sql/sql.js";
5
+ import { isSQLWrapper, SQL, sql } from "./sql/sql.js";
6
+ import { Subquery } from "./subquery.js";
5
7
  import { Table } from "./table.js";
6
8
  import { ViewBaseConfig } from "./view-common.js";
7
9
  class ColumnTableAliasProxyHandler {
@@ -20,6 +22,20 @@ class ColumnTableAliasProxyHandler {
20
22
  return columnObj[prop];
21
23
  }
22
24
  }
25
+ class ViewSelectionAliasProxyHandler {
26
+ constructor(view, selection, ignoreColumnAlias) {
27
+ this.view = view;
28
+ this.selection = selection;
29
+ this.ignoreColumnAlias = ignoreColumnAlias;
30
+ }
31
+ static [entityKind] = "ViewSelectionAliasProxyHandler";
32
+ get(selection, prop) {
33
+ const value = selection[prop];
34
+ if (is(value, Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(this.view, this.ignoreColumnAlias));
35
+ if (is(value, Subquery) || is(value, SQL) || is(value, SQL.Aliased) || isSQLWrapper(value) || typeof value !== "object" && value !== null) return value;
36
+ return new Proxy(value, this);
37
+ }
38
+ }
23
39
  class TableAliasProxyHandler {
24
40
  constructor(alias, replaceOriginalName, ignoreColumnAlias) {
25
41
  this.alias = alias;
@@ -41,7 +57,15 @@ class TableAliasProxyHandler {
41
57
  return {
42
58
  ...target[ViewBaseConfig],
43
59
  name: this.alias,
44
- isAlias: true
60
+ isAlias: true,
61
+ selectedFields: new Proxy(
62
+ target[ViewBaseConfig].selectedFields,
63
+ new ViewSelectionAliasProxyHandler(
64
+ new Proxy(target, this),
65
+ target[ViewBaseConfig].selectedFields,
66
+ this.ignoreColumnAlias
67
+ )
68
+ )
45
69
  };
46
70
  }
47
71
  if (prop === Table.Symbol.Columns) {
@@ -49,6 +73,16 @@ class TableAliasProxyHandler {
49
73
  if (!columns) {
50
74
  return columns;
51
75
  }
76
+ if (is(target, View)) {
77
+ return new Proxy(
78
+ target[Table.Symbol.Columns],
79
+ new ViewSelectionAliasProxyHandler(
80
+ new Proxy(target, this),
81
+ target[Table.Symbol.Columns],
82
+ this.ignoreColumnAlias
83
+ )
84
+ );
85
+ }
52
86
  const proxiedColumns = {};
53
87
  Object.keys(columns).map((key) => {
54
88
  proxiedColumns[key] = new Proxy(
@@ -147,6 +181,7 @@ export {
147
181
  ColumnTableAliasProxyHandler,
148
182
  RelationTableAliasProxyHandler,
149
183
  TableAliasProxyHandler,
184
+ ViewSelectionAliasProxyHandler,
150
185
  aliasedColumn,
151
186
  aliasedRelation,
152
187
  aliasedTable,
package/alias.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/alias.ts"],"sourcesContent":["import type * as V1 from './_relations.ts';\nimport { OriginalColumn } from './column-common.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport type { View } from './sql/sql.ts';\nimport { SQL, sql } from './sql/sql.ts';\nimport { Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class ColumnTableAliasProxyHandler<TColumn extends Column> implements ProxyHandler<TColumn> {\n\tstatic readonly [entityKind]: string = 'ColumnTableAliasProxyHandler';\n\n\tconstructor(private table: Table | View, private ignoreColumnAlias?: boolean) {}\n\n\tget(columnObj: TColumn, prop: string | symbol): any {\n\t\tif (prop === 'table') {\n\t\t\treturn this.table;\n\t\t}\n\n\t\tif (prop === 'isAlias' && this.ignoreColumnAlias) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn columnObj[prop as keyof TColumn];\n\t}\n}\n\nexport class TableAliasProxyHandler<T extends Table | View> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'TableAliasProxyHandler';\n\n\tconstructor(private alias: string, private replaceOriginalName: boolean, private ignoreColumnAlias?: boolean) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === Table.Symbol.IsAlias) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === Table.Symbol.Name) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...target[ViewBaseConfig as keyof typeof target],\n\t\t\t\tname: this.alias,\n\t\t\t\tisAlias: true,\n\t\t\t};\n\t\t}\n\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = (target as Table)[Table.Symbol.Columns];\n\t\t\tif (!columns) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tconst proxiedColumns: { [key: string]: any } = {};\n\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(\n\t\t\t\t\tcolumns[key]!,\n\t\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn proxiedColumns;\n\t\t}\n\n\t\tconst value = target[prop as keyof typeof target];\n\t\tif (is(value, Column)) {\n\t\t\treturn new Proxy(\n\t\t\t\tvalue as AnyColumn,\n\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\nexport class ColumnAliasProxyHandler<T extends Column> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'ColumnAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: keyof Column): any {\n\t\tif (prop === 'isAlias') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === 'name') {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === 'keyAsName') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (prop === OriginalColumn) {\n\t\t\treturn () => target;\n\t\t}\n\n\t\treturn target[prop];\n\t}\n}\n\nexport class RelationTableAliasProxyHandler<T extends V1.Relation> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'RelationTableAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === 'sourceTable') {\n\t\t\treturn aliasedTable(target.sourceTable, this.alias);\n\t\t}\n\n\t\treturn target[prop as keyof typeof target];\n\t}\n}\n\nexport function aliasedTable<T extends Table | View>(table: T, tableAlias: string): T {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false, false));\n}\n\nexport function aliasedColumn<T extends Column>(column: T, alias: string): T {\n\treturn new Proxy(column, new ColumnAliasProxyHandler(alias));\n}\n\nexport function aliasedRelation<T extends V1.Relation>(relation: T, tableAlias: string): T {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\n\nexport function aliasedTableColumn<T extends AnyColumn>(column: T, tableAlias: string): T {\n\treturn new Proxy(\n\t\tcolumn,\n\t\tnew ColumnTableAliasProxyHandler(\n\t\t\tnew Proxy(column.table, new TableAliasProxyHandler(tableAlias, false, false)),\n\t\t\tfalse,\n\t\t),\n\t);\n}\n\nexport function mapColumnsInAliasedSQLToAlias(query: SQL.Aliased, alias: string): SQL.Aliased {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\n\nexport function mapColumnsInSQLToAlias(query: SQL, alias: string): SQL {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) {\n\t\t\treturn aliasedTableColumn(c, alias);\n\t\t}\n\t\tif (is(c, SQL)) {\n\t\t\treturn mapColumnsInSQLToAlias(c, alias);\n\t\t}\n\t\tif (is(c, SQL.Aliased)) {\n\t\t\treturn mapColumnsInAliasedSQLToAlias(c, alias);\n\t\t}\n\t\treturn c;\n\t}));\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.as = function(alias: string): Column {\n\treturn aliasedColumn(this, alias);\n};\n\nexport function getOriginalColumnFromAlias<T extends Column>(column: T): T {\n\treturn column[OriginalColumn]();\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/alias.ts"],"sourcesContent":["import type * as V1 from './_relations.ts';\nimport { OriginalColumn } from './column-common.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { View } from './sql/sql.ts';\nimport { isSQLWrapper, SQL, sql } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class ColumnTableAliasProxyHandler<TColumn extends Column> implements ProxyHandler<TColumn> {\n\tstatic readonly [entityKind]: string = 'ColumnTableAliasProxyHandler';\n\n\tconstructor(private table: Table | View, private ignoreColumnAlias?: boolean) {}\n\n\tget(columnObj: TColumn, prop: string | symbol): any {\n\t\tif (prop === 'table') {\n\t\t\treturn this.table;\n\t\t}\n\n\t\tif (prop === 'isAlias' && this.ignoreColumnAlias) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn columnObj[prop as keyof TColumn];\n\t}\n}\n\nexport class ViewSelectionAliasProxyHandler<TSelection extends Record<string, unknown>>\n\timplements ProxyHandler<TSelection>\n{\n\tstatic readonly [entityKind]: string = 'ViewSelectionAliasProxyHandler';\n\n\tconstructor(protected view: View, protected selection: TSelection, private ignoreColumnAlias?: boolean) {}\n\n\tget(selection: TSelection, prop: string | symbol): any {\n\t\tconst value = selection[prop as keyof TSelection];\n\n\t\tif (is(value, Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(this.view, this.ignoreColumnAlias));\n\t\tif (\n\t\t\tis(value, Subquery) || is(value, SQL) || is(value, SQL.Aliased) || isSQLWrapper(value)\n\t\t\t|| (typeof value !== 'object' && value !== null)\n\t\t) return value;\n\n\t\treturn new Proxy(value as Record<string, unknown>, this);\n\t}\n}\n\nexport class TableAliasProxyHandler<T extends Table | View> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'TableAliasProxyHandler';\n\n\tconstructor(private alias: string, private replaceOriginalName: boolean, private ignoreColumnAlias?: boolean) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === Table.Symbol.IsAlias) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === Table.Symbol.Name) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...target[ViewBaseConfig as keyof typeof target],\n\t\t\t\tname: this.alias,\n\t\t\t\tisAlias: true,\n\t\t\t\tselectedFields: new Proxy(\n\t\t\t\t\t(<View> target)[ViewBaseConfig].selectedFields,\n\t\t\t\t\tnew ViewSelectionAliasProxyHandler(\n\t\t\t\t\t\tnew Proxy(target, this) as View,\n\t\t\t\t\t\t(<View> target)[ViewBaseConfig].selectedFields,\n\t\t\t\t\t\tthis.ignoreColumnAlias,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = (target as Table)[Table.Symbol.Columns];\n\t\t\tif (!columns) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tif (is(target, View)) {\n\t\t\t\treturn new Proxy(\n\t\t\t\t\t(<View> target)[Table.Symbol.Columns],\n\t\t\t\t\tnew ViewSelectionAliasProxyHandler(\n\t\t\t\t\t\tnew Proxy(target, this) as View,\n\t\t\t\t\t\t(<View> target)[Table.Symbol.Columns],\n\t\t\t\t\t\tthis.ignoreColumnAlias,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst proxiedColumns: { [key: string]: any } = {};\n\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(\n\t\t\t\t\tcolumns[key]!,\n\t\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn proxiedColumns;\n\t\t}\n\n\t\tconst value = target[prop as keyof typeof target];\n\t\tif (is(value, Column)) {\n\t\t\treturn new Proxy(\n\t\t\t\tvalue as AnyColumn,\n\t\t\t\tnew ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias),\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\nexport class ColumnAliasProxyHandler<T extends Column> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'ColumnAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: keyof Column): any {\n\t\tif (prop === 'isAlias') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === 'name') {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === 'keyAsName') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (prop === OriginalColumn) {\n\t\t\treturn () => target;\n\t\t}\n\n\t\treturn target[prop];\n\t}\n}\n\nexport class RelationTableAliasProxyHandler<T extends V1.Relation> implements ProxyHandler<T> {\n\tstatic readonly [entityKind]: string = 'RelationTableAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === 'sourceTable') {\n\t\t\treturn aliasedTable(target.sourceTable, this.alias);\n\t\t}\n\n\t\treturn target[prop as keyof typeof target];\n\t}\n}\n\nexport function aliasedTable<T extends Table | View>(table: T, tableAlias: string): T {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false, false));\n}\n\nexport function aliasedColumn<T extends Column>(column: T, alias: string): T {\n\treturn new Proxy(column, new ColumnAliasProxyHandler(alias));\n}\n\nexport function aliasedRelation<T extends V1.Relation>(relation: T, tableAlias: string): T {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\n\nexport function aliasedTableColumn<T extends AnyColumn>(column: T, tableAlias: string): T {\n\treturn new Proxy(\n\t\tcolumn,\n\t\tnew ColumnTableAliasProxyHandler(\n\t\t\tnew Proxy(column.table, new TableAliasProxyHandler(tableAlias, false, false)),\n\t\t\tfalse,\n\t\t),\n\t);\n}\n\nexport function mapColumnsInAliasedSQLToAlias(query: SQL.Aliased, alias: string): SQL.Aliased {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\n\nexport function mapColumnsInSQLToAlias(query: SQL, alias: string): SQL {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) {\n\t\t\treturn aliasedTableColumn(c, alias);\n\t\t}\n\t\tif (is(c, SQL)) {\n\t\t\treturn mapColumnsInSQLToAlias(c, alias);\n\t\t}\n\t\tif (is(c, SQL.Aliased)) {\n\t\t\treturn mapColumnsInAliasedSQLToAlias(c, alias);\n\t\t}\n\t\treturn c;\n\t}));\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.as = function(alias: string): Column {\n\treturn aliasedColumn(this, alias);\n};\n\nexport function getOriginalColumnFromAlias<T extends Column>(column: T): T {\n\treturn column[OriginalColumn]();\n}\n"],"mappings":"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","names":[]}
@@ -263,6 +263,13 @@ class CockroachDialect {
263
263
  }
264
264
  return import_sql2.sql`${fullName} ${import_sql2.sql.identifier(table[import_table2.Table.Symbol.Name])}`;
265
265
  }
266
+ if ((0, import_entity.is)(table, import_sql.View) && table[import_view_common.ViewBaseConfig].isAlias) {
267
+ let fullName = import_sql2.sql`${import_sql2.sql.identifier(table[import_view_common.ViewBaseConfig].originalName)}`;
268
+ if (table[import_view_common.ViewBaseConfig].schema) {
269
+ fullName = import_sql2.sql`${import_sql2.sql.identifier(table[import_view_common.ViewBaseConfig].schema)}.${fullName}`;
270
+ }
271
+ return import_sql2.sql`${fullName} ${import_sql2.sql.identifier(table[import_view_common.ViewBaseConfig].name)}`;
272
+ }
266
273
  return table;
267
274
  }
268
275
  buildSelectQuery({