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 +41 -5
- package/alias.cjs.map +1 -1
- package/alias.d.cts +9 -1
- package/alias.d.ts +9 -1
- package/alias.js +37 -2
- package/alias.js.map +1 -1
- package/cockroach-core/dialect.cjs +7 -0
- package/cockroach-core/dialect.cjs.map +1 -1
- package/cockroach-core/dialect.js +7 -0
- package/cockroach-core/dialect.js.map +1 -1
- package/gel-core/dialect.cjs +7 -0
- package/gel-core/dialect.cjs.map +1 -1
- package/gel-core/dialect.js +7 -0
- package/gel-core/dialect.js.map +1 -1
- package/mssql-core/dialect.cjs +7 -0
- package/mssql-core/dialect.cjs.map +1 -1
- package/mssql-core/dialect.js +7 -0
- package/mssql-core/dialect.js.map +1 -1
- package/mysql-core/dialect.cjs +7 -0
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.js +7 -0
- package/mysql-core/dialect.js.map +1 -1
- package/package.json +1 -1
- package/pg-core/dialect.cjs +7 -0
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.js +7 -0
- package/pg-core/dialect.js.map +1 -1
- package/singlestore-core/dialect.cjs +7 -0
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.js +7 -0
- package/singlestore-core/dialect.js.map +1 -1
- package/sqlite-core/dialect.cjs +7 -0
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.js +8 -1
- package/sqlite-core/dialect.js.map +1 -1
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
|
|
191
|
+
return new import_sql2.SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);
|
|
157
192
|
}
|
|
158
193
|
function mapColumnsInSQLToAlias(query, alias) {
|
|
159
|
-
return
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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 {
|
|
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({
|