utils.d.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { PgTable } from "./table.js";
  2. import { SQL } from "../sql/sql.js";
  3. import { Subquery } from "../subquery.js";
  4. import { type Check } from "./checks.js";
  5. import type { AnyPgColumn } from "./columns/index.js";
  6. import { type ForeignKey } from "./foreign-keys.js";
  7. import type { Index } from "./indexes.js";
  8. import { PgPolicy } from "./policies.js";
  9. import { type PrimaryKey } from "./primary-keys.js";
  10. import { type UniqueConstraint } from "./unique-constraint.js";
  11. import type { PgViewBase } from "./view-base.js";
  12. import { type PgMaterializedView, type PgView } from "./view.js";
  13. export declare function getTableConfig<TTable extends PgTable>(table: TTable): {
  14. columns: import("./index.js").PgColumn<import("../column.js").ColumnBaseConfig<import("../column-builder.js").ColumnDataType, string>, {}, {}>[];
  15. indexes: Index[];
  16. foreignKeys: ForeignKey[];
  17. checks: Check[];
  18. primaryKeys: PrimaryKey[];
  19. uniqueConstraints: UniqueConstraint[];
  20. name: string;
  21. schema: string | undefined;
  22. policies: PgPolicy[];
  23. enableRLS: boolean;
  24. };
  25. export declare function extractUsedTable(table: PgTable | Subquery | PgViewBase | SQL): string[];
  26. export declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: PgView<TName, TExisting>): {
  27. with?: import("./view.js").ViewWithConfig;
  28. name: TName;
  29. originalName: TName;
  30. schema: string | undefined;
  31. selectedFields: import("../sql/sql.js").ColumnsSelection;
  32. isExisting: TExisting;
  33. query: TExisting extends true ? undefined : SQL<unknown>;
  34. isAlias: boolean;
  35. };
  36. export declare function getMaterializedViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: PgMaterializedView<TName, TExisting>): {
  37. with?: import("./view.js").PgMaterializedViewWithConfig;
  38. using?: string;
  39. tablespace?: string;
  40. withNoData?: boolean;
  41. name: TName;
  42. originalName: TName;
  43. schema: string | undefined;
  44. selectedFields: import("../sql/sql.js").ColumnsSelection;
  45. isExisting: TExisting;
  46. query: TExisting extends true ? undefined : SQL<unknown>;
  47. isAlias: boolean;
  48. };
  49. export type ColumnsWithTable<TTableName extends string, TForeignTableName extends string, TColumns extends AnyPgColumn<{
  50. tableName: TTableName;
  51. }>[]> = {
  52. [Key in keyof TColumns]: AnyPgColumn<{
  53. tableName: TForeignTableName;
  54. }>;
  55. };