@otwdesign/db-core 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/drivers/index.d.ts +7 -1
- package/dist/drivers/index.js +2 -2
- package/dist/drivers/index.js.map +1 -1
- package/dist/drivers/postgres.d.ts +16 -1
- package/dist/drivers/postgres.js +45 -17
- package/dist/drivers/postgres.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/drivers/index.ts +9 -3
- package/src/drivers/postgres.ts +73 -28
- package/src/index.ts +2 -2
package/dist/drivers/index.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import type { ConnectionConfig, Driver } from '../types.ts';
|
|
2
|
+
import { type PostgresOptions } from './postgres.ts';
|
|
3
|
+
/** What the drivers are given, by kind: PostgreSQL's packages, for one. */
|
|
4
|
+
export interface DriverOptions {
|
|
5
|
+
/** Where a PostgreSQL connection's pg and pg-cursor come from. */
|
|
6
|
+
postgres?: PostgresOptions;
|
|
7
|
+
}
|
|
2
8
|
/** The driver for a connection, by its URL's scheme. It connects on first use. */
|
|
3
|
-
export declare function openDriver(connection: ConnectionConfig): Driver;
|
|
9
|
+
export declare function openDriver(connection: ConnectionConfig, options?: DriverOptions): Driver;
|
package/dist/drivers/index.js
CHANGED
|
@@ -3,10 +3,10 @@ import { mysqlDriver } from "./mysql.js";
|
|
|
3
3
|
import { postgresDriver } from "./postgres.js";
|
|
4
4
|
import { sqliteDriver } from "./sqlite.js";
|
|
5
5
|
/** The driver for a connection, by its URL's scheme. It connects on first use. */
|
|
6
|
-
export function openDriver(connection) {
|
|
6
|
+
export function openDriver(connection, options = {}) {
|
|
7
7
|
const kind = driverKind(connection.url, `Connection "${connection.name}"`);
|
|
8
8
|
if (kind === 'postgres')
|
|
9
|
-
return postgresDriver(connection.url);
|
|
9
|
+
return postgresDriver(connection.url, options.postgres);
|
|
10
10
|
if (kind === 'mysql')
|
|
11
11
|
return mysqlDriver(connection.url);
|
|
12
12
|
return sqliteDriver(connection.url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drivers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drivers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ1C,kFAAkF;AAClF,MAAM,UAAU,UAAU,CAAC,UAA4B,EAAE,UAAyB,EAAE;IAClF,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,eAAe,UAAU,CAAC,IAAI,GAAG,CAAC,CAAA;IAC1E,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAChF,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACxD,OAAO,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import type { Driver } from '../types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Imports pg and pg-cursor, as `() => Promise.all([import('pg'), import('pg-cursor')])` does.
|
|
4
|
+
* Each may be its import's namespace or the package's own export.
|
|
5
|
+
*/
|
|
6
|
+
export type PostgresModules = () => Promise<readonly [pg: unknown, pgCursor: unknown]>;
|
|
7
|
+
/** How a PostgreSQL driver gets the packages it runs on. */
|
|
8
|
+
export interface PostgresOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Where pg and pg-cursor come from. By default they're imported where the app runs, from the
|
|
11
|
+
* app's own dependencies. A package that brings them as its own dependencies and is bundled into
|
|
12
|
+
* the app, such as the OTW CMS plugin, passes its own imports: the app's bundler resolves those
|
|
13
|
+
* from that package, which pnpm requires, since it keeps a package's dependencies beside it.
|
|
14
|
+
*/
|
|
15
|
+
modules?: PostgresModules;
|
|
16
|
+
}
|
|
2
17
|
/**
|
|
3
18
|
* A PostgreSQL driver for `url`. It connects on first use, with a pool of up to three
|
|
4
19
|
* connections, each closed after 10 s unused; an admin tool needs few.
|
|
5
20
|
*/
|
|
6
|
-
export declare function postgresDriver(url: string): Driver;
|
|
21
|
+
export declare function postgresDriver(url: string, options?: PostgresOptions): Driver;
|
package/dist/drivers/postgres.js
CHANGED
|
@@ -13,36 +13,59 @@ const READ_CLEANUP = 'ROLLBACK; SELECT pg_advisory_unlock_all()';
|
|
|
13
13
|
const NOT_IN_TRANSACTION = '25001';
|
|
14
14
|
/** "canceling statement due to user request", after a cancel. */
|
|
15
15
|
const CANCELED = '57014';
|
|
16
|
-
|
|
16
|
+
// Imported where the app runs, not bundled: an app installs only the drivers it uses, and a
|
|
17
|
+
// bundler (Next.js) mustn't fail on one it doesn't have.
|
|
18
|
+
const fromApp = () => Promise.all([
|
|
19
|
+
import(/* webpackIgnore: true */ /* turbopackIgnore: true */ 'pg'),
|
|
20
|
+
import(/* webpackIgnore: true */ /* turbopackIgnore: true */ 'pg-cursor'),
|
|
21
|
+
]);
|
|
22
|
+
let appModules;
|
|
17
23
|
/** pg and pg-cursor, imported on the first PostgreSQL connection, so other hosts never load them. */
|
|
18
|
-
function loadModules() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
]).then(([pg, cursor]) => ({ Pool: pg.Pool, Cursor: cursor.default }), (error) => {
|
|
25
|
-
modules = undefined;
|
|
26
|
-
throw new DbAdminError(`PostgreSQL connections need the pg and pg-cursor packages: npm install pg pg-cursor (${error.message})`, 500, 'driver-missing');
|
|
24
|
+
function loadModules(given) {
|
|
25
|
+
if (given)
|
|
26
|
+
return load(given, 'Could not load pg and pg-cursor');
|
|
27
|
+
appModules ??= load(fromApp, 'PostgreSQL connections need the pg and pg-cursor packages, installed in the app: npm install pg pg-cursor').catch((error) => {
|
|
28
|
+
appModules = undefined;
|
|
29
|
+
throw error;
|
|
27
30
|
});
|
|
28
|
-
return
|
|
31
|
+
return appModules;
|
|
32
|
+
}
|
|
33
|
+
async function load(modules, failure) {
|
|
34
|
+
let pg, cursor;
|
|
35
|
+
try {
|
|
36
|
+
;
|
|
37
|
+
[pg, cursor] = await modules();
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new DbAdminError(`${failure}: ${error.message}`, 500, 'driver-missing');
|
|
41
|
+
}
|
|
42
|
+
// A CommonJS package's import has its export as the default, and pg's ESM entry names Pool too.
|
|
43
|
+
const exports = pg;
|
|
44
|
+
const PoolClass = exports.Pool ?? exports.default?.Pool;
|
|
45
|
+
const Cursor = cursor?.default ?? cursor;
|
|
46
|
+
if (typeof PoolClass !== 'function' || typeof Cursor !== 'function') {
|
|
47
|
+
throw new DbAdminError(`${failure}: they aren't pg's and pg-cursor's`, 500, 'driver-missing');
|
|
48
|
+
}
|
|
49
|
+
return { Pool: PoolClass, Cursor: Cursor };
|
|
29
50
|
}
|
|
30
51
|
/**
|
|
31
52
|
* A PostgreSQL driver for `url`. It connects on first use, with a pool of up to three
|
|
32
53
|
* connections, each closed after 10 s unused; an admin tool needs few.
|
|
33
54
|
*/
|
|
34
|
-
export function postgresDriver(url) {
|
|
35
|
-
return new PostgresDriver(url);
|
|
55
|
+
export function postgresDriver(url, options = {}) {
|
|
56
|
+
return new PostgresDriver(url, options.modules);
|
|
36
57
|
}
|
|
37
58
|
class PostgresDriver {
|
|
38
59
|
kind = 'postgres';
|
|
39
60
|
capabilities = { schemas: true, transactionalDdl: true, cancel: true };
|
|
40
61
|
sql = { identifier: quote, literal };
|
|
41
62
|
#config;
|
|
63
|
+
#modules;
|
|
42
64
|
#pool;
|
|
43
65
|
/** Type names by OID, filled as results bring new ones. */
|
|
44
66
|
#typeNames = new Map();
|
|
45
|
-
constructor(url) {
|
|
67
|
+
constructor(url, modules) {
|
|
68
|
+
this.#modules = modules;
|
|
46
69
|
this.#config = {
|
|
47
70
|
connectionString: url,
|
|
48
71
|
max: 3,
|
|
@@ -52,11 +75,15 @@ class PostgresDriver {
|
|
|
52
75
|
};
|
|
53
76
|
}
|
|
54
77
|
#open() {
|
|
55
|
-
this.#pool ??= loadModules().then((modules) => {
|
|
78
|
+
this.#pool ??= loadModules(this.#modules).then((modules) => {
|
|
56
79
|
const pool = new modules.Pool(this.#config);
|
|
57
80
|
// An idle connection the server drops would otherwise take the whole process with it.
|
|
58
81
|
pool.on('error', (error) => console.error('otw-db: a PostgreSQL connection failed', error));
|
|
59
82
|
return { pool, modules };
|
|
83
|
+
}, (error) => {
|
|
84
|
+
// Nothing opened: the next call tries again.
|
|
85
|
+
this.#pool = undefined;
|
|
86
|
+
throw error;
|
|
60
87
|
});
|
|
61
88
|
return this.#pool;
|
|
62
89
|
}
|
|
@@ -255,8 +282,9 @@ class PostgresDriver {
|
|
|
255
282
|
async close() {
|
|
256
283
|
const opened = this.#pool;
|
|
257
284
|
this.#pool = undefined;
|
|
258
|
-
|
|
259
|
-
|
|
285
|
+
// One that failed to open has nothing to close.
|
|
286
|
+
const pool = await opened?.catch(() => undefined);
|
|
287
|
+
await pool?.pool.end();
|
|
260
288
|
}
|
|
261
289
|
}
|
|
262
290
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/drivers/postgres.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/drivers/postgres.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { connectionsFromEnv, driverKind } from './connections.ts';
|
|
2
|
-
export { openDriver } from './drivers/index.ts';
|
|
2
|
+
export { openDriver, type DriverOptions } from './drivers/index.ts';
|
|
3
3
|
export { backtick, mysqlDriver, mysqlLiteral } from './drivers/mysql.ts';
|
|
4
4
|
export { sqliteDriver, sqliteLiteral, sqlitePath } from './drivers/sqlite.ts';
|
|
5
5
|
export { pgliteDriver, type PGliteLike, type PGliteQueryable } from './drivers/pglite.ts';
|
|
6
|
-
export { postgresDriver } from './drivers/postgres.ts';
|
|
6
|
+
export { postgresDriver, type PostgresModules, type PostgresOptions } from './drivers/postgres.ts';
|
|
7
7
|
export { literal as literalPostgres, quote as quotePostgres } from './drivers/postgres-catalog.ts';
|
|
8
8
|
export { ConnectionError, DbAdminError, QueryError } from './errors.ts';
|
|
9
9
|
export { EXPORT_TYPES, exportStream, type ExportBatch } from './export.ts';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAsB,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAyC,MAAM,qBAAqB,CAAA;AACzF,OAAO,EAAE,cAAc,EAA8C,MAAM,uBAAuB,CAAA;AAClG,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAClG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAA;AAC1E,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,GAIf,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAgC,MAAM,SAAS,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@otwdesign/db-core",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A database manager's engine and HTTP API, as one Fetch handler: browse, query and inspect PostgreSQL, MySQL and SQLite from any app.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "OTW SRL",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"NOTICE"
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@otwdesign/db-ui": "1.0
|
|
55
|
+
"@otwdesign/db-ui": "1.1.0"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"pg": "^8.11.0",
|
package/src/drivers/index.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { driverKind } from '../connections.ts'
|
|
2
2
|
import type { ConnectionConfig, Driver } from '../types.ts'
|
|
3
3
|
import { mysqlDriver } from './mysql.ts'
|
|
4
|
-
import { postgresDriver } from './postgres.ts'
|
|
4
|
+
import { postgresDriver, type PostgresOptions } from './postgres.ts'
|
|
5
5
|
import { sqliteDriver } from './sqlite.ts'
|
|
6
6
|
|
|
7
|
+
/** What the drivers are given, by kind: PostgreSQL's packages, for one. */
|
|
8
|
+
export interface DriverOptions {
|
|
9
|
+
/** Where a PostgreSQL connection's pg and pg-cursor come from. */
|
|
10
|
+
postgres?: PostgresOptions
|
|
11
|
+
}
|
|
12
|
+
|
|
7
13
|
/** The driver for a connection, by its URL's scheme. It connects on first use. */
|
|
8
|
-
export function openDriver(connection: ConnectionConfig): Driver {
|
|
14
|
+
export function openDriver(connection: ConnectionConfig, options: DriverOptions = {}): Driver {
|
|
9
15
|
const kind = driverKind(connection.url, `Connection "${connection.name}"`)
|
|
10
|
-
if (kind === 'postgres') return postgresDriver(connection.url)
|
|
16
|
+
if (kind === 'postgres') return postgresDriver(connection.url, options.postgres)
|
|
11
17
|
if (kind === 'mysql') return mysqlDriver(connection.url)
|
|
12
18
|
return sqliteDriver(connection.url)
|
|
13
19
|
}
|
package/src/drivers/postgres.ts
CHANGED
|
@@ -50,35 +50,69 @@ interface Modules {
|
|
|
50
50
|
Cursor: typeof CursorClass
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Imports pg and pg-cursor, as `() => Promise.all([import('pg'), import('pg-cursor')])` does.
|
|
55
|
+
* Each may be its import's namespace or the package's own export.
|
|
56
|
+
*/
|
|
57
|
+
export type PostgresModules = () => Promise<readonly [pg: unknown, pgCursor: unknown]>
|
|
54
58
|
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
/** How a PostgreSQL driver gets the packages it runs on. */
|
|
60
|
+
export interface PostgresOptions {
|
|
61
|
+
/**
|
|
62
|
+
* Where pg and pg-cursor come from. By default they're imported where the app runs, from the
|
|
63
|
+
* app's own dependencies. A package that brings them as its own dependencies and is bundled into
|
|
64
|
+
* the app, such as the OTW CMS plugin, passes its own imports: the app's bundler resolves those
|
|
65
|
+
* from that package, which pnpm requires, since it keeps a package's dependencies beside it.
|
|
66
|
+
*/
|
|
67
|
+
modules?: PostgresModules
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Imported where the app runs, not bundled: an app installs only the drivers it uses, and a
|
|
71
|
+
// bundler (Next.js) mustn't fail on one it doesn't have.
|
|
72
|
+
const fromApp: PostgresModules = () =>
|
|
73
|
+
Promise.all([
|
|
60
74
|
import(/* webpackIgnore: true */ /* turbopackIgnore: true */ 'pg'),
|
|
61
75
|
import(/* webpackIgnore: true */ /* turbopackIgnore: true */ 'pg-cursor'),
|
|
62
|
-
])
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
)
|
|
73
|
-
|
|
76
|
+
])
|
|
77
|
+
|
|
78
|
+
let appModules: Promise<Modules> | undefined
|
|
79
|
+
|
|
80
|
+
/** pg and pg-cursor, imported on the first PostgreSQL connection, so other hosts never load them. */
|
|
81
|
+
function loadModules(given: PostgresModules | undefined): Promise<Modules> {
|
|
82
|
+
if (given) return load(given, 'Could not load pg and pg-cursor')
|
|
83
|
+
appModules ??= load(
|
|
84
|
+
fromApp,
|
|
85
|
+
'PostgreSQL connections need the pg and pg-cursor packages, installed in the app: npm install pg pg-cursor',
|
|
86
|
+
).catch((error: unknown) => {
|
|
87
|
+
appModules = undefined
|
|
88
|
+
throw error
|
|
89
|
+
})
|
|
90
|
+
return appModules
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
async function load(modules: PostgresModules, failure: string): Promise<Modules> {
|
|
94
|
+
let pg: unknown, cursor: unknown
|
|
95
|
+
try {
|
|
96
|
+
;[pg, cursor] = await modules()
|
|
97
|
+
} catch (error) {
|
|
98
|
+
throw new DbAdminError(`${failure}: ${(error as Error).message}`, 500, 'driver-missing')
|
|
99
|
+
}
|
|
100
|
+
// A CommonJS package's import has its export as the default, and pg's ESM entry names Pool too.
|
|
101
|
+
const exports = pg as { Pool?: typeof Pool; default?: { Pool?: typeof Pool } }
|
|
102
|
+
const PoolClass = exports.Pool ?? exports.default?.Pool
|
|
103
|
+
const Cursor = (cursor as { default?: unknown } | undefined)?.default ?? cursor
|
|
104
|
+
if (typeof PoolClass !== 'function' || typeof Cursor !== 'function') {
|
|
105
|
+
throw new DbAdminError(`${failure}: they aren't pg's and pg-cursor's`, 500, 'driver-missing')
|
|
106
|
+
}
|
|
107
|
+
return { Pool: PoolClass, Cursor: Cursor as typeof CursorClass }
|
|
74
108
|
}
|
|
75
109
|
|
|
76
110
|
/**
|
|
77
111
|
* A PostgreSQL driver for `url`. It connects on first use, with a pool of up to three
|
|
78
112
|
* connections, each closed after 10 s unused; an admin tool needs few.
|
|
79
113
|
*/
|
|
80
|
-
export function postgresDriver(url: string): Driver {
|
|
81
|
-
return new PostgresDriver(url)
|
|
114
|
+
export function postgresDriver(url: string, options: PostgresOptions = {}): Driver {
|
|
115
|
+
return new PostgresDriver(url, options.modules)
|
|
82
116
|
}
|
|
83
117
|
|
|
84
118
|
class PostgresDriver implements Driver {
|
|
@@ -86,11 +120,13 @@ class PostgresDriver implements Driver {
|
|
|
86
120
|
readonly capabilities: Capabilities = { schemas: true, transactionalDdl: true, cancel: true }
|
|
87
121
|
readonly sql = { identifier: quote, literal }
|
|
88
122
|
readonly #config: PoolConfig
|
|
123
|
+
readonly #modules: PostgresModules | undefined
|
|
89
124
|
#pool: Promise<{ pool: Pool; modules: Modules }> | undefined
|
|
90
125
|
/** Type names by OID, filled as results bring new ones. */
|
|
91
126
|
readonly #typeNames = new Map<number, string>()
|
|
92
127
|
|
|
93
|
-
constructor(url: string) {
|
|
128
|
+
constructor(url: string, modules: PostgresModules | undefined) {
|
|
129
|
+
this.#modules = modules
|
|
94
130
|
this.#config = {
|
|
95
131
|
connectionString: url,
|
|
96
132
|
max: 3,
|
|
@@ -101,12 +137,19 @@ class PostgresDriver implements Driver {
|
|
|
101
137
|
}
|
|
102
138
|
|
|
103
139
|
#open(): Promise<{ pool: Pool; modules: Modules }> {
|
|
104
|
-
this.#pool ??= loadModules().then(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
140
|
+
this.#pool ??= loadModules(this.#modules).then(
|
|
141
|
+
(modules) => {
|
|
142
|
+
const pool = new modules.Pool(this.#config)
|
|
143
|
+
// An idle connection the server drops would otherwise take the whole process with it.
|
|
144
|
+
pool.on('error', (error) => console.error('otw-db: a PostgreSQL connection failed', error))
|
|
145
|
+
return { pool, modules }
|
|
146
|
+
},
|
|
147
|
+
(error: unknown) => {
|
|
148
|
+
// Nothing opened: the next call tries again.
|
|
149
|
+
this.#pool = undefined
|
|
150
|
+
throw error
|
|
151
|
+
},
|
|
152
|
+
)
|
|
110
153
|
return this.#pool
|
|
111
154
|
}
|
|
112
155
|
|
|
@@ -332,7 +375,9 @@ class PostgresDriver implements Driver {
|
|
|
332
375
|
async close(): Promise<void> {
|
|
333
376
|
const opened = this.#pool
|
|
334
377
|
this.#pool = undefined
|
|
335
|
-
|
|
378
|
+
// One that failed to open has nothing to close.
|
|
379
|
+
const pool = await opened?.catch(() => undefined)
|
|
380
|
+
await pool?.pool.end()
|
|
336
381
|
}
|
|
337
382
|
}
|
|
338
383
|
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { connectionsFromEnv, driverKind } from './connections.ts'
|
|
2
|
-
export { openDriver } from './drivers/index.ts'
|
|
2
|
+
export { openDriver, type DriverOptions } from './drivers/index.ts'
|
|
3
3
|
export { backtick, mysqlDriver, mysqlLiteral } from './drivers/mysql.ts'
|
|
4
4
|
export { sqliteDriver, sqliteLiteral, sqlitePath } from './drivers/sqlite.ts'
|
|
5
5
|
export { pgliteDriver, type PGliteLike, type PGliteQueryable } from './drivers/pglite.ts'
|
|
6
|
-
export { postgresDriver } from './drivers/postgres.ts'
|
|
6
|
+
export { postgresDriver, type PostgresModules, type PostgresOptions } from './drivers/postgres.ts'
|
|
7
7
|
export { literal as literalPostgres, quote as quotePostgres } from './drivers/postgres-catalog.ts'
|
|
8
8
|
export { ConnectionError, DbAdminError, QueryError } from './errors.ts'
|
|
9
9
|
export { EXPORT_TYPES, exportStream, type ExportBatch } from './export.ts'
|