@pi-r/mssql 0.3.1 → 0.3.2
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/LICENSE +1 -1
- package/README.md +4 -2
- package/client/index.d.ts +2 -2
- package/client/index.js +18 -18
- package/package.json +5 -5
package/LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright 2023
|
|
1
|
+
Copyright 2023 Studio Trigger
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
4
|
|
package/README.md
CHANGED
package/client/index.d.ts
CHANGED
package/client/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DB_SOURCE_TYPE = exports.DB_SOURCE_CLIENT = exports.checkTimeout = exports.executeBatchQuery = exports.executeQuery = exports.setCredential = void 0;
|
|
4
|
+
const tedious = require("tedious");
|
|
4
5
|
const types_1 = require("@e-mc/types");
|
|
5
6
|
const util_1 = require("@e-mc/db/util");
|
|
6
7
|
const Db = require("@e-mc/db");
|
|
8
|
+
const TediousPool = require('tedious-connection-pool2');
|
|
7
9
|
const DbPool = require('@e-mc/db/pool');
|
|
8
10
|
class MSSQLPool extends DbPool {
|
|
9
11
|
getConnection() {
|
|
@@ -170,7 +172,7 @@ function setCredential(item) {
|
|
|
170
172
|
errors.push('authentication.options.password');
|
|
171
173
|
}
|
|
172
174
|
if (errors.length) {
|
|
173
|
-
throw (0, types_1.errorMessage)("mssql"
|
|
175
|
+
throw (0, types_1.errorMessage)("mssql", 'Not defined - ' + errors.join(' | '));
|
|
174
176
|
}
|
|
175
177
|
const options = credential.options;
|
|
176
178
|
if (options) {
|
|
@@ -200,8 +202,7 @@ function setCredential(item) {
|
|
|
200
202
|
}
|
|
201
203
|
const poolKey = getPoolKey(credential);
|
|
202
204
|
if (!(pool = POOL_STATE[poolKey]) || pool.closed) {
|
|
203
|
-
const
|
|
204
|
-
const config = this.getPoolConfig("mssql" /* STRINGS.MODULE_NAME */, password);
|
|
205
|
+
const config = this.getPoolConfig("mssql", password);
|
|
205
206
|
const poolConfig = (0, types_1.isPlainObject)(item.usePool) ? item.usePool : {};
|
|
206
207
|
if (config) {
|
|
207
208
|
const { min, max, idle, queue_idle } = config;
|
|
@@ -218,7 +219,7 @@ function setCredential(item) {
|
|
|
218
219
|
poolConfig.acquireTimeout ?? (poolConfig.acquireTimeout = queue_idle);
|
|
219
220
|
}
|
|
220
221
|
}
|
|
221
|
-
new MSSQLPool(new
|
|
222
|
+
new MSSQLPool(new TediousPool(poolConfig, credential), poolKey, username && password ? { username, password } : undefined).add(item).parent = POOL_STATE;
|
|
222
223
|
}
|
|
223
224
|
else {
|
|
224
225
|
pool.add(item);
|
|
@@ -235,7 +236,6 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
235
236
|
if (length === 0) {
|
|
236
237
|
return [];
|
|
237
238
|
}
|
|
238
|
-
const db = require("tedious" /* STRINGS.PACKAGE_NAME */);
|
|
239
239
|
let parallel, connectOnce, errorQuery, sessionKey, outCacheMiss;
|
|
240
240
|
if ((0, types_1.isPlainObject)(options)) {
|
|
241
241
|
({ parallel, connectOnce, errorQuery, sessionKey, outCacheMiss } = options);
|
|
@@ -256,17 +256,17 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
256
256
|
if (!parallel) {
|
|
257
257
|
outResult || (outResult = new Array(length));
|
|
258
258
|
}
|
|
259
|
-
const caching = this.hasCache("mssql"
|
|
259
|
+
const caching = this.hasCache("mssql", sessionKey);
|
|
260
260
|
const tasks = new Array(length);
|
|
261
261
|
const clients = [];
|
|
262
262
|
const pools = [];
|
|
263
263
|
let mssqlPool, mssqlClient, mssqlCredential, onceCredential = connectOnce ? batch[0].credential : undefined;
|
|
264
264
|
const getConnection = async (item, credential) => {
|
|
265
|
-
item.transactionState = 64
|
|
265
|
+
item.transactionState = 64;
|
|
266
266
|
let client;
|
|
267
267
|
if (mssqlPool) {
|
|
268
268
|
pools.push(client = await mssqlPool.getConnection());
|
|
269
|
-
item.transactionState &= ~64
|
|
269
|
+
item.transactionState &= ~64;
|
|
270
270
|
return client;
|
|
271
271
|
}
|
|
272
272
|
const pool = item.usePool && DbPool.findKey(POOL_STATE, item.usePool, getPoolKey(credential), ...connectOnce ? [item, batch[0]] : [item]);
|
|
@@ -301,7 +301,7 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
301
301
|
}
|
|
302
302
|
if (!client) {
|
|
303
303
|
clients.push(client = await new Promise((resolve, reject) => {
|
|
304
|
-
const sql = new
|
|
304
|
+
const sql = new tedious.Connection(mssqlCredential || credential);
|
|
305
305
|
sql.connect(err => {
|
|
306
306
|
if (err) {
|
|
307
307
|
reject(err);
|
|
@@ -318,14 +318,14 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
318
318
|
}
|
|
319
319
|
mssqlCredential = credential;
|
|
320
320
|
}
|
|
321
|
-
item.transactionState &= ~64
|
|
321
|
+
item.transactionState &= ~64;
|
|
322
322
|
return client;
|
|
323
323
|
};
|
|
324
324
|
for (let i = 0; i < length; ++i) {
|
|
325
325
|
const item = batch[i];
|
|
326
326
|
const { source, query, ignoreCache } = item;
|
|
327
327
|
let credential = mssqlCredential || onceCredential, error;
|
|
328
|
-
if (!credential && !(0, types_1.isPlainObject)(credential = item.credential) && (error = (0, types_1.errorMessage)(source, "Invalid credentials"
|
|
328
|
+
if (!credential && !(0, types_1.isPlainObject)(credential = item.credential) && (error = (0, types_1.errorMessage)(source, "Invalid credentials")) || !query && (error = (0, types_1.errorMessage)(source, "Missing database query"))) {
|
|
329
329
|
if (this.handleFail(error, item, { errorQuery })) {
|
|
330
330
|
if (!parallel) {
|
|
331
331
|
tasks.length = 0;
|
|
@@ -341,8 +341,8 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
341
341
|
}
|
|
342
342
|
continue;
|
|
343
343
|
}
|
|
344
|
-
item.transactionState = 1
|
|
345
|
-
const streamRow = typeof item.streamRow === 'string' ? this.hasCoerce("mssql"
|
|
344
|
+
item.transactionState = 1;
|
|
345
|
+
const streamRow = typeof item.streamRow === 'string' ? this.hasCoerce("mssql", 'options', null, credential) && (0, types_1.asFunction)(item.streamRow) : item.streamRow;
|
|
346
346
|
const renewCache = ignoreCache === 0;
|
|
347
347
|
const cacheValue = renewCache ? { sessionKey, renewCache } : sessionKey;
|
|
348
348
|
let params = item.params, queryString = '';
|
|
@@ -357,7 +357,7 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
357
357
|
else {
|
|
358
358
|
outResult[i] = result;
|
|
359
359
|
}
|
|
360
|
-
this.add(item, 4
|
|
360
|
+
this.add(item, 4 | 128);
|
|
361
361
|
continue;
|
|
362
362
|
}
|
|
363
363
|
if (!ignoreCache && outCacheMiss) {
|
|
@@ -386,12 +386,12 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
386
386
|
const processRow = typeof streamRow === 'function' && streamRow;
|
|
387
387
|
const rows = [];
|
|
388
388
|
let recordset = 1, resume, output;
|
|
389
|
-
const request = new
|
|
389
|
+
const request = new tedious.Request(query, () => {
|
|
390
390
|
if (error && this.handleFail(error, item, { errorQuery, commandType })) {
|
|
391
391
|
reject(error);
|
|
392
392
|
}
|
|
393
393
|
else {
|
|
394
|
-
this.add(item, 4
|
|
394
|
+
this.add(item, 4);
|
|
395
395
|
if (output) {
|
|
396
396
|
output.__recordset__ = 0;
|
|
397
397
|
output.__returnvalue__ = true;
|
|
@@ -405,9 +405,9 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
405
405
|
if (isOutputParameters(params)) {
|
|
406
406
|
({ input: params, output: paramsOutput } = params);
|
|
407
407
|
}
|
|
408
|
-
convertParameters.call(request,
|
|
408
|
+
convertParameters.call(request, tedious.TYPES, params, false);
|
|
409
409
|
if (paramsOutput) {
|
|
410
|
-
convertParameters.call(request,
|
|
410
|
+
convertParameters.call(request, tedious.TYPES, paramsOutput, true);
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
413
|
request
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/mssql",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "MSSQL client driver for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"types": "client/index.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/anpham6/pi-r.git",
|
|
12
|
+
"url": "git+https://github.com/anpham6/pi-r.git",
|
|
13
13
|
"directory": "src/db/mssql"
|
|
14
14
|
},
|
|
15
15
|
"keywords": [
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"homepage": "https://github.com/anpham6/pi-r#readme",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@e-mc/db": "^0.
|
|
25
|
-
"@e-mc/types": "^0.
|
|
26
|
-
"tedious": "^16.
|
|
24
|
+
"@e-mc/db": "^0.6.1",
|
|
25
|
+
"@e-mc/types": "^0.6.1",
|
|
26
|
+
"tedious": "^16.7.1",
|
|
27
27
|
"tedious-connection-pool2": "^2.1.0"
|
|
28
28
|
}
|
|
29
29
|
}
|