linkgress-orm 0.4.33 → 0.4.35
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/database/database-client.interface.d.ts +37 -4
- package/dist/database/database-client.interface.d.ts.map +1 -1
- package/dist/database/database-client.interface.js +27 -3
- package/dist/database/database-client.interface.js.map +1 -1
- package/dist/database/index.d.ts +2 -1
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +2 -1
- package/dist/database/index.js.map +1 -1
- package/dist/database/postgres-client.d.ts +12 -1
- package/dist/database/postgres-client.d.ts.map +1 -1
- package/dist/database/postgres-client.js +151 -21
- package/dist/database/postgres-client.js.map +1 -1
- package/dist/database/types.d.ts +12 -0
- package/dist/database/types.d.ts.map +1 -1
- package/dist/entity/db-context.d.ts +221 -8
- package/dist/entity/db-context.d.ts.map +1 -1
- package/dist/entity/db-context.js +335 -59
- package/dist/entity/db-context.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/query/grouped-query.d.ts +38 -1
- package/dist/query/grouped-query.d.ts.map +1 -1
- package/dist/query/grouped-query.js +67 -0
- package/dist/query/grouped-query.js.map +1 -1
- package/dist/query/join-builder.d.ts +14 -1
- package/dist/query/join-builder.d.ts.map +1 -1
- package/dist/query/join-builder.js +23 -0
- package/dist/query/join-builder.js.map +1 -1
- package/dist/query/query-builder.d.ts +33 -1
- package/dist/query/query-builder.d.ts.map +1 -1
- package/dist/query/query-builder.js +51 -0
- package/dist/query/query-builder.js.map +1 -1
- package/dist/query/union-builder.d.ts +14 -1
- package/dist/query/union-builder.d.ts.map +1 -1
- package/dist/query/union-builder.js +23 -0
- package/dist/query/union-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,39 @@ export interface QueryExecutionOptions {
|
|
|
15
15
|
* Default: false (uses text protocol)
|
|
16
16
|
*/
|
|
17
17
|
useBinaryProtocol?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Per-query timeout override, in milliseconds. Set by `.withTimeout(ms)`.
|
|
20
|
+
*
|
|
21
|
+
* When present, the driver runs *this query only* inside a short transaction
|
|
22
|
+
* that issues `SET LOCAL statement_timeout` first — so the override is scoped
|
|
23
|
+
* to the query (auto-resets at COMMIT) and cannot affect other queries on the
|
|
24
|
+
* pooled connection. A value of `0` disables the timeout for this query
|
|
25
|
+
* (overriding any connection-level default). When absent, no wrapping happens
|
|
26
|
+
* and the connection-level default (if any) applies.
|
|
27
|
+
*
|
|
28
|
+
* On timeout the driver throws a {@link QueryTimeoutError}.
|
|
29
|
+
*
|
|
30
|
+
* NOTE: Currently only honored by `PostgresClient` (the `postgres`/porsager
|
|
31
|
+
* driver). `PgClient` and `BunClient` ignore it.
|
|
32
|
+
*/
|
|
33
|
+
timeoutMs?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Error thrown when a query is cancelled because it exceeded its timeout — the
|
|
37
|
+
* per-query `.withTimeout(ms)` override or the connection-level
|
|
38
|
+
* `statement_timeout` default.
|
|
39
|
+
*
|
|
40
|
+
* The underlying database error (PostgreSQL code `57014`, "canceling statement
|
|
41
|
+
* due to statement timeout") is preserved on the `cause` property.
|
|
42
|
+
*/
|
|
43
|
+
export declare class QueryTimeoutError extends Error {
|
|
44
|
+
/** The timeout that was exceeded, in milliseconds (`0` if not known). */
|
|
45
|
+
readonly timeoutMs: number;
|
|
46
|
+
/** The SQL text of the query that timed out. */
|
|
47
|
+
readonly sql: string;
|
|
48
|
+
/** The original driver error that surfaced the cancellation, if any. */
|
|
49
|
+
readonly cause?: unknown;
|
|
50
|
+
constructor(timeoutMs: number, sql: string, cause?: unknown);
|
|
18
51
|
}
|
|
19
52
|
/**
|
|
20
53
|
* Database-agnostic pooled client/connection interface
|
|
@@ -55,7 +88,7 @@ export declare abstract class DatabaseClient {
|
|
|
55
88
|
* @param callback - Function to execute within the transaction. Receives a query function.
|
|
56
89
|
* @returns The result of the callback
|
|
57
90
|
*/
|
|
58
|
-
abstract transaction<T>(callback: (query: (sql: string, params?: any[]) => Promise<QueryResult>) => Promise<T>): Promise<T>;
|
|
91
|
+
abstract transaction<T>(callback: (query: (sql: string, params?: any[], options?: QueryExecutionOptions) => Promise<QueryResult>) => Promise<T>): Promise<T>;
|
|
59
92
|
/**
|
|
60
93
|
* Check if the driver supports executing multiple SQL statements in a single query
|
|
61
94
|
* and returning multiple result sets.
|
|
@@ -77,13 +110,13 @@ export declare abstract class DatabaseClient {
|
|
|
77
110
|
export declare class TransactionalClient extends DatabaseClient {
|
|
78
111
|
private queryFn;
|
|
79
112
|
private parentClient;
|
|
80
|
-
constructor(queryFn: (sql: string, params?: any[]) => Promise<QueryResult>, parentClient: DatabaseClient);
|
|
113
|
+
constructor(queryFn: (sql: string, params?: any[], options?: QueryExecutionOptions) => Promise<QueryResult>, parentClient: DatabaseClient);
|
|
81
114
|
isInTransaction(): boolean;
|
|
82
|
-
query<T = any>(sql: string, params?: any[],
|
|
115
|
+
query<T = any>(sql: string, params?: any[], options?: QueryExecutionOptions): Promise<QueryResult<T>>;
|
|
83
116
|
connect(): Promise<PooledConnection>;
|
|
84
117
|
end(): Promise<void>;
|
|
85
118
|
getDriverName(): string;
|
|
86
|
-
transaction<T>(_callback: (query: (sql: string, params?: any[]) => Promise<QueryResult>) => Promise<T>): Promise<T>;
|
|
119
|
+
transaction<T>(_callback: (query: (sql: string, params?: any[], options?: QueryExecutionOptions) => Promise<QueryResult>) => Promise<T>): Promise<T>;
|
|
87
120
|
supportsMultiStatementQueries(): boolean;
|
|
88
121
|
supportsBinaryProtocol(): boolean;
|
|
89
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-client.interface.d.ts","sourceRoot":"","sources":["../../src/database/database-client.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"database-client.interface.d.ts","sourceRoot":"","sources":["../../src/database/database-client.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransactionalClient = exports.DatabaseClient = void 0;
|
|
3
|
+
exports.TransactionalClient = exports.DatabaseClient = exports.QueryTimeoutError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when a query is cancelled because it exceeded its timeout — the
|
|
6
|
+
* per-query `.withTimeout(ms)` override or the connection-level
|
|
7
|
+
* `statement_timeout` default.
|
|
8
|
+
*
|
|
9
|
+
* The underlying database error (PostgreSQL code `57014`, "canceling statement
|
|
10
|
+
* due to statement timeout") is preserved on the `cause` property.
|
|
11
|
+
*/
|
|
12
|
+
class QueryTimeoutError extends Error {
|
|
13
|
+
constructor(timeoutMs, sql, cause) {
|
|
14
|
+
super(`Query exceeded its timeout of ${timeoutMs}ms and was cancelled`);
|
|
15
|
+
this.name = 'QueryTimeoutError';
|
|
16
|
+
this.timeoutMs = timeoutMs;
|
|
17
|
+
this.sql = sql;
|
|
18
|
+
this.cause = cause;
|
|
19
|
+
// Restore prototype chain so `instanceof` works when targeting ES5
|
|
20
|
+
Object.setPrototypeOf(this, QueryTimeoutError.prototype);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.QueryTimeoutError = QueryTimeoutError;
|
|
4
24
|
/**
|
|
5
25
|
* Base database client interface that all drivers must implement
|
|
6
26
|
*/
|
|
@@ -43,8 +63,12 @@ class TransactionalClient extends DatabaseClient {
|
|
|
43
63
|
isInTransaction() {
|
|
44
64
|
return true;
|
|
45
65
|
}
|
|
46
|
-
async query(sql, params,
|
|
47
|
-
|
|
66
|
+
async query(sql, params, options) {
|
|
67
|
+
// Forward the per-query options (notably `.withTimeout()`'s `timeoutMs`) to the
|
|
68
|
+
// transaction's query fn. Earlier versions dropped these, so a per-query timeout
|
|
69
|
+
// silently no-op'd inside `db.transaction()`; the driver now honors it via a
|
|
70
|
+
// statement-scoped `SET LOCAL statement_timeout`.
|
|
71
|
+
return await this.queryFn(sql, params, options);
|
|
48
72
|
}
|
|
49
73
|
async connect() {
|
|
50
74
|
// In a transaction, we shouldn't allow getting a new connection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-client.interface.js","sourceRoot":"","sources":["../../src/database/database-client.interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"database-client.interface.js","sourceRoot":"","sources":["../../src/database/database-client.interface.ts"],"names":[],"mappings":";;;AAqCA;;;;;;;GAOG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAQ1C,YAAY,SAAiB,EAAE,GAAW,EAAE,KAAe;QACzD,KAAK,CAAC,iCAAiC,SAAS,sBAAsB,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,mEAAmE;QACnE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAjBD,8CAiBC;AAWD;;GAEG;AACH,MAAsB,cAAc;IAClC;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IA8BD;;;;;;OAMG;IACH,6BAA6B;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,sBAAsB;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAtDD,wCAsDC;AAED;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,cAAc;IACrD,YACU,OAA+F,EAC/F,YAA4B;QAEpC,KAAK,EAAE,CAAC;QAHA,YAAO,GAAP,OAAO,CAAwF;QAC/F,iBAAY,GAAZ,YAAY,CAAgB;IAGtC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,MAAc,EAAE,OAA+B;QAC/E,gFAAgF;QAChF,iFAAiF;QACjF,6EAA6E;QAC7E,kDAAkD;QAClD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAmB,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO;QACX,gEAAgE;QAChE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG;QACP,6DAA6D;IAC/D,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,SAAwH;QAC3I,+EAA+E;QAC/E,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,6BAA6B;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,CAAC;IAC3D,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;IACpD,CAAC;CACF;AA7CD,kDA6CC"}
|
package/dist/database/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { DatabaseClient, PooledConnection, QueryResult } from './database-client.interface';
|
|
1
|
+
export { DatabaseClient, PooledConnection, QueryResult, QueryTimeoutError } from './database-client.interface';
|
|
2
|
+
export type { QueryExecutionOptions } from './database-client.interface';
|
|
2
3
|
export { PostgresClient } from './postgres-client';
|
|
3
4
|
export { PgClient } from './pg-client';
|
|
4
5
|
export type { PoolConfig, PostgresOptions } from './types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/G,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/database/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PgClient = exports.PostgresClient = exports.DatabaseClient = void 0;
|
|
3
|
+
exports.PgClient = exports.PostgresClient = exports.QueryTimeoutError = exports.DatabaseClient = void 0;
|
|
4
4
|
var database_client_interface_1 = require("./database-client.interface");
|
|
5
5
|
Object.defineProperty(exports, "DatabaseClient", { enumerable: true, get: function () { return database_client_interface_1.DatabaseClient; } });
|
|
6
|
+
Object.defineProperty(exports, "QueryTimeoutError", { enumerable: true, get: function () { return database_client_interface_1.QueryTimeoutError; } });
|
|
6
7
|
var postgres_client_1 = require("./postgres-client");
|
|
7
8
|
Object.defineProperty(exports, "PostgresClient", { enumerable: true, get: function () { return postgres_client_1.PostgresClient; } });
|
|
8
9
|
var pg_client_1 = require("./pg-client");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;AAAA,yEAA+G;AAAtG,2HAAA,cAAc,OAAA;AAAiC,8HAAA,iBAAiB,OAAA;AAEzE,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA"}
|
|
@@ -11,11 +11,22 @@ type Sql = any;
|
|
|
11
11
|
export declare class PostgresClient extends DatabaseClient {
|
|
12
12
|
private sql;
|
|
13
13
|
private ownsConnection;
|
|
14
|
+
/** Default statement_timeout (ms) configured at construction, if any. */
|
|
15
|
+
private defaultStatementTimeout?;
|
|
14
16
|
/**
|
|
15
17
|
* Create a PostgresClient
|
|
16
18
|
* @param config - Either a connection string, PostgresOptions config object, or an existing postgres.Sql instance
|
|
17
19
|
*/
|
|
18
20
|
constructor(config: string | PostgresOptions | Sql);
|
|
21
|
+
/**
|
|
22
|
+
* Move a top-level `statement_timeout` (ms) option onto the porsager
|
|
23
|
+
* `connection` parameters so PostgreSQL applies it as a native, connection-level
|
|
24
|
+
* default (server-enforced, no per-query wrapping). Other config is untouched.
|
|
25
|
+
*
|
|
26
|
+
* String/URL configs are passed through unchanged — for those, set the default
|
|
27
|
+
* via the connection string or use a config object.
|
|
28
|
+
*/
|
|
29
|
+
private normalizeConfig;
|
|
19
30
|
query<T = any>(sql: string, params?: any[], options?: QueryExecutionOptions): Promise<QueryResult<T>>;
|
|
20
31
|
connect(): Promise<PooledConnection>;
|
|
21
32
|
end(): Promise<void>;
|
|
@@ -45,7 +56,7 @@ export declare class PostgresClient extends DatabaseClient {
|
|
|
45
56
|
* Execute a callback within a transaction.
|
|
46
57
|
* Uses postgres library's built-in sql.begin() for proper transaction handling.
|
|
47
58
|
*/
|
|
48
|
-
transaction<T>(callback: (query: (sql: string, params?: any[]) => Promise<QueryResult>) => Promise<T>): Promise<T>;
|
|
59
|
+
transaction<T>(callback: (query: (sql: string, params?: any[], options?: QueryExecutionOptions) => Promise<QueryResult>) => Promise<T>): Promise<T>;
|
|
49
60
|
/**
|
|
50
61
|
* postgres library automatically uses binary protocol where appropriate
|
|
51
62
|
* No explicit toggle needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-client.d.ts","sourceRoot":"","sources":["../../src/database/postgres-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"postgres-client.d.ts","sourceRoot":"","sources":["../../src/database/postgres-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAqB,MAAM,6BAA6B,CAAC;AACtI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,KAAK,GAAG,GAAG,GAAG,CAAC;AAsJf;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,cAAc,CAAU;IAChC,yEAAyE;IACzE,OAAO,CAAC,uBAAuB,CAAC,CAAS;IAEzC;;;OAGG;gBACS,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,GAAG;IAsBlD;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAyBjB,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAMrG,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAOpC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,6BAA6B,IAAI,OAAO;IAIxC;;;;OAIG;IACG,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAahE;;;OAGG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAU3D;;;OAGG;IACG,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI9D;;;OAGG;IACG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAYzJ;;;OAGG;IACH,sBAAsB,IAAI,OAAO;IAIjC;;OAEG;IACH,MAAM,IAAI,GAAG;CAGd"}
|
|
@@ -2,27 +2,134 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PostgresClient = void 0;
|
|
4
4
|
const database_client_interface_1 = require("./database-client.interface");
|
|
5
|
+
/** PostgreSQL error code raised when a statement is cancelled due to a timeout. */
|
|
6
|
+
const STATEMENT_TIMEOUT_CODE = '57014';
|
|
5
7
|
/**
|
|
6
8
|
* Check if a value is a postgres.Sql instance
|
|
7
9
|
*/
|
|
8
10
|
function isPostgresSqlInstance(value) {
|
|
9
11
|
return value && typeof value === 'function' && typeof value.unsafe === 'function' && typeof value.end === 'function';
|
|
10
12
|
}
|
|
13
|
+
/** Clamp a timeout to a safe non-negative integer for inlining into SET LOCAL. */
|
|
14
|
+
function normalizeTimeoutMs(timeoutMs) {
|
|
15
|
+
return Number.isFinite(timeoutMs) ? Math.max(0, Math.floor(timeoutMs)) : 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Translate a statement-timeout cancellation (PostgreSQL `57014`) into a typed
|
|
19
|
+
* {@link QueryTimeoutError}. Any other error is returned unchanged.
|
|
20
|
+
*/
|
|
21
|
+
function asTimeoutError(error, timeoutMs, sql) {
|
|
22
|
+
if (error && error.code === STATEMENT_TIMEOUT_CODE) {
|
|
23
|
+
return new database_client_interface_1.QueryTimeoutError(timeoutMs ?? 0, sql, error);
|
|
24
|
+
}
|
|
25
|
+
return error;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Execute a single statement against a `postgres` (porsager) sql instance,
|
|
29
|
+
* honoring an optional per-query timeout override.
|
|
30
|
+
*
|
|
31
|
+
* - No override (`timeoutMs === undefined`): run the query directly. Any
|
|
32
|
+
* connection-level `statement_timeout` default still applies (server-enforced,
|
|
33
|
+
* no wrapping).
|
|
34
|
+
* - Override present: run the query inside a short transaction that issues
|
|
35
|
+
* `SET LOCAL statement_timeout` first. `SET LOCAL` is scoped to the
|
|
36
|
+
* transaction and auto-resets at COMMIT, so it never leaks to other queries on
|
|
37
|
+
* the pooled connection. `timeoutMs === 0` disables the timeout for this query.
|
|
38
|
+
*
|
|
39
|
+
* A statement-timeout cancellation is surfaced as a {@link QueryTimeoutError}.
|
|
40
|
+
*/
|
|
41
|
+
async function runStatement(sqlInstance, sql, params, timeoutMs, defaultTimeoutMs) {
|
|
42
|
+
if (timeoutMs === undefined) {
|
|
43
|
+
try {
|
|
44
|
+
const result = await sqlInstance.unsafe(sql, params || []);
|
|
45
|
+
return { rows: result, rowCount: result.count ?? null };
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw asTimeoutError(error, defaultTimeoutMs, sql);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Per-query override: wrap only this query so SET LOCAL auto-resets at COMMIT.
|
|
52
|
+
try {
|
|
53
|
+
return await sqlInstance.begin(async (tx) => {
|
|
54
|
+
await tx.unsafe(`SET LOCAL statement_timeout = ${normalizeTimeoutMs(timeoutMs)}`);
|
|
55
|
+
const result = await tx.unsafe(sql, params || []);
|
|
56
|
+
return { rows: result, rowCount: result.count ?? null };
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw asTimeoutError(error, timeoutMs, sql);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Execute a single statement inside an EXISTING porsager transaction, honoring an
|
|
65
|
+
* optional per-statement timeout override.
|
|
66
|
+
*
|
|
67
|
+
* Unlike {@link runStatement}, we are already inside a transaction, so we cannot
|
|
68
|
+
* open another one to get the automatic `SET LOCAL` reset at COMMIT. Instead we
|
|
69
|
+
* capture the current `statement_timeout`, `SET LOCAL` the override for this one
|
|
70
|
+
* statement, then restore the captured value — keeping the override scoped to this
|
|
71
|
+
* statement even when other statements follow in the same transaction. (`SET LOCAL`
|
|
72
|
+
* also auto-resets at the outer COMMIT/ROLLBACK, so the restore only matters for
|
|
73
|
+
* subsequent statements.)
|
|
74
|
+
*
|
|
75
|
+
* - `timeoutMs === undefined`: run directly; any transaction/connection-level
|
|
76
|
+
* `statement_timeout` still applies.
|
|
77
|
+
* - `timeoutMs === 0`: disable the timeout for this statement.
|
|
78
|
+
*
|
|
79
|
+
* A statement-timeout cancellation (`57014`) is surfaced as a {@link QueryTimeoutError}.
|
|
80
|
+
*/
|
|
81
|
+
async function runTxStatement(txSql, sql, params, timeoutMs, defaultTimeoutMs) {
|
|
82
|
+
if (timeoutMs === undefined) {
|
|
83
|
+
try {
|
|
84
|
+
const result = await txSql.unsafe(sql, params || []);
|
|
85
|
+
return { rows: result, rowCount: result.count ?? null };
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw asTimeoutError(error, defaultTimeoutMs, sql);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Capture the current value so we can restore it after this one statement.
|
|
92
|
+
let previous;
|
|
93
|
+
try {
|
|
94
|
+
const shown = await txSql.unsafe(`SHOW statement_timeout`);
|
|
95
|
+
previous = shown && shown[0] ? shown[0].statement_timeout : undefined;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
previous = undefined;
|
|
99
|
+
}
|
|
100
|
+
await txSql.unsafe(`SET LOCAL statement_timeout = ${normalizeTimeoutMs(timeoutMs)}`);
|
|
101
|
+
try {
|
|
102
|
+
const result = await txSql.unsafe(sql, params || []);
|
|
103
|
+
return { rows: result, rowCount: result.count ?? null };
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
throw asTimeoutError(error, timeoutMs, sql);
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
// Best-effort restore. If the statement timed out, the transaction is now
|
|
110
|
+
// aborted and this throws — the outer ROLLBACK resets everything, so ignore it.
|
|
111
|
+
if (previous !== undefined) {
|
|
112
|
+
try {
|
|
113
|
+
await txSql.unsafe(`SET LOCAL statement_timeout = '${previous}'`);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
/* transaction aborted — nothing to restore */
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
11
121
|
/**
|
|
12
122
|
* Wrapper for the pooled connection from postgres library
|
|
13
123
|
*/
|
|
14
124
|
class PostgresPooledConnection {
|
|
15
|
-
constructor(sql) {
|
|
125
|
+
constructor(sql, defaultStatementTimeout) {
|
|
16
126
|
this.sql = sql;
|
|
127
|
+
this.defaultStatementTimeout = defaultStatementTimeout;
|
|
17
128
|
}
|
|
18
129
|
async query(sql, params, options) {
|
|
19
130
|
// postgres library doesn't have explicit binary protocol toggle
|
|
20
|
-
// It automatically uses the most efficient protocol based on data types
|
|
21
|
-
|
|
22
|
-
return {
|
|
23
|
-
rows: result,
|
|
24
|
-
rowCount: result.count ?? null,
|
|
25
|
-
};
|
|
131
|
+
// It automatically uses the most efficient protocol based on data types.
|
|
132
|
+
return await runStatement(this.sql, sql, params, options?.timeoutMs, this.defaultStatementTimeout);
|
|
26
133
|
}
|
|
27
134
|
release() {
|
|
28
135
|
// postgres library handles connection pooling automatically
|
|
@@ -52,7 +159,7 @@ class PostgresClient extends database_client_interface_1.DatabaseClient {
|
|
|
52
159
|
try {
|
|
53
160
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
54
161
|
const postgres = require('postgres');
|
|
55
|
-
this.sql = postgres(config);
|
|
162
|
+
this.sql = postgres(this.normalizeConfig(config));
|
|
56
163
|
this.ownsConnection = true;
|
|
57
164
|
}
|
|
58
165
|
catch (error) {
|
|
@@ -61,20 +168,45 @@ class PostgresClient extends database_client_interface_1.DatabaseClient {
|
|
|
61
168
|
}
|
|
62
169
|
}
|
|
63
170
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Move a top-level `statement_timeout` (ms) option onto the porsager
|
|
173
|
+
* `connection` parameters so PostgreSQL applies it as a native, connection-level
|
|
174
|
+
* default (server-enforced, no per-query wrapping). Other config is untouched.
|
|
175
|
+
*
|
|
176
|
+
* String/URL configs are passed through unchanged — for those, set the default
|
|
177
|
+
* via the connection string or use a config object.
|
|
178
|
+
*/
|
|
179
|
+
normalizeConfig(config) {
|
|
180
|
+
if (typeof config !== 'object' || config === null) {
|
|
181
|
+
return config;
|
|
182
|
+
}
|
|
183
|
+
const options = config;
|
|
184
|
+
const statementTimeout = options.statement_timeout;
|
|
185
|
+
if (statementTimeout === undefined) {
|
|
186
|
+
return config;
|
|
187
|
+
}
|
|
188
|
+
this.defaultStatementTimeout = statementTimeout;
|
|
189
|
+
// Clone, drop the top-level alias, and push it into the connection params
|
|
190
|
+
// (porsager sends `connection.*` as PostgreSQL connection parameters).
|
|
191
|
+
const { statement_timeout: _omit, connection, ...rest } = options;
|
|
68
192
|
return {
|
|
69
|
-
|
|
70
|
-
|
|
193
|
+
...rest,
|
|
194
|
+
connection: {
|
|
195
|
+
...(connection || {}),
|
|
196
|
+
statement_timeout: normalizeTimeoutMs(statementTimeout),
|
|
197
|
+
},
|
|
71
198
|
};
|
|
72
199
|
}
|
|
200
|
+
async query(sql, params, options) {
|
|
201
|
+
// postgres library doesn't have explicit binary protocol toggle
|
|
202
|
+
// It automatically uses the most efficient protocol based on data types.
|
|
203
|
+
return await runStatement(this.sql, sql, params, options?.timeoutMs, this.defaultStatementTimeout);
|
|
204
|
+
}
|
|
73
205
|
async connect() {
|
|
74
206
|
// postgres library doesn't expose individual connections in the same way
|
|
75
207
|
// We'll return a wrapper that uses the same sql instance
|
|
76
208
|
// For transactions, the library handles it through sql.begin()
|
|
77
|
-
return new PostgresPooledConnection(this.sql);
|
|
209
|
+
return new PostgresPooledConnection(this.sql, this.defaultStatementTimeout);
|
|
78
210
|
}
|
|
79
211
|
async end() {
|
|
80
212
|
// Only close the connection if we created it
|
|
@@ -132,12 +264,10 @@ class PostgresClient extends database_client_interface_1.DatabaseClient {
|
|
|
132
264
|
*/
|
|
133
265
|
async transaction(callback) {
|
|
134
266
|
return await this.sql.begin(async (sql) => {
|
|
135
|
-
const queryFn = async (sqlStr, params) => {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
rowCount: result.count ?? null,
|
|
140
|
-
};
|
|
267
|
+
const queryFn = async (sqlStr, params, options) => {
|
|
268
|
+
// Honor a per-statement `.withTimeout()` override inside the transaction.
|
|
269
|
+
// `runTxStatement` scopes `SET LOCAL statement_timeout` to this statement.
|
|
270
|
+
return await runTxStatement(sql, sqlStr, params, options?.timeoutMs, this.defaultStatementTimeout);
|
|
141
271
|
};
|
|
142
272
|
return await callback(queryFn);
|
|
143
273
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-client.js","sourceRoot":"","sources":["../../src/database/postgres-client.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"postgres-client.js","sourceRoot":"","sources":["../../src/database/postgres-client.ts"],"names":[],"mappings":"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"}
|
package/dist/database/types.d.ts
CHANGED
|
@@ -140,6 +140,18 @@ export interface PostgresOptions {
|
|
|
140
140
|
* Timeout for queries in seconds (default: undefined)
|
|
141
141
|
*/
|
|
142
142
|
timeout?: number;
|
|
143
|
+
/**
|
|
144
|
+
* Default PostgreSQL `statement_timeout` in **milliseconds**, applied to every
|
|
145
|
+
* query on this client (default: undefined — no timeout).
|
|
146
|
+
*
|
|
147
|
+
* This is set as a native connection-level parameter, so it is enforced by the
|
|
148
|
+
* server with zero per-query overhead and no query wrapping. When a query
|
|
149
|
+
* exceeds it the server cancels it and the driver throws a `QueryTimeoutError`.
|
|
150
|
+
*
|
|
151
|
+
* Override (or disable) it for an individual query with `.withTimeout(ms)`
|
|
152
|
+
* (`.withTimeout(0)` disables the timeout for that one query).
|
|
153
|
+
*/
|
|
154
|
+
statement_timeout?: number;
|
|
143
155
|
/**
|
|
144
156
|
* SSL configuration (default: false)
|
|
145
157
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAE7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,GAAG;QACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG;QAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;QACpC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;KACzB,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IAE7F;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC;CACtG;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,GAAG;QACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;IAErE;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CACjC"}
|