AK-21/Graphite-Industrial-Intelligence
0
1import { entityKind } from "../entity.js";2import { Table } from "../table.js";3import { getGelColumnBuilders } from "./columns/all.js";4const InlineForeignKeys = Symbol.for("drizzle:GelInlineForeignKeys");5const EnableRLS = Symbol.for("drizzle:EnableRLS");6class GelTable extends Table {7 static [entityKind] = "GelTable";8 /** @internal */9 static Symbol = Object.assign({}, Table.Symbol, {10 InlineForeignKeys,11 EnableRLS12 });13 /**@internal */14 [InlineForeignKeys] = [];15 /** @internal */16 [EnableRLS] = false;17 /** @internal */18 [Table.Symbol.ExtraConfigBuilder] = void 0;19 /** @internal */20 [Table.Symbol.ExtraConfigColumns] = {};21}22function gelTableWithSchema(name, columns, extraConfig, schema, baseName = name) {23 const rawTable = new GelTable(name, schema, baseName);24 const parsedColumns = typeof columns === "function" ? columns(getGelColumnBuilders()) : columns;25 const builtColumns = Object.fromEntries(26 Object.entries(parsedColumns).map(([name2, colBuilderBase]) => {27 const colBuilder = colBuilderBase;28 colBuilder.setName(name2);29 const column = colBuilder.build(rawTable);30 rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));31 return [name2, column];32 })33 );34 const builtColumnsForExtraConfig = Object.fromEntries(35 Object.entries(parsedColumns).map(([name2, colBuilderBase]) => {36 const colBuilder = colBuilderBase;37 colBuilder.setName(name2);38 const column = colBuilder.buildExtraConfigColumn(rawTable);39 return [name2, column];40 })41 );42 const table = Object.assign(rawTable, builtColumns);43 table[Table.Symbol.Columns] = builtColumns;44 table[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;45 if (extraConfig) {46 table[GelTable.Symbol.ExtraConfigBuilder] = extraConfig;47 }48 return Object.assign(table, {49 enableRLS: () => {50 table[GelTable.Symbol.EnableRLS] = true;51 return table;52 }53 });54}55const gelTable = (name, columns, extraConfig) => {56 return gelTableWithSchema(name, columns, extraConfig, void 0);57};58function gelTableCreator(customizeTableName) {59 return (name, columns, extraConfig) => {60 return gelTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);61 };62}63export {64 EnableRLS,65 GelTable,66 InlineForeignKeys,67 gelTable,68 gelTableCreator,69 gelTableWithSchema70};71//# sourceMappingURL=table.js.map