utils.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { is } from "../entity.js";
  2. import { SQL } from "../sql/sql.js";
  3. import { Subquery } from "../subquery.js";
  4. import { Table } from "../table.js";
  5. import { ViewBaseConfig } from "../view-common.js";
  6. import { CheckBuilder } from "./checks.js";
  7. import { ForeignKeyBuilder } from "./foreign-keys.js";
  8. import { IndexBuilder } from "./indexes.js";
  9. import { PrimaryKeyBuilder } from "./primary-keys.js";
  10. import { SQLiteTable } from "./table.js";
  11. import { UniqueConstraintBuilder } from "./unique-constraint.js";
  12. function getTableConfig(table) {
  13. const columns = Object.values(table[SQLiteTable.Symbol.Columns]);
  14. const indexes = [];
  15. const checks = [];
  16. const primaryKeys = [];
  17. const uniqueConstraints = [];
  18. const foreignKeys = Object.values(table[SQLiteTable.Symbol.InlineForeignKeys]);
  19. const name = table[Table.Symbol.Name];
  20. const extraConfigBuilder = table[SQLiteTable.Symbol.ExtraConfigBuilder];
  21. if (extraConfigBuilder !== void 0) {
  22. const extraConfig = extraConfigBuilder(table[SQLiteTable.Symbol.Columns]);
  23. const extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);
  24. for (const builder of Object.values(extraValues)) {
  25. if (is(builder, IndexBuilder)) {
  26. indexes.push(builder.build(table));
  27. } else if (is(builder, CheckBuilder)) {
  28. checks.push(builder.build(table));
  29. } else if (is(builder, UniqueConstraintBuilder)) {
  30. uniqueConstraints.push(builder.build(table));
  31. } else if (is(builder, PrimaryKeyBuilder)) {
  32. primaryKeys.push(builder.build(table));
  33. } else if (is(builder, ForeignKeyBuilder)) {
  34. foreignKeys.push(builder.build(table));
  35. }
  36. }
  37. }
  38. return {
  39. columns,
  40. indexes,
  41. foreignKeys,
  42. checks,
  43. primaryKeys,
  44. uniqueConstraints,
  45. name
  46. };
  47. }
  48. function extractUsedTable(table) {
  49. if (is(table, SQLiteTable)) {
  50. return [`${table[Table.Symbol.BaseName]}`];
  51. }
  52. if (is(table, Subquery)) {
  53. return table._.usedTables ?? [];
  54. }
  55. if (is(table, SQL)) {
  56. return table.usedTables ?? [];
  57. }
  58. return [];
  59. }
  60. function getViewConfig(view) {
  61. return {
  62. ...view[ViewBaseConfig]
  63. // ...view[SQLiteViewConfig],
  64. };
  65. }
  66. export {
  67. extractUsedTable,
  68. getTableConfig,
  69. getViewConfig
  70. };
  71. //# sourceMappingURL=utils.js.map