-
-
Notifications
You must be signed in to change notification settings - Fork 138
/
Copy pathPostgresMeta.ts
56 lines (54 loc) · 2.18 KB
/
PostgresMeta.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { PoolConfig } from 'pg'
import * as Parser from './Parser'
import PostgresMetaColumns from './PostgresMetaColumns'
import PostgresMetaConfig from './PostgresMetaConfig'
import PostgresMetaExtensions from './PostgresMetaExtensions'
import PostgresMetaFunctions from './PostgresMetaFunctions'
import PostgresMetaPolicies from './PostgresMetaPolicies'
import PostgresMetaPublications from './PostgresMetaPublications'
import PostgresMetaRoles from './PostgresMetaRoles'
import PostgresMetaSchemas from './PostgresMetaSchemas'
import PostgresMetaTables from './PostgresMetaTables'
import PostgresMetaTriggers from './PostgresMetaTriggers'
import PostgresMetaTypes from './PostgresMetaTypes'
import PostgresMetaVersion from './PostgresMetaVersion'
import PostgresMetaViews from './PostgresMetaViews'
import { init } from './db'
export default class PostgresMeta {
query: (sql: string) => Promise<any>
end: () => Promise<void>
columns: PostgresMetaColumns
config: PostgresMetaConfig
extensions: PostgresMetaExtensions
functions: PostgresMetaFunctions
policies: PostgresMetaPolicies
publications: PostgresMetaPublications
roles: PostgresMetaRoles
schemas: PostgresMetaSchemas
tables: PostgresMetaTables
triggers: PostgresMetaTriggers
types: PostgresMetaTypes
version: PostgresMetaVersion
views: PostgresMetaViews
parse = Parser.Parse
deparse = Parser.Deparse
format = Parser.Format
constructor(config: PoolConfig) {
const { query, queryArrayMode, end } = init(config)
this.query = queryArrayMode
this.end = end
this.columns = new PostgresMetaColumns(query)
this.config = new PostgresMetaConfig(query)
this.extensions = new PostgresMetaExtensions(query)
this.functions = new PostgresMetaFunctions(query)
this.policies = new PostgresMetaPolicies(query)
this.publications = new PostgresMetaPublications(query)
this.roles = new PostgresMetaRoles(query)
this.schemas = new PostgresMetaSchemas(query)
this.tables = new PostgresMetaTables(query)
this.triggers = new PostgresMetaTriggers(query)
this.types = new PostgresMetaTypes(query)
this.version = new PostgresMetaVersion(query)
this.views = new PostgresMetaViews(query)
}
}