@simplysm/orm-node 13.0.69 → 13.0.71
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/README.md +20 -476
- package/dist/connections/mssql-db-conn.d.ts +5 -5
- package/dist/connections/mssql-db-conn.js +12 -12
- package/dist/connections/mssql-db-conn.js.map +1 -1
- package/dist/connections/mysql-db-conn.d.ts +3 -3
- package/dist/connections/mysql-db-conn.js +9 -9
- package/dist/connections/mysql-db-conn.js.map +1 -1
- package/dist/connections/postgresql-db-conn.d.ts +3 -3
- package/dist/connections/postgresql-db-conn.js +6 -6
- package/dist/connections/postgresql-db-conn.js.map +1 -1
- package/dist/create-db-conn.d.ts +5 -5
- package/dist/create-db-conn.js +1 -1
- package/dist/create-orm.d.ts +18 -18
- package/dist/node-db-context-executor.d.ts +30 -30
- package/dist/node-db-context-executor.js +28 -28
- package/dist/pooled-db-conn.d.ts +27 -27
- package/dist/pooled-db-conn.js +29 -29
- package/dist/pooled-db-conn.js.map +1 -1
- package/dist/types/db-conn.d.ts +47 -47
- package/dist/types/db-conn.d.ts.map +1 -1
- package/dist/types/db-conn.js +2 -2
- package/package.json +5 -5
- package/src/connections/mssql-db-conn.ts +18 -18
- package/src/connections/mysql-db-conn.ts +25 -25
- package/src/connections/postgresql-db-conn.ts +14 -14
- package/src/create-db-conn.ts +17 -17
- package/src/create-orm.ts +20 -20
- package/src/node-db-context-executor.ts +34 -34
- package/src/pooled-db-conn.ts +42 -42
- package/src/types/db-conn.ts +48 -48
|
@@ -2,9 +2,9 @@ import { EventEmitter } from "@simplysm/core-common";
|
|
|
2
2
|
import type { ColumnMeta, IsolationLevel } from "@simplysm/orm-common";
|
|
3
3
|
import { type DbConn, type MysqlDbConnConfig } from "../types/db-conn";
|
|
4
4
|
/**
|
|
5
|
-
* MySQL
|
|
5
|
+
* MySQL database connection class
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Manages MySQL connections using the mysql2/promise library.
|
|
8
8
|
*/
|
|
9
9
|
export declare class MysqlDbConn extends EventEmitter<{
|
|
10
10
|
close: void;
|
|
@@ -27,7 +27,7 @@ export declare class MysqlDbConn extends EventEmitter<{
|
|
|
27
27
|
executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
|
|
28
28
|
bulkInsert(tableName: string, columnMetas: Record<string, ColumnMeta>, records: Record<string, unknown>[]): Promise<void>;
|
|
29
29
|
/**
|
|
30
|
-
* MySQL LOAD DATA INFILE
|
|
30
|
+
* Escape value for MySQL LOAD DATA INFILE
|
|
31
31
|
*/
|
|
32
32
|
private _escapeForCsv;
|
|
33
33
|
private _assertConnected;
|
|
@@ -39,20 +39,20 @@ class MysqlDbConn extends EventEmitter {
|
|
|
39
39
|
port: this.config.port,
|
|
40
40
|
user: this.config.username,
|
|
41
41
|
password: this.config.password,
|
|
42
|
-
//
|
|
43
|
-
//
|
|
42
|
+
// Root user connects without binding to specific database
|
|
43
|
+
// to allow access to all databases (for admin operations)
|
|
44
44
|
database: this.config.username === MysqlDbConn._ROOT_USER ? void 0 : this.config.database,
|
|
45
45
|
multipleStatements: true,
|
|
46
46
|
charset: "utf8mb4",
|
|
47
47
|
infileStreamFactory: (filePath) => fs.createReadStream(filePath)
|
|
48
|
-
// LOAD DATA LOCAL INFILE
|
|
48
|
+
// Support for LOAD DATA LOCAL INFILE
|
|
49
49
|
});
|
|
50
50
|
conn.on("end", () => {
|
|
51
51
|
this.emit("close");
|
|
52
52
|
this._resetState();
|
|
53
53
|
});
|
|
54
54
|
conn.on("error", (error) => {
|
|
55
|
-
logger.error("DB
|
|
55
|
+
logger.error("DB connection error", error.message);
|
|
56
56
|
});
|
|
57
57
|
this._conn = conn;
|
|
58
58
|
this._startTimeout();
|
|
@@ -97,7 +97,7 @@ class MysqlDbConn extends EventEmitter {
|
|
|
97
97
|
}
|
|
98
98
|
async executeParametrized(query, params) {
|
|
99
99
|
const conn = this._assertConnected();
|
|
100
|
-
logger.debug("
|
|
100
|
+
logger.debug("Query execution", { queryLength: query.length, params });
|
|
101
101
|
try {
|
|
102
102
|
const [queryResults] = await conn.query({
|
|
103
103
|
sql: query,
|
|
@@ -119,7 +119,7 @@ class MysqlDbConn extends EventEmitter {
|
|
|
119
119
|
const error = err;
|
|
120
120
|
throw new SdError(
|
|
121
121
|
error,
|
|
122
|
-
"
|
|
122
|
+
"Error executing query" + (error.sql != null ? "\n-- query\n" + error.sql.trim() + "\n--" : "")
|
|
123
123
|
);
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -164,7 +164,7 @@ class MysqlDbConn extends EventEmitter {
|
|
|
164
164
|
// Private helpers
|
|
165
165
|
// ─────────────────────────────────────────────
|
|
166
166
|
/**
|
|
167
|
-
* MySQL LOAD DATA INFILE
|
|
167
|
+
* Escape value for MySQL LOAD DATA INFILE
|
|
168
168
|
*/
|
|
169
169
|
_escapeForCsv(value, dataType) {
|
|
170
170
|
if (value == null) {
|
|
@@ -193,11 +193,11 @@ class MysqlDbConn extends EventEmitter {
|
|
|
193
193
|
return value.toFormatString("HH:mm:ss");
|
|
194
194
|
case "uuid":
|
|
195
195
|
return value.toString().replace(/-/g, "");
|
|
196
|
-
// BINARY(16)
|
|
196
|
+
// Hex for BINARY(16) storage
|
|
197
197
|
case "binary":
|
|
198
198
|
return bytesToHex(value);
|
|
199
199
|
default:
|
|
200
|
-
throw new SdError(
|
|
200
|
+
throw new SdError(`Unsupported DataType: ${JSON.stringify(dataType)}`);
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
_assertConnected() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/connections/mysql-db-conn.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,OAAO,aAAa;AACpB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AAEP,MAAM,SAAS,QAAQ,QAAQ,eAAe;AAOvC,MAAM,oBAAoB,aAAgD;AAAA,EAU/E,YACmB,SACR,QACT;AACA,UAAM;AAHW;AACR;AAAA,EAGX;AAAA,EAdA,OAAwB,aAAa;AAAA,EACpB,WAAW;AAAA,EAEpB;AAAA,EACA;AAAA,EAER,cAAc;AAAA,EACd,kBAAkB;AAAA,EASlB,MAAM,UAAyB;AAC7B,QAAI,KAAK,aAAa;AACpB,YAAM,IAAI,QAAQ,eAAe,iBAAiB;AAAA,IACpD;AAEA,UAAM,OAAO,MAAM,KAAK,QAAQ,iBAAiB;AAAA,MAC/C,MAAM,KAAK,OAAO;AAAA,MAClB,MAAM,KAAK,OAAO;AAAA,MAClB,MAAM,KAAK,OAAO;AAAA,MAClB,UAAU,KAAK,OAAO;AAAA;AAAA;AAAA,MAGtB,UAAU,KAAK,OAAO,aAAa,YAAY,aAAa,SAAY,KAAK,OAAO;AAAA,MACpF,oBAAoB;AAAA,MACpB,SAAS;AAAA,MACT,qBAAqB,CAAC,aAAqB,GAAG,iBAAiB,QAAQ;AAAA;AAAA,IACzE,CAAwD;AAExD,SAAK,GAAG,OAAO,MAAM;AACnB,WAAK,KAAK,OAAO;AACjB,WAAK,YAAY;AAAA,IACnB,CAAC;AAED,SAAK,GAAG,SAAS,CAAC,UAAU;AAC1B,aAAO,MAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -2,9 +2,9 @@ import { EventEmitter } from "@simplysm/core-common";
|
|
|
2
2
|
import type { ColumnMeta, IsolationLevel } from "@simplysm/orm-common";
|
|
3
3
|
import { type DbConn, type PostgresqlDbConnConfig } from "../types/db-conn";
|
|
4
4
|
/**
|
|
5
|
-
* PostgreSQL
|
|
5
|
+
* PostgreSQL database connection class
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Manages PostgreSQL connections using the pg library.
|
|
8
8
|
*/
|
|
9
9
|
export declare class PostgresqlDbConn extends EventEmitter<{
|
|
10
10
|
close: void;
|
|
@@ -27,7 +27,7 @@ export declare class PostgresqlDbConn extends EventEmitter<{
|
|
|
27
27
|
executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
|
|
28
28
|
bulkInsert(tableName: string, columnMetas: Record<string, ColumnMeta>, records: Record<string, unknown>[]): Promise<void>;
|
|
29
29
|
/**
|
|
30
|
-
* PostgreSQL COPY CSV
|
|
30
|
+
* Escape value for PostgreSQL COPY CSV
|
|
31
31
|
*/
|
|
32
32
|
private _escapeForCsv;
|
|
33
33
|
private _assertConnected;
|
|
@@ -46,7 +46,7 @@ class PostgresqlDbConn extends EventEmitter {
|
|
|
46
46
|
this._resetState();
|
|
47
47
|
});
|
|
48
48
|
client.on("error", (error) => {
|
|
49
|
-
logger.error("DB
|
|
49
|
+
logger.error("DB connection error", error.message);
|
|
50
50
|
});
|
|
51
51
|
await client.connect();
|
|
52
52
|
this._client = client;
|
|
@@ -89,7 +89,7 @@ class PostgresqlDbConn extends EventEmitter {
|
|
|
89
89
|
}
|
|
90
90
|
async executeParametrized(query, params) {
|
|
91
91
|
this._assertConnected();
|
|
92
|
-
logger.debug("
|
|
92
|
+
logger.debug("Query execution", { queryLength: query.length, params });
|
|
93
93
|
try {
|
|
94
94
|
const result = await this._client.query(query, params);
|
|
95
95
|
this._startTimeout();
|
|
@@ -97,7 +97,7 @@ class PostgresqlDbConn extends EventEmitter {
|
|
|
97
97
|
} catch (err) {
|
|
98
98
|
this._startTimeout();
|
|
99
99
|
const error = err instanceof Error ? err : new Error(String(err));
|
|
100
|
-
throw new SdError(error, "
|
|
100
|
+
throw new SdError(error, "Error executing query\n-- query\n" + query.trim() + "\n--");
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
async bulkInsert(tableName, columnMetas, records) {
|
|
@@ -127,7 +127,7 @@ class PostgresqlDbConn extends EventEmitter {
|
|
|
127
127
|
// Private helpers
|
|
128
128
|
// ─────────────────────────────────────────────
|
|
129
129
|
/**
|
|
130
|
-
* PostgreSQL COPY CSV
|
|
130
|
+
* Escape value for PostgreSQL COPY CSV
|
|
131
131
|
*/
|
|
132
132
|
_escapeForCsv(value, dataType) {
|
|
133
133
|
if (value == null) {
|
|
@@ -161,9 +161,9 @@ class PostgresqlDbConn extends EventEmitter {
|
|
|
161
161
|
return value.toString();
|
|
162
162
|
case "binary":
|
|
163
163
|
return '"\\x' + bytesToHex(value) + '"';
|
|
164
|
-
// PostgreSQL bytea hex
|
|
164
|
+
// PostgreSQL bytea hex format (wrapped in CSV double quotes)
|
|
165
165
|
default:
|
|
166
|
-
throw new SdError(
|
|
166
|
+
throw new SdError(`Unsupported DataType: ${JSON.stringify(dataType)}`);
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
_assertConnected() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/connections/postgresql-db-conn.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AACzB,OAAO,aAAa;AACpB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAGP,MAAM,SAAS,QAAQ,QAAQ,oBAAoB;AAO5C,MAAM,yBAAyB,aAAgD;AAAA,EASpF,YACmB,KACA,gBACR,QACT;AACA,UAAM;AAJW;AACA;AACR;AAAA,EAGX;AAAA,EAdiB,WAAW;AAAA,EAEpB;AAAA,EACA;AAAA,EAER,cAAc;AAAA,EACd,kBAAkB;AAAA,EAUlB,MAAM,UAAyB;AAC7B,QAAI,KAAK,aAAa;AACpB,YAAM,IAAI,QAAQ,eAAe,iBAAiB;AAAA,IACpD;AAEA,UAAM,SAAS,IAAI,KAAK,IAAI,OAAO;AAAA,MACjC,MAAM,KAAK,OAAO;AAAA,MAClB,MAAM,KAAK,OAAO,QAAQ;AAAA,MAC1B,MAAM,KAAK,OAAO;AAAA,MAClB,UAAU,KAAK,OAAO;AAAA,MACtB,UAAU,KAAK,OAAO;AAAA,MACtB,yBAAyB;AAAA,MACzB,eAAe,KAAK;AAAA,IACtB,CAAC;AAED,WAAO,GAAG,OAAO,MAAM;AACrB,WAAK,KAAK,OAAO;AACjB,WAAK,YAAY;AAAA,IACnB,CAAC;AAED,WAAO,GAAG,SAAS,CAAC,UAAU;AAC5B,aAAO,MAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/create-db-conn.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { DbConn, DbConnConfig } from "./types/db-conn";
|
|
2
2
|
/**
|
|
3
|
-
* DB
|
|
3
|
+
* Create DB connection
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Acquires and returns a connection from the connection pool.
|
|
6
|
+
* Creates a new pool if one does not exist.
|
|
7
7
|
*
|
|
8
|
-
* @param config -
|
|
9
|
-
* @returns
|
|
8
|
+
* @param config - Database connection configuration
|
|
9
|
+
* @returns Pooled DB connection object
|
|
10
10
|
*/
|
|
11
11
|
export declare function createDbConn(config: DbConnConfig): Promise<DbConn>;
|
|
12
12
|
//# sourceMappingURL=create-db-conn.d.ts.map
|
package/dist/create-db-conn.js
CHANGED
|
@@ -36,7 +36,7 @@ function getOrCreatePool(config) {
|
|
|
36
36
|
acquireTimeoutMillis: config.pool?.acquireTimeoutMillis ?? 3e4,
|
|
37
37
|
idleTimeoutMillis: config.pool?.idleTimeoutMillis ?? 3e4,
|
|
38
38
|
testOnBorrow: true
|
|
39
|
-
// [
|
|
39
|
+
// [IMPORTANT] Whether to run validate when borrowing
|
|
40
40
|
}
|
|
41
41
|
);
|
|
42
42
|
pool.on("factoryCreateError", (err) => {
|
package/dist/create-orm.d.ts
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
import { type DbContextDef, type DbContextInstance, type IsolationLevel } from "@simplysm/orm-common";
|
|
2
2
|
import type { DbConnConfig } from "./types/db-conn";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* ORM options
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* DbContext options that take precedence over DbConnConfig
|
|
7
7
|
*/
|
|
8
8
|
export interface OrmOptions {
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Database name (used instead of DbConnConfig's database)
|
|
11
11
|
*/
|
|
12
12
|
database?: string;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Schema name (MSSQL: dbo, PostgreSQL: public)
|
|
15
15
|
*/
|
|
16
16
|
schema?: string;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* ORM instance type
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* Type of the object returned from createOrm
|
|
22
22
|
*/
|
|
23
23
|
export interface Orm<TDef extends DbContextDef<any, any, any>> {
|
|
24
24
|
readonly dbContextDef: TDef;
|
|
25
25
|
readonly config: DbConnConfig;
|
|
26
26
|
readonly options?: OrmOptions;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Execute callback within a transaction
|
|
29
29
|
*
|
|
30
|
-
* @param callback -
|
|
31
|
-
* @param isolationLevel -
|
|
32
|
-
* @returns
|
|
30
|
+
* @param callback - Callback to execute after DB connection
|
|
31
|
+
* @param isolationLevel - Transaction isolation level
|
|
32
|
+
* @returns Callback result
|
|
33
33
|
*/
|
|
34
34
|
connect<R>(callback: (conn: DbContextInstance<TDef>) => Promise<R>, isolationLevel?: IsolationLevel): Promise<R>;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Execute callback without a transaction
|
|
37
37
|
*
|
|
38
|
-
* @param callback -
|
|
39
|
-
* @returns
|
|
38
|
+
* @param callback - Callback to execute after DB connection
|
|
39
|
+
* @returns Callback result
|
|
40
40
|
*/
|
|
41
41
|
connectWithoutTransaction<R>(callback: (conn: DbContextInstance<TDef>) => Promise<R>): Promise<R>;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Node.js ORM
|
|
44
|
+
* Node.js ORM factory function
|
|
45
45
|
*
|
|
46
|
-
*
|
|
47
|
-
* DbContext
|
|
46
|
+
* Creates an instance that manages DbContext and DB connections.
|
|
47
|
+
* Receives DbContext definition and connection configuration to manage transactions.
|
|
48
48
|
*
|
|
49
49
|
* @example
|
|
50
50
|
* ```typescript
|
|
@@ -61,13 +61,13 @@ export interface Orm<TDef extends DbContextDef<any, any, any>> {
|
|
|
61
61
|
* database: "mydb",
|
|
62
62
|
* });
|
|
63
63
|
*
|
|
64
|
-
* //
|
|
64
|
+
* // Execute within a transaction
|
|
65
65
|
* await orm.connect(async (db) => {
|
|
66
66
|
* const users = await db.user().result();
|
|
67
67
|
* return users;
|
|
68
68
|
* });
|
|
69
69
|
*
|
|
70
|
-
* //
|
|
70
|
+
* // Execute without a transaction
|
|
71
71
|
* await orm.connectWithoutTransaction(async (db) => {
|
|
72
72
|
* const users = await db.user().result();
|
|
73
73
|
* return users;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { DbContextExecutor, IsolationLevel, QueryDef, ResultMeta, ColumnMeta, DataRecord } from "@simplysm/orm-common";
|
|
2
2
|
import type { DbConnConfig } from "./types/db-conn";
|
|
3
3
|
/**
|
|
4
|
-
* Node.js
|
|
4
|
+
* DbContextExecutor for Node.js environment
|
|
5
5
|
*
|
|
6
|
-
* DbContext
|
|
6
|
+
* Executor used by DbContext that handles actual DB connections.
|
|
7
7
|
*/
|
|
8
8
|
export declare class NodeDbContextExecutor implements DbContextExecutor {
|
|
9
9
|
private readonly _config;
|
|
@@ -11,65 +11,65 @@ export declare class NodeDbContextExecutor implements DbContextExecutor {
|
|
|
11
11
|
private readonly _dialect;
|
|
12
12
|
constructor(_config: DbConnConfig);
|
|
13
13
|
/**
|
|
14
|
-
* DB
|
|
14
|
+
* Establish DB connection
|
|
15
15
|
*
|
|
16
|
-
*
|
|
16
|
+
* Acquires connection from connection pool and activates the connection state.
|
|
17
17
|
*/
|
|
18
18
|
connect(): Promise<void>;
|
|
19
19
|
/**
|
|
20
|
-
* DB
|
|
20
|
+
* Close DB connection
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
* Returns connection to the connection pool.
|
|
23
23
|
*
|
|
24
|
-
* @throws {Error}
|
|
24
|
+
* @throws {Error} When not connected
|
|
25
25
|
*/
|
|
26
26
|
close(): Promise<void>;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Begin transaction
|
|
29
29
|
*
|
|
30
|
-
* @param isolationLevel -
|
|
31
|
-
* @throws {Error}
|
|
30
|
+
* @param isolationLevel - Transaction isolation level
|
|
31
|
+
* @throws {Error} When not connected
|
|
32
32
|
*/
|
|
33
33
|
beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* Commit transaction
|
|
36
36
|
*
|
|
37
|
-
* @throws {Error}
|
|
37
|
+
* @throws {Error} When not connected
|
|
38
38
|
*/
|
|
39
39
|
commitTransaction(): Promise<void>;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Rollback transaction
|
|
42
42
|
*
|
|
43
|
-
* @throws {Error}
|
|
43
|
+
* @throws {Error} When not connected
|
|
44
44
|
*/
|
|
45
45
|
rollbackTransaction(): Promise<void>;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Execute parameterized query
|
|
48
48
|
*
|
|
49
|
-
* @param query - SQL
|
|
50
|
-
* @param params -
|
|
51
|
-
* @returns
|
|
52
|
-
* @throws {Error}
|
|
49
|
+
* @param query - SQL query string
|
|
50
|
+
* @param params - Query parameter array
|
|
51
|
+
* @returns Query result array
|
|
52
|
+
* @throws {Error} When not connected
|
|
53
53
|
*/
|
|
54
54
|
executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* Bulk insert data (using native bulk API)
|
|
57
57
|
*
|
|
58
|
-
* @param tableName -
|
|
59
|
-
* @param columnMetas -
|
|
60
|
-
* @param records -
|
|
61
|
-
* @throws {Error}
|
|
58
|
+
* @param tableName - Target table name
|
|
59
|
+
* @param columnMetas - Column metadata
|
|
60
|
+
* @param records - Record array to insert
|
|
61
|
+
* @throws {Error} When not connected
|
|
62
62
|
*/
|
|
63
63
|
bulkInsert(tableName: string, columnMetas: Record<string, ColumnMeta>, records: DataRecord[]): Promise<void>;
|
|
64
64
|
/**
|
|
65
|
-
* QueryDef
|
|
65
|
+
* Execute QueryDef array
|
|
66
66
|
*
|
|
67
|
-
* QueryDef
|
|
67
|
+
* Converts QueryDef to SQL and executes, parses results using ResultMeta.
|
|
68
68
|
*
|
|
69
|
-
* @param defs -
|
|
70
|
-
* @param resultMetas -
|
|
71
|
-
* @returns
|
|
72
|
-
* @throws {Error}
|
|
69
|
+
* @param defs - QueryDef array to execute
|
|
70
|
+
* @param resultMetas - Result parsing metadata array (used for type conversion)
|
|
71
|
+
* @returns Array of execution results for each QueryDef
|
|
72
|
+
* @throws {Error} When not connected
|
|
73
73
|
*/
|
|
74
74
|
executeDefs<T = DataRecord>(defs: QueryDef[], resultMetas?: (ResultMeta | undefined)[]): Promise<T[][]>;
|
|
75
75
|
private _requireConn;
|
|
@@ -10,20 +10,20 @@ class NodeDbContextExecutor {
|
|
|
10
10
|
_conn;
|
|
11
11
|
_dialect;
|
|
12
12
|
/**
|
|
13
|
-
* DB
|
|
13
|
+
* Establish DB connection
|
|
14
14
|
*
|
|
15
|
-
*
|
|
15
|
+
* Acquires connection from connection pool and activates the connection state.
|
|
16
16
|
*/
|
|
17
17
|
async connect() {
|
|
18
18
|
this._conn = await createDbConn(this._config);
|
|
19
19
|
await this._conn.connect();
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* DB
|
|
22
|
+
* Close DB connection
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
* Returns connection to the connection pool.
|
|
25
25
|
*
|
|
26
|
-
* @throws {Error}
|
|
26
|
+
* @throws {Error} When not connected
|
|
27
27
|
*/
|
|
28
28
|
async close() {
|
|
29
29
|
const conn = this._requireConn();
|
|
@@ -31,66 +31,66 @@ class NodeDbContextExecutor {
|
|
|
31
31
|
this._conn = void 0;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
34
|
+
* Begin transaction
|
|
35
35
|
*
|
|
36
|
-
* @param isolationLevel -
|
|
37
|
-
* @throws {Error}
|
|
36
|
+
* @param isolationLevel - Transaction isolation level
|
|
37
|
+
* @throws {Error} When not connected
|
|
38
38
|
*/
|
|
39
39
|
async beginTransaction(isolationLevel) {
|
|
40
40
|
const conn = this._requireConn();
|
|
41
41
|
await conn.beginTransaction(isolationLevel);
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
44
|
+
* Commit transaction
|
|
45
45
|
*
|
|
46
|
-
* @throws {Error}
|
|
46
|
+
* @throws {Error} When not connected
|
|
47
47
|
*/
|
|
48
48
|
async commitTransaction() {
|
|
49
49
|
const conn = this._requireConn();
|
|
50
50
|
await conn.commitTransaction();
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* Rollback transaction
|
|
54
54
|
*
|
|
55
|
-
* @throws {Error}
|
|
55
|
+
* @throws {Error} When not connected
|
|
56
56
|
*/
|
|
57
57
|
async rollbackTransaction() {
|
|
58
58
|
const conn = this._requireConn();
|
|
59
59
|
await conn.rollbackTransaction();
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* Execute parameterized query
|
|
63
63
|
*
|
|
64
|
-
* @param query - SQL
|
|
65
|
-
* @param params -
|
|
66
|
-
* @returns
|
|
67
|
-
* @throws {Error}
|
|
64
|
+
* @param query - SQL query string
|
|
65
|
+
* @param params - Query parameter array
|
|
66
|
+
* @returns Query result array
|
|
67
|
+
* @throws {Error} When not connected
|
|
68
68
|
*/
|
|
69
69
|
async executeParametrized(query, params) {
|
|
70
70
|
const conn = this._requireConn();
|
|
71
71
|
return conn.executeParametrized(query, params);
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* Bulk insert data (using native bulk API)
|
|
75
75
|
*
|
|
76
|
-
* @param tableName -
|
|
77
|
-
* @param columnMetas -
|
|
78
|
-
* @param records -
|
|
79
|
-
* @throws {Error}
|
|
76
|
+
* @param tableName - Target table name
|
|
77
|
+
* @param columnMetas - Column metadata
|
|
78
|
+
* @param records - Record array to insert
|
|
79
|
+
* @throws {Error} When not connected
|
|
80
80
|
*/
|
|
81
81
|
async bulkInsert(tableName, columnMetas, records) {
|
|
82
82
|
const conn = this._requireConn();
|
|
83
83
|
await conn.bulkInsert(tableName, columnMetas, records);
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
|
-
* QueryDef
|
|
86
|
+
* Execute QueryDef array
|
|
87
87
|
*
|
|
88
|
-
* QueryDef
|
|
88
|
+
* Converts QueryDef to SQL and executes, parses results using ResultMeta.
|
|
89
89
|
*
|
|
90
|
-
* @param defs -
|
|
91
|
-
* @param resultMetas -
|
|
92
|
-
* @returns
|
|
93
|
-
* @throws {Error}
|
|
90
|
+
* @param defs - QueryDef array to execute
|
|
91
|
+
* @param resultMetas - Result parsing metadata array (used for type conversion)
|
|
92
|
+
* @returns Array of execution results for each QueryDef
|
|
93
|
+
* @throws {Error} When not connected
|
|
94
94
|
*/
|
|
95
95
|
async executeDefs(defs, resultMetas) {
|
|
96
96
|
const conn = this._requireConn();
|