table.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { entityKind } from "./entity.js";
  2. import { TableName } from "./table.utils.js";
  3. const Schema = Symbol.for("drizzle:Schema");
  4. const Columns = Symbol.for("drizzle:Columns");
  5. const ExtraConfigColumns = Symbol.for("drizzle:ExtraConfigColumns");
  6. const OriginalName = Symbol.for("drizzle:OriginalName");
  7. const BaseName = Symbol.for("drizzle:BaseName");
  8. const IsAlias = Symbol.for("drizzle:IsAlias");
  9. const ExtraConfigBuilder = Symbol.for("drizzle:ExtraConfigBuilder");
  10. const IsDrizzleTable = Symbol.for("drizzle:IsDrizzleTable");
  11. class Table {
  12. static [entityKind] = "Table";
  13. /** @internal */
  14. static Symbol = {
  15. Name: TableName,
  16. Schema,
  17. OriginalName,
  18. Columns,
  19. ExtraConfigColumns,
  20. BaseName,
  21. IsAlias,
  22. ExtraConfigBuilder
  23. };
  24. /**
  25. * @internal
  26. * Can be changed if the table is aliased.
  27. */
  28. [TableName];
  29. /**
  30. * @internal
  31. * Used to store the original name of the table, before any aliasing.
  32. */
  33. [OriginalName];
  34. /** @internal */
  35. [Schema];
  36. /** @internal */
  37. [Columns];
  38. /** @internal */
  39. [ExtraConfigColumns];
  40. /**
  41. * @internal
  42. * Used to store the table name before the transformation via the `tableCreator` functions.
  43. */
  44. [BaseName];
  45. /** @internal */
  46. [IsAlias] = false;
  47. /** @internal */
  48. [IsDrizzleTable] = true;
  49. /** @internal */
  50. [ExtraConfigBuilder] = void 0;
  51. constructor(name, schema, baseName) {
  52. this[TableName] = this[OriginalName] = name;
  53. this[Schema] = schema;
  54. this[BaseName] = baseName;
  55. }
  56. }
  57. function isTable(table) {
  58. return typeof table === "object" && table !== null && IsDrizzleTable in table;
  59. }
  60. function getTableName(table) {
  61. return table[TableName];
  62. }
  63. function getTableUniqueName(table) {
  64. return `${table[Schema] ?? "public"}.${table[TableName]}`;
  65. }
  66. export {
  67. BaseName,
  68. Columns,
  69. ExtraConfigBuilder,
  70. ExtraConfigColumns,
  71. IsAlias,
  72. OriginalName,
  73. Schema,
  74. Table,
  75. getTableName,
  76. getTableUniqueName,
  77. isTable
  78. };
  79. //# sourceMappingURL=table.js.map