@pi-r/oracle 0.3.6 → 0.3.8
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/client/index.js +5 -6
- package/package.json +3 -3
- package/types/index.d.ts +1 -1
- package/client/pool.js +0 -54
package/client/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
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 oracledb = require("oracledb");
|
|
4
5
|
const util_1 = require("@e-mc/db/util");
|
|
5
6
|
const types_1 = require("@e-mc/types");
|
|
6
7
|
const Db = require("@e-mc/db");
|
|
@@ -127,7 +128,6 @@ async function setCredential(item) {
|
|
|
127
128
|
const poolKey = getPoolKey(credential);
|
|
128
129
|
if (poolKey) {
|
|
129
130
|
if (!(pool = POOL_STATE[poolKey]) || pool.closed) {
|
|
130
|
-
const { createPool } = require("oracledb");
|
|
131
131
|
const config = this.getPoolConfig("oracle", password);
|
|
132
132
|
if (config) {
|
|
133
133
|
const { min, max, idle, queue_max, queue_idle } = config;
|
|
@@ -147,7 +147,7 @@ async function setCredential(item) {
|
|
|
147
147
|
(_e = credential.queueTimeout) !== null && _e !== void 0 ? _e : (credential.queueTimeout = queue_idle);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
-
new OraclePool(await createPool(credential), poolKey, username && password ? { username, password } : undefined).add(item).parent = POOL_STATE;
|
|
150
|
+
new OraclePool(await oracledb.createPool(credential), poolKey, username && password ? { username, password } : undefined).add(item).parent = POOL_STATE;
|
|
151
151
|
}
|
|
152
152
|
else {
|
|
153
153
|
pool.add(item);
|
|
@@ -168,7 +168,6 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
168
168
|
if (length === 0) {
|
|
169
169
|
return [];
|
|
170
170
|
}
|
|
171
|
-
const db = require("oracledb");
|
|
172
171
|
let parallel, connectOnce, errorQuery, sessionKey, outCacheMiss;
|
|
173
172
|
if ((0, types_1.isPlainObject)(options)) {
|
|
174
173
|
({ parallel, connectOnce, errorQuery, sessionKey } = options);
|
|
@@ -229,7 +228,7 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
229
228
|
pool.connected = false;
|
|
230
229
|
}
|
|
231
230
|
}
|
|
232
|
-
clients.push(client || (client = await
|
|
231
|
+
clients.push(client || (client = await oracledb.getConnection((oracleCredential || credential))));
|
|
233
232
|
if (connectOnce) {
|
|
234
233
|
if (!parallel) {
|
|
235
234
|
oracleClient = client;
|
|
@@ -300,9 +299,9 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
300
299
|
if (oracleClient && parallel) {
|
|
301
300
|
oracleClient = undefined;
|
|
302
301
|
}
|
|
303
|
-
const executeOptions = { outFormat:
|
|
302
|
+
const executeOptions = { outFormat: oracledb.OUT_FORMAT_OBJECT, ...clientOptions, resultSet: false, autoCommit: true };
|
|
304
303
|
commandType = this.commandType.SELECT;
|
|
305
|
-
if (streamRow) {
|
|
304
|
+
if (streamRow && (0, types_1.isString)(query)) {
|
|
306
305
|
const rows = [];
|
|
307
306
|
const processRow = typeof streamRow === 'function' && streamRow;
|
|
308
307
|
const stream = client.queryStream(query, params || [], executeOptions);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/oracle",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.8",
|
|
4
4
|
"description": "Oracle client driver for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"types": "client/index.d.ts",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"homepage": "https://github.com/anpham6/pi-r#readme",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@e-mc/db": "^0.6.
|
|
25
|
-
"@e-mc/types": "^0.6.
|
|
24
|
+
"@e-mc/db": "^0.6.19",
|
|
25
|
+
"@e-mc/types": "^0.6.19",
|
|
26
26
|
"oracledb": "^6.5.1"
|
|
27
27
|
}
|
|
28
28
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { ExecuteAction, ServerAuth } from '@e-mc/types/lib/db';
|
|
|
5
5
|
// @ts-ignore
|
|
6
6
|
import type { BindParameters, ConnectionAttributes, ExecuteOptions, PoolAttributes } from 'oracledb';
|
|
7
7
|
|
|
8
|
-
export interface OracleDataSource extends DbDataSource<string, ExecuteOptions, unknown, string | OracleCredential, string>, ExecuteAction<BindParameters> {
|
|
8
|
+
export interface OracleDataSource extends DbDataSource<string | object, ExecuteOptions, unknown, string | OracleCredential, string>, ExecuteAction<BindParameters> {
|
|
9
9
|
source: "oracle";
|
|
10
10
|
}
|
|
11
11
|
|
package/client/pool.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const DbPool = require('@e-mc/db/pool');
|
|
3
|
-
const POOL_ACTIVE = new WeakSet();
|
|
4
|
-
class OraclePool extends DbPool {
|
|
5
|
-
static CACHE_UNUSED = ['connectTimeout', 'transportConnectTimeout', 'expireTime', 'poolMax', 'poolMin', 'poolIncrement', 'poolTimeout', 'poolPingInterval', 'poolMaxPerShard', 'queueMax', 'queueRequests', 'queueTimeout', 'enableStatistics', 'sodaMetaDataCache', 'stmtCacheSize', 'httpsProxy', 'httpsProxyPort'];
|
|
6
|
-
static CACHE_IGNORE = ['sessionCallback'];
|
|
7
|
-
static asString(credential) {
|
|
8
|
-
if (credential.connectString && (credential.user && credential.password || credential.externalAuth) || credential.poolAlias) {
|
|
9
|
-
return JSON.stringify(this.removeUUIDKey(credential));
|
|
10
|
-
}
|
|
11
|
-
return super.asString(credential);
|
|
12
|
-
}
|
|
13
|
-
static sanitize(credential) {
|
|
14
|
-
if (!this.canCache(credential)) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (!POOL_ACTIVE.has(credential) || credential.uuidKey) {
|
|
18
|
-
return credential;
|
|
19
|
-
}
|
|
20
|
-
return super.sanitize(credential);
|
|
21
|
-
}
|
|
22
|
-
get closeable() {
|
|
23
|
-
return super.closeable || this.client.status === 6001;
|
|
24
|
-
}
|
|
25
|
-
async getConnection(credential) {
|
|
26
|
-
if (credential) {
|
|
27
|
-
POOL_ACTIVE.add(credential);
|
|
28
|
-
}
|
|
29
|
-
return this.client.getConnection();
|
|
30
|
-
}
|
|
31
|
-
async close() {
|
|
32
|
-
return this.client.close();
|
|
33
|
-
}
|
|
34
|
-
isEmpty() {
|
|
35
|
-
if (this.closed) {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
const data = this.client.getStatistics();
|
|
40
|
-
if (data) {
|
|
41
|
-
const { connectionsInUse, currentQueueLength } = data;
|
|
42
|
-
return connectionsInUse === 0 && currentQueueLength === 0;
|
|
43
|
-
}
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
get closed() {
|
|
51
|
-
return this.client.status === 6002;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
module.exports = OraclePool;
|