CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
table.js71 linesDownload Raw Back to gel-core
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