table.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { entityKind } from "../entity.js";
  2. import { Table } from "../table.js";
  3. import { getSingleStoreColumnBuilders } from "./columns/all.js";
  4. class SingleStoreTable extends Table {
  5. static [entityKind] = "SingleStoreTable";
  6. /** @internal */
  7. static Symbol = Object.assign({}, Table.Symbol, {});
  8. /** @internal */
  9. [Table.Symbol.Columns];
  10. /** @internal */
  11. [Table.Symbol.ExtraConfigBuilder] = void 0;
  12. }
  13. function singlestoreTableWithSchema(name, columns, extraConfig, schema, baseName = name) {
  14. const rawTable = new SingleStoreTable(name, schema, baseName);
  15. const parsedColumns = typeof columns === "function" ? columns(getSingleStoreColumnBuilders()) : columns;
  16. const builtColumns = Object.fromEntries(
  17. Object.entries(parsedColumns).map(([name2, colBuilderBase]) => {
  18. const colBuilder = colBuilderBase;
  19. colBuilder.setName(name2);
  20. const column = colBuilder.build(rawTable);
  21. return [name2, column];
  22. })
  23. );
  24. const table = Object.assign(rawTable, builtColumns);
  25. table[Table.Symbol.Columns] = builtColumns;
  26. table[Table.Symbol.ExtraConfigColumns] = builtColumns;
  27. if (extraConfig) {
  28. table[SingleStoreTable.Symbol.ExtraConfigBuilder] = extraConfig;
  29. }
  30. return table;
  31. }
  32. const singlestoreTable = (name, columns, extraConfig) => {
  33. return singlestoreTableWithSchema(name, columns, extraConfig, void 0, name);
  34. };
  35. function singlestoreTableCreator(customizeTableName) {
  36. return (name, columns, extraConfig) => {
  37. return singlestoreTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);
  38. };
  39. }
  40. export {
  41. SingleStoreTable,
  42. singlestoreTable,
  43. singlestoreTableCreator,
  44. singlestoreTableWithSchema
  45. };
  46. //# sourceMappingURL=table.js.map