@otwdesign/db-core 1.0.2 → 1.2.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/connections.d.ts +4 -3
- package/dist/connections.js +14 -3
- package/dist/connections.js.map +1 -1
- 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-catalog.d.ts +5 -0
- package/dist/drivers/postgres-catalog.js +10 -0
- package/dist/drivers/postgres-catalog.js.map +1 -1
- package/dist/drivers/postgres.d.ts +22 -1
- package/dist/drivers/postgres.js +81 -18
- package/dist/drivers/postgres.js.map +1 -1
- package/dist/handler.js +105 -23
- package/dist/handler.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +30 -0
- package/package.json +2 -2
- package/src/connections.ts +13 -3
- package/src/drivers/index.ts +9 -3
- package/src/drivers/postgres-catalog.ts +11 -0
- package/src/drivers/postgres.ts +121 -28
- package/src/handler.ts +116 -23
- package/src/index.ts +2 -2
- package/src/types.ts +31 -0
package/dist/connections.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import type { ConnectionConfig, DriverKind } from './types.ts';
|
|
|
2
2
|
type Env = Readonly<Record<string, string | undefined>>;
|
|
3
3
|
/**
|
|
4
4
|
* Connections from the environment: `DB_ADMIN_<NAME>_URL`, with `DB_ADMIN_<NAME>_ACCESS`
|
|
5
|
-
* (`read`, the default, or `write`), `DB_ADMIN_<NAME>_LABEL
|
|
6
|
-
* `development`, `testing`, `staging` or `production`)
|
|
7
|
-
*
|
|
5
|
+
* (`read`, the default, or `write`), `DB_ADMIN_<NAME>_LABEL`, `DB_ADMIN_<NAME>_TAG` (`local`,
|
|
6
|
+
* `development`, `testing`, `staging` or `production`) and `DB_ADMIN_<NAME>_DATABASES` (`all`, the
|
|
7
|
+
* default, or `one`: the URL's database only). `DB_ADMIN_SHOP_DATA_URL` becomes the connection
|
|
8
|
+
* `shop-data`. Sorted by name; an empty URL is skipped.
|
|
8
9
|
*/
|
|
9
10
|
export declare function connectionsFromEnv(env?: Env): ConnectionConfig[];
|
|
10
11
|
/** Which driver opens `url`, by its scheme. `source` names where it came from, for the error. */
|
package/dist/connections.js
CHANGED
|
@@ -10,9 +10,10 @@ const SCHEMES = {
|
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
12
12
|
* Connections from the environment: `DB_ADMIN_<NAME>_URL`, with `DB_ADMIN_<NAME>_ACCESS`
|
|
13
|
-
* (`read`, the default, or `write`), `DB_ADMIN_<NAME>_LABEL
|
|
14
|
-
* `development`, `testing`, `staging` or `production`)
|
|
15
|
-
*
|
|
13
|
+
* (`read`, the default, or `write`), `DB_ADMIN_<NAME>_LABEL`, `DB_ADMIN_<NAME>_TAG` (`local`,
|
|
14
|
+
* `development`, `testing`, `staging` or `production`) and `DB_ADMIN_<NAME>_DATABASES` (`all`, the
|
|
15
|
+
* default, or `one`: the URL's database only). `DB_ADMIN_SHOP_DATA_URL` becomes the connection
|
|
16
|
+
* `shop-data`. Sorted by name; an empty URL is skipped.
|
|
16
17
|
*/
|
|
17
18
|
export function connectionsFromEnv(env = process.env) {
|
|
18
19
|
const connections = [];
|
|
@@ -25,12 +26,14 @@ export function connectionsFromEnv(env = process.env) {
|
|
|
25
26
|
driverKind(url, variable);
|
|
26
27
|
const label = env[`${prefix}_LABEL`]?.trim();
|
|
27
28
|
const tag = tagOf(env, `${prefix}_TAG`);
|
|
29
|
+
const databases = databasesOf(env, `${prefix}_DATABASES`);
|
|
28
30
|
connections.push({
|
|
29
31
|
name: match[1].toLowerCase().replaceAll('_', '-'),
|
|
30
32
|
url,
|
|
31
33
|
access: access(env, `${prefix}_ACCESS`),
|
|
32
34
|
...(label ? { label } : {}),
|
|
33
35
|
...(tag ? { tag } : {}),
|
|
36
|
+
...(databases ? { databases } : {}),
|
|
34
37
|
});
|
|
35
38
|
}
|
|
36
39
|
return connections.sort((a, b) => a.name.localeCompare(b.name));
|
|
@@ -41,6 +44,14 @@ function access(env, variable) {
|
|
|
41
44
|
return value;
|
|
42
45
|
throw new Error(`${variable} must be "read" or "write", not "${env[variable]}".`);
|
|
43
46
|
}
|
|
47
|
+
function databasesOf(env, variable) {
|
|
48
|
+
const value = env[variable]?.trim();
|
|
49
|
+
if (!value)
|
|
50
|
+
return undefined;
|
|
51
|
+
if (value === 'all' || value === 'one')
|
|
52
|
+
return value;
|
|
53
|
+
throw new Error(`${variable} must be "all" or "one", not "${env[variable]}".`);
|
|
54
|
+
}
|
|
44
55
|
function tagOf(env, variable) {
|
|
45
56
|
const value = env[variable]?.trim();
|
|
46
57
|
if (!value)
|
package/dist/connections.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"AAIA,MAAM,YAAY,GAAG,2CAA2C,CAAA;AAChE,MAAM,IAAI,GAA6B,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;AACnG,MAAM,OAAO,GAA+B;IAC1C,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,UAAU;IACzB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,QAAQ;CAClB,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
|
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"}
|
|
@@ -10,6 +10,11 @@ export declare const TABLES_SQL = "SELECT n.nspname AS schema, c.relname AS name
|
|
|
10
10
|
/** One table: columns, primary key, indexes and constraints, as JSON. $1 schema, $2 name. */
|
|
11
11
|
export declare const TABLE_SQL = "SELECT n.nspname AS schema, c.relname AS name, c.relkind AS kind, c.reltuples AS estimate,\n CASE WHEN c.relkind IN ('r','m') THEN pg_total_relation_size(c.oid) END AS bytes,\n obj_description(c.oid, 'pg_class') AS comment,\n (SELECT coalesce(json_agg(json_build_object(\n 'name', a.attname, 'type', format_type(a.atttypid, a.atttypmod),\n 'nullable', NOT a.attnotnull, 'default', pg_get_expr(d.adbin, d.adrelid),\n 'identity', a.attidentity, 'generated', a.attgenerated,\n 'comment', col_description(a.attrelid, a.attnum)) ORDER BY a.attnum), '[]')\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON d.adrelid = a.attrelid AND d.adnum = a.attnum\n WHERE a.attrelid = c.oid AND a.attnum > 0 AND NOT a.attisdropped) AS columns,\n (SELECT coalesce(json_agg(a.attname ORDER BY k.ord), '[]')\n FROM pg_index i\n CROSS JOIN LATERAL unnest(i.indkey::int2[]) WITH ORDINALITY AS k(attnum, ord)\n JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = k.attnum\n WHERE i.indrelid = c.oid AND i.indisprimary) AS primary_key,\n (SELECT coalesce(json_agg(json_build_object(\n 'name', ic.relname, 'definition', pg_get_indexdef(i.indexrelid))\n ORDER BY ic.relname), '[]')\n FROM pg_index i JOIN pg_class ic ON ic.oid = i.indexrelid\n WHERE i.indrelid = c.oid) AS indexes,\n (SELECT coalesce(json_agg(json_build_object(\n 'name', conname, 'definition', pg_get_constraintdef(oid), 'type', contype)\n ORDER BY conname), '[]')\n FROM pg_constraint WHERE conrelid = c.oid AND contype IN ('f', 'c')) AS constraints\n FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1 AND c.relname = $2 AND c.relkind IN ('r','v','m','f','p')";
|
|
12
12
|
export declare const INFO_SQL = "SELECT current_setting('server_version') AS version, current_database() AS database,\n current_user AS user";
|
|
13
|
+
/**
|
|
14
|
+
* The databases the login may connect to, the current one always among them: no templates, none
|
|
15
|
+
* that refuse connections, none a failed DROP DATABASE left invalid (a connection limit of -2).
|
|
16
|
+
*/
|
|
17
|
+
export declare const DATABASES_SQL = "SELECT datname AS name, datname = current_database() AS current\n FROM pg_database\n WHERE datname = current_database()\n OR (datallowconn AND NOT datistemplate AND datconnlimit <> -2\n AND has_database_privilege(oid, 'CONNECT'))\n ORDER BY lower(datname), datname";
|
|
13
18
|
/** Names for type OIDs: $1 an array of them. */
|
|
14
19
|
export declare const TYPE_NAMES_SQL = "SELECT oid::text AS oid, format_type(oid, NULL) AS name FROM pg_type WHERE oid = ANY($1::oid[])";
|
|
15
20
|
export interface CatalogTable {
|
|
@@ -70,6 +70,16 @@ export const TABLE_SQL = `SELECT n.nspname AS schema, c.relname AS name, c.relki
|
|
|
70
70
|
WHERE n.nspname = $1 AND c.relname = $2 AND c.relkind IN ${RELKINDS}`;
|
|
71
71
|
export const INFO_SQL = `SELECT current_setting('server_version') AS version, current_database() AS database,
|
|
72
72
|
current_user AS user`;
|
|
73
|
+
/**
|
|
74
|
+
* The databases the login may connect to, the current one always among them: no templates, none
|
|
75
|
+
* that refuse connections, none a failed DROP DATABASE left invalid (a connection limit of -2).
|
|
76
|
+
*/
|
|
77
|
+
export const DATABASES_SQL = `SELECT datname AS name, datname = current_database() AS current
|
|
78
|
+
FROM pg_database
|
|
79
|
+
WHERE datname = current_database()
|
|
80
|
+
OR (datallowconn AND NOT datistemplate AND datconnlimit <> -2
|
|
81
|
+
AND has_database_privilege(oid, 'CONNECT'))
|
|
82
|
+
ORDER BY lower(datname), datname`;
|
|
73
83
|
/** Names for type OIDs: $1 an array of them. */
|
|
74
84
|
export const TYPE_NAMES_SQL = 'SELECT oid::text AS oid, format_type(oid, NULL) AS name FROM pg_type WHERE oid = ANY($1::oid[])';
|
|
75
85
|
export function summary(row) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-catalog.js","sourceRoot":"","sources":["../../src/drivers/postgres-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAA;AAEpD;;;GAGG;AAEH,MAAM,KAAK,GAA8B;IACvC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,mBAAmB;CACvB,CAAA;AACD,MAAM,QAAQ,GAAG,uBAAuB,CAAA;AAExC,gFAAgF;AAChF,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAA;AAEhC,uFAAuF;AACvF,MAAM,UAAU,OAAO,CAAC,KAAoB;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,0FAA0F;IAC1F,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,UAAU,EAAE,KAAK;IACjB,OAAO;IACP,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;IAC3B,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,QAAQ;IAC3C,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,EAAE;IACd,0DAA0D;IAC1D,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,UAAU,UAAU,SAAS,CAAC,MAAM,CAAC,GAAG;IACtF,cAAc,EAAE,gBAAgB;CACjC,CAAA;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG;;;6BAGG,QAAQ;;;sBAGf,CAAA;AAEtB,6FAA6F;AAC7F,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;mEA0B0C,QAAQ,EAAE,CAAA;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAG;mCACW,CAAA;AAEnC,gDAAgD;AAChD,MAAM,CAAC,MAAM,cAAc,GACzB,iGAAiG,CAAA;AA4BnG,MAAM,UAAU,OAAO,CAAC,GAAiB;IACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO;QAChC,oDAAoD;QACpD,aAAa,EAAE,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7E,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;KACrD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAgB;IACrC,MAAM,SAAS,GACb,CAAC,CAAC,QAAQ,KAAK,GAAG;QAChB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG;YAClB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG;gBACnB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG;oBACnB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,CAAA;IAChB,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,SAAS;QACT,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAA;AACH,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,MAAM,CAAC,GAAiC;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAyC,CAAA;IACvF,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,EAAE,CAC/B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IAClG,OAAO;QACL,GAAG,OAAO,CAAC,GAAG,CAAC;QACf,OAAO,EAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;QACjE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAa;QACnD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAiB;QAChD,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC;QACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAA;AACH,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;AAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"postgres-catalog.js","sourceRoot":"","sources":["../../src/drivers/postgres-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,27 @@
|
|
|
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
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* `url` at another of its server's databases: its path swapped for `database`, its login, host and
|
|
19
|
+
* settings kept. pg reads the path back with decodeURI, which leaves `?` and `#` escaped, so a
|
|
20
|
+
* name with either can't be carried.
|
|
21
|
+
*/
|
|
22
|
+
export declare function postgresUrlAt(url: string, database: string): string;
|
|
2
23
|
/**
|
|
3
24
|
* A PostgreSQL driver for `url`. It connects on first use, with a pool of up to three
|
|
4
25
|
* connections, each closed after 10 s unused; an admin tool needs few.
|
|
5
26
|
*/
|
|
6
|
-
export declare function postgresDriver(url: string): Driver;
|
|
27
|
+
export declare function postgresDriver(url: string, options?: PostgresOptions): Driver;
|
package/dist/drivers/postgres.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { connect } from 'node:net';
|
|
2
2
|
import { ConnectionError, DbAdminError, QueryError } from "../errors.js";
|
|
3
|
-
import { detail, dialect, INFO_SQL, literal, quote, summary, TABLE_SQL, TABLES_SQL, TYPE_NAMES_SQL, versionOf, } from "./postgres-catalog.js";
|
|
3
|
+
import { DATABASES_SQL, detail, dialect, INFO_SQL, literal, quote, summary, TABLE_SQL, TABLES_SQL, TYPE_NAMES_SQL, versionOf, } from "./postgres-catalog.js";
|
|
4
4
|
import { changeStatement, orderBy, Parameters, where, whole } from "./sql.js";
|
|
5
5
|
/** Every value as the server's text: nothing converted, so nothing lost. */
|
|
6
6
|
const AS_TEXT = { getTypeParser: () => (value) => value };
|
|
@@ -13,36 +13,84 @@ 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 };
|
|
50
|
+
}
|
|
51
|
+
/** A placeholder host for a URL with none, as pg's own parser uses: `user@/db?host=/socket`. */
|
|
52
|
+
const NO_HOST = '___otw_db_no_host___';
|
|
53
|
+
/**
|
|
54
|
+
* `url` at another of its server's databases: its path swapped for `database`, its login, host and
|
|
55
|
+
* settings kept. pg reads the path back with decodeURI, which leaves `?` and `#` escaped, so a
|
|
56
|
+
* name with either can't be carried.
|
|
57
|
+
*/
|
|
58
|
+
export function postgresUrlAt(url, database) {
|
|
59
|
+
if (/[?#]/.test(database)) {
|
|
60
|
+
throw new DbAdminError(`The database "${database}" can't be opened: a connection URL can't name a database with ? or #.`, 400, 'bad-database');
|
|
61
|
+
}
|
|
62
|
+
const hostless = url.includes('@/');
|
|
63
|
+
let parsed;
|
|
64
|
+
try {
|
|
65
|
+
parsed = new URL(hostless ? url.replace('@/', `@${NO_HOST}/`) : url);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Not the URL itself, which may hold a password.
|
|
69
|
+
throw new DbAdminError("The connection's URL can't be moved to another database.", 500, 'bad-url');
|
|
70
|
+
}
|
|
71
|
+
parsed.pathname = `/${encodeURI(database)}`;
|
|
72
|
+
return hostless ? parsed.href.replace(`@${NO_HOST}/`, '@/') : parsed.href;
|
|
29
73
|
}
|
|
30
74
|
/**
|
|
31
75
|
* A PostgreSQL driver for `url`. It connects on first use, with a pool of up to three
|
|
32
76
|
* connections, each closed after 10 s unused; an admin tool needs few.
|
|
33
77
|
*/
|
|
34
|
-
export function postgresDriver(url) {
|
|
35
|
-
return new PostgresDriver(url);
|
|
78
|
+
export function postgresDriver(url, options = {}) {
|
|
79
|
+
return new PostgresDriver(url, options.modules);
|
|
36
80
|
}
|
|
37
81
|
class PostgresDriver {
|
|
38
82
|
kind = 'postgres';
|
|
39
83
|
capabilities = { schemas: true, transactionalDdl: true, cancel: true };
|
|
40
84
|
sql = { identifier: quote, literal };
|
|
85
|
+
#url;
|
|
41
86
|
#config;
|
|
87
|
+
#modules;
|
|
42
88
|
#pool;
|
|
43
89
|
/** Type names by OID, filled as results bring new ones. */
|
|
44
90
|
#typeNames = new Map();
|
|
45
|
-
constructor(url) {
|
|
91
|
+
constructor(url, modules) {
|
|
92
|
+
this.#url = url;
|
|
93
|
+
this.#modules = modules;
|
|
46
94
|
this.#config = {
|
|
47
95
|
connectionString: url,
|
|
48
96
|
max: 3,
|
|
@@ -52,11 +100,15 @@ class PostgresDriver {
|
|
|
52
100
|
};
|
|
53
101
|
}
|
|
54
102
|
#open() {
|
|
55
|
-
this.#pool ??= loadModules().then((modules) => {
|
|
103
|
+
this.#pool ??= loadModules(this.#modules).then((modules) => {
|
|
56
104
|
const pool = new modules.Pool(this.#config);
|
|
57
105
|
// An idle connection the server drops would otherwise take the whole process with it.
|
|
58
106
|
pool.on('error', (error) => console.error('otw-db: a PostgreSQL connection failed', error));
|
|
59
107
|
return { pool, modules };
|
|
108
|
+
}, (error) => {
|
|
109
|
+
// Nothing opened: the next call tries again.
|
|
110
|
+
this.#pool = undefined;
|
|
111
|
+
throw error;
|
|
60
112
|
});
|
|
61
113
|
return this.#pool;
|
|
62
114
|
}
|
|
@@ -118,6 +170,16 @@ class PostgresDriver {
|
|
|
118
170
|
query(sql, options) {
|
|
119
171
|
return this.#run(sql, undefined, options);
|
|
120
172
|
}
|
|
173
|
+
async databases() {
|
|
174
|
+
const rows = await this.#catalog(DATABASES_SQL);
|
|
175
|
+
return {
|
|
176
|
+
current: rows.find((row) => row.current === 't')?.name ?? '',
|
|
177
|
+
databases: rows.map((row) => row.name),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
withDatabase(name) {
|
|
181
|
+
return new PostgresDriver(postgresUrlAt(this.#url, name), this.#modules);
|
|
182
|
+
}
|
|
121
183
|
async apply({ schema, table }, changes, { timeoutMs, dryRun = false }) {
|
|
122
184
|
const statements = changes.map((change) => changeStatement(dialect, `${quote(schema)}.${quote(table)}`, change));
|
|
123
185
|
const shown = statements.map((s) => s.shown);
|
|
@@ -255,8 +317,9 @@ class PostgresDriver {
|
|
|
255
317
|
async close() {
|
|
256
318
|
const opened = this.#pool;
|
|
257
319
|
this.#pool = undefined;
|
|
258
|
-
|
|
259
|
-
|
|
320
|
+
// One that failed to open has nothing to close.
|
|
321
|
+
const pool = await opened?.catch(() => undefined);
|
|
322
|
+
await pool?.pool.end();
|
|
260
323
|
}
|
|
261
324
|
}
|
|
262
325
|
/**
|
|
@@ -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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"}
|