Initial commit: New MoreminiMore website with fresh design
This commit is contained in:
113
node_modules/drizzle-orm/alias.js
generated
vendored
Normal file
113
node_modules/drizzle-orm/alias.js
generated
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
import { Column } from "./column.js";
|
||||
import { entityKind, is } from "./entity.js";
|
||||
import { SQL, sql } from "./sql/sql.js";
|
||||
import { Table } from "./table.js";
|
||||
import { ViewBaseConfig } from "./view-common.js";
|
||||
class ColumnAliasProxyHandler {
|
||||
constructor(table) {
|
||||
this.table = table;
|
||||
}
|
||||
static [entityKind] = "ColumnAliasProxyHandler";
|
||||
get(columnObj, prop) {
|
||||
if (prop === "table") {
|
||||
return this.table;
|
||||
}
|
||||
return columnObj[prop];
|
||||
}
|
||||
}
|
||||
class TableAliasProxyHandler {
|
||||
constructor(alias, replaceOriginalName) {
|
||||
this.alias = alias;
|
||||
this.replaceOriginalName = replaceOriginalName;
|
||||
}
|
||||
static [entityKind] = "TableAliasProxyHandler";
|
||||
get(target, prop) {
|
||||
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],
|
||||
name: this.alias,
|
||||
isAlias: true
|
||||
};
|
||||
}
|
||||
if (prop === Table.Symbol.Columns) {
|
||||
const columns = target[Table.Symbol.Columns];
|
||||
if (!columns) {
|
||||
return columns;
|
||||
}
|
||||
const proxiedColumns = {};
|
||||
Object.keys(columns).map((key) => {
|
||||
proxiedColumns[key] = new Proxy(
|
||||
columns[key],
|
||||
new ColumnAliasProxyHandler(new Proxy(target, this))
|
||||
);
|
||||
});
|
||||
return proxiedColumns;
|
||||
}
|
||||
const value = target[prop];
|
||||
if (is(value, Column)) {
|
||||
return new Proxy(value, new ColumnAliasProxyHandler(new Proxy(target, this)));
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
class RelationTableAliasProxyHandler {
|
||||
constructor(alias) {
|
||||
this.alias = alias;
|
||||
}
|
||||
static [entityKind] = "RelationTableAliasProxyHandler";
|
||||
get(target, prop) {
|
||||
if (prop === "sourceTable") {
|
||||
return aliasedTable(target.sourceTable, this.alias);
|
||||
}
|
||||
return target[prop];
|
||||
}
|
||||
}
|
||||
function aliasedTable(table, tableAlias) {
|
||||
return new Proxy(table, new TableAliasProxyHandler(tableAlias, false));
|
||||
}
|
||||
function aliasedRelation(relation, tableAlias) {
|
||||
return new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));
|
||||
}
|
||||
function aliasedTableColumn(column, tableAlias) {
|
||||
return new Proxy(
|
||||
column,
|
||||
new ColumnAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false)))
|
||||
);
|
||||
}
|
||||
function mapColumnsInAliasedSQLToAlias(query, alias) {
|
||||
return new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);
|
||||
}
|
||||
function mapColumnsInSQLToAlias(query, alias) {
|
||||
return sql.join(query.queryChunks.map((c) => {
|
||||
if (is(c, Column)) {
|
||||
return aliasedTableColumn(c, alias);
|
||||
}
|
||||
if (is(c, SQL)) {
|
||||
return mapColumnsInSQLToAlias(c, alias);
|
||||
}
|
||||
if (is(c, SQL.Aliased)) {
|
||||
return mapColumnsInAliasedSQLToAlias(c, alias);
|
||||
}
|
||||
return c;
|
||||
}));
|
||||
}
|
||||
export {
|
||||
ColumnAliasProxyHandler,
|
||||
RelationTableAliasProxyHandler,
|
||||
TableAliasProxyHandler,
|
||||
aliasedRelation,
|
||||
aliasedTable,
|
||||
aliasedTableColumn,
|
||||
mapColumnsInAliasedSQLToAlias,
|
||||
mapColumnsInSQLToAlias
|
||||
};
|
||||
//# sourceMappingURL=alias.js.map
|
||||
Reference in New Issue
Block a user