Skip to content

Commit 5cfee6f

Browse files
committed
feat: add PostgresMetaRelationships
1 parent 2f92d12 commit 5cfee6f

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/lib/PostgresMeta.ts

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import PostgresMetaFunctions from './PostgresMetaFunctions.js'
88
import PostgresMetaMaterializedViews from './PostgresMetaMaterializedViews.js'
99
import PostgresMetaPolicies from './PostgresMetaPolicies.js'
1010
import PostgresMetaPublications from './PostgresMetaPublications.js'
11+
import PostgresMetaRelationships from './PostgresMetaRelationships.js'
1112
import PostgresMetaRoles from './PostgresMetaRoles.js'
1213
import PostgresMetaSchemas from './PostgresMetaSchemas.js'
1314
import PostgresMetaTables from './PostgresMetaTables.js'
@@ -29,6 +30,7 @@ export default class PostgresMeta {
2930
materializedViews: PostgresMetaMaterializedViews
3031
policies: PostgresMetaPolicies
3132
publications: PostgresMetaPublications
33+
relationships: PostgresMetaRelationships
3234
roles: PostgresMetaRoles
3335
schemas: PostgresMetaSchemas
3436
tables: PostgresMetaTables
@@ -53,6 +55,7 @@ export default class PostgresMeta {
5355
this.materializedViews = new PostgresMetaMaterializedViews(this.query)
5456
this.policies = new PostgresMetaPolicies(this.query)
5557
this.publications = new PostgresMetaPublications(this.query)
58+
this.relationships = new PostgresMetaRelationships(this.query)
5659
this.roles = new PostgresMetaRoles(this.query)
5760
this.schemas = new PostgresMetaSchemas(this.query)
5861
this.tables = new PostgresMetaTables(this.query)

src/lib/PostgresMetaRelationships.ts

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { relationshipsSql } from './sql/index.js'
2+
import { PostgresMetaResult, PostgresRelationship } from './types.js'
3+
4+
export default class PostgresMetaRelationships {
5+
query: (sql: string) => Promise<PostgresMetaResult<any>>
6+
7+
constructor(query: (sql: string) => Promise<PostgresMetaResult<any>>) {
8+
this.query = query
9+
}
10+
11+
async list({
12+
limit,
13+
offset,
14+
}: {
15+
limit?: number
16+
offset?: number
17+
} = {}): Promise<PostgresMetaResult<PostgresRelationship[]>> {
18+
let sql = relationshipsSql
19+
if (limit) {
20+
sql = `${sql} LIMIT ${limit}`
21+
}
22+
if (offset) {
23+
sql = `${sql} OFFSET ${offset}`
24+
}
25+
return await this.query(sql)
26+
}
27+
}

0 commit comments

Comments
 (0)