@l-v-yonsama/multi-platform-database-drivers 0.1.7 → 0.1.9
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/built/src/db/drivers/AwsS3Driver.d.ts +1 -1
- package/built/src/db/drivers/AwsS3Driver.js +4 -4
- package/built/src/db/drivers/AwsS3Driver.js.map +1 -1
- package/built/src/db/drivers/BaseDriver.d.ts +6 -6
- package/built/src/db/drivers/BaseDriver.js +30 -49
- package/built/src/db/drivers/BaseDriver.js.map +1 -1
- package/built/src/db/drivers/MySQLDriver.d.ts +1 -1
- package/built/src/db/drivers/MySQLDriver.js +4 -3
- package/built/src/db/drivers/MySQLDriver.js.map +1 -1
- package/built/src/db/drivers/PostgresDriver.d.ts +1 -1
- package/built/src/db/drivers/PostgresDriver.js +4 -3
- package/built/src/db/drivers/PostgresDriver.js.map +1 -1
- package/built/src/db/drivers/RedisDriver.d.ts +2 -2
- package/built/src/db/drivers/RedisDriver.js +12 -12
- package/built/src/db/drivers/RedisDriver.js.map +1 -1
- package/built/src/db/index.d.ts +0 -1
- package/built/src/db/index.js +0 -1
- package/built/src/db/index.js.map +1 -1
- package/built/src/db/resource/DbResource.d.ts +43 -35
- package/built/src/db/resource/DbResource.js +80 -53
- package/built/src/db/resource/DbResource.js.map +1 -1
- package/built/src/db/resource/ResourceHelper.d.ts +6 -0
- package/built/src/db/resource/ResourceHelper.js +59 -0
- package/built/src/db/resource/ResourceHelper.js.map +1 -0
- package/built/src/db/resource/index.d.ts +1 -1
- package/built/src/db/resource/index.js +1 -1
- package/built/src/db/resource/index.js.map +1 -1
- package/built/src/db/resource/types/MySQLColumnType.js +9 -12
- package/built/src/db/resource/types/MySQLColumnType.js.map +1 -1
- package/built/src/{main.d.ts → index.d.ts} +1 -1
- package/built/src/{main.js → index.js} +2 -2
- package/built/src/index.js.map +1 -0
- package/built/src/service/DBAccessService.d.ts +20 -0
- package/built/src/service/DBAccessService.js +302 -0
- package/built/src/service/DBAccessService.js.map +1 -0
- package/built/src/service/DBDriverResolver.d.ts +17 -0
- package/built/src/service/DBDriverResolver.js +101 -0
- package/built/src/service/DBDriverResolver.js.map +1 -0
- package/built/src/service/SQLService.d.ts +5 -0
- package/built/src/service/SQLService.js +71 -0
- package/built/src/service/SQLService.js.map +1 -0
- package/built/src/service/index.d.ts +5 -0
- package/built/src/service/index.js +9 -0
- package/built/src/service/index.js.map +1 -0
- package/built/src/service/request/{redis_request.d.ts → RedisRequest.d.ts} +1 -1
- package/built/src/service/request/{redis_request.js → RedisRequest.js} +1 -1
- package/built/src/service/request/RedisRequest.js.map +1 -0
- package/built/src/service/request/{s3_request.d.ts → S3Request.d.ts} +1 -1
- package/built/src/service/request/{s3_request.js → S3Request.js} +1 -1
- package/built/src/service/request/S3Request.js.map +1 -0
- package/built/src/service/request/index.d.ts +69 -0
- package/built/src/service/request/index.js +19 -0
- package/built/src/service/request/index.js.map +1 -0
- package/built/src/service/response/GeneralDBResponse.d.ts +8 -0
- package/built/src/service/response/GeneralDBResponse.js +3 -0
- package/built/src/service/response/GeneralDBResponse.js.map +1 -0
- package/built/src/service/response/GeneralResponse.d.ts +6 -0
- package/built/src/service/response/GeneralResponse.js +13 -0
- package/built/src/service/response/GeneralResponse.js.map +1 -0
- package/built/src/service/response/index.d.ts +2 -0
- package/built/src/service/response/index.js +6 -0
- package/built/src/service/response/index.js.map +1 -0
- package/built/src/service/response/reply/ConnectionResult.d.ts +3 -0
- package/built/src/service/response/reply/ConnectionResult.js +3 -0
- package/built/src/service/response/reply/ConnectionResult.js.map +1 -0
- package/built/src/service/response/reply/FileExportReply.d.ts +10 -0
- package/built/src/service/response/reply/FileExportReply.js +17 -0
- package/built/src/service/response/reply/FileExportReply.js.map +1 -0
- package/built/src/service/response/reply/FileProcessResult.d.ts +14 -0
- package/built/src/service/response/reply/FileProcessResult.js +28 -0
- package/built/src/service/response/reply/FileProcessResult.js.map +1 -0
- package/built/src/service/response/{GeneralReponse.d.ts → reply/GeneralReply.d.ts} +1 -1
- package/built/src/service/response/{GeneralReponse.js → reply/GeneralReply.js} +3 -3
- package/built/src/service/response/reply/GeneralReply.js.map +1 -0
- package/built/src/service/response/reply/OutputReply.d.ts +9 -0
- package/built/src/service/response/reply/OutputReply.js +16 -0
- package/built/src/service/response/reply/OutputReply.js.map +1 -0
- package/built/src/service/response/reply/ProgressReply.d.ts +7 -0
- package/built/src/service/response/reply/ProgressReply.js +13 -0
- package/built/src/service/response/reply/ProgressReply.js.map +1 -0
- package/built/src/service/response/reply/types/FileExportType.d.ts +3 -0
- package/built/src/service/response/reply/types/FileExportType.js +9 -0
- package/built/src/service/response/reply/types/FileExportType.js.map +1 -0
- package/built/src/service/response/reply/types/OutputType.d.ts +11 -0
- package/built/src/service/response/reply/types/OutputType.js +16 -0
- package/built/src/service/response/reply/types/OutputType.js.map +1 -0
- package/built/src/service/response/reply/types/ReplyEventType.d.ts +10 -0
- package/built/src/service/response/reply/types/ReplyEventType.js +16 -0
- package/built/src/service/response/reply/types/ReplyEventType.js.map +1 -0
- package/package.json +10 -6
- package/built/src/db/manager.d.ts +0 -8
- package/built/src/db/manager.js +0 -87
- package/built/src/db/manager.js.map +0 -1
- package/built/src/db/resource/ResourceUtil.d.ts +0 -39
- package/built/src/db/resource/ResourceUtil.js +0 -337
- package/built/src/db/resource/ResourceUtil.js.map +0 -1
- package/built/src/main.js.map +0 -1
- package/built/src/service/request/general_db_request.d.ts +0 -18
- package/built/src/service/request/general_db_request.js +0 -14
- package/built/src/service/request/general_db_request.js.map +0 -1
- package/built/src/service/request/redis_request.js.map +0 -1
- package/built/src/service/request/s3_request.js.map +0 -1
- package/built/src/service/response/GeneralReponse.js.map +0 -1
- package/built/src/util/file_util.d.ts +0 -22
- package/built/src/util/file_util.js +0 -143
- package/built/src/util/file_util.js.map +0 -1
- package/built/src/util/index.d.ts +0 -1
- package/built/src/util/index.js +0 -5
- package/built/src/util/index.js.map +0 -1
|
@@ -70,23 +70,20 @@ var MySQLColumnType;
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
else {
|
|
73
|
-
if (numOfLength
|
|
74
|
-
|
|
75
|
-
numOfLength === 589779) {
|
|
76
|
-
// flags:17, (length: 589815 | 589779) information_schema.COLUMNS.GENERATION_EXPRESSION => longtext
|
|
77
|
-
return MySQLColumnType.LONGTEXT;
|
|
78
|
-
}
|
|
79
|
-
else if (numOfLength === 50331645) {
|
|
80
|
-
return MySQLColumnType.MEDIUMTEXT;
|
|
73
|
+
if ([255, 510, 765, 1020].indexOf(numOfLength) >= 0) {
|
|
74
|
+
return MySQLColumnType.TINYTEXT;
|
|
81
75
|
}
|
|
82
|
-
else if (
|
|
76
|
+
else if ([65535, 131070, 196605, 262140].indexOf(numOfLength) >= 0) {
|
|
83
77
|
return MySQLColumnType.TEXT;
|
|
84
78
|
}
|
|
85
|
-
else if (numOfLength
|
|
86
|
-
return MySQLColumnType.
|
|
79
|
+
else if ([16777255, 33554510, 50331765, 67108860].indexOf(numOfLength) >= 0) {
|
|
80
|
+
return MySQLColumnType.MEDIUMTEXT;
|
|
81
|
+
}
|
|
82
|
+
else if (4294967295 === numOfLength) {
|
|
83
|
+
return MySQLColumnType.LONGTEXT;
|
|
87
84
|
}
|
|
85
|
+
return MySQLColumnType.TEXT;
|
|
88
86
|
}
|
|
89
|
-
console.error(`L83 can't parse from `, fieldInfo);
|
|
90
87
|
return MySQLColumnType.UNKNOWN;
|
|
91
88
|
case 254:
|
|
92
89
|
if (flags === 128) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQLColumnType.js","sourceRoot":"","sources":["../../../../../src/db/resource/types/MySQLColumnType.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAGzC,IAAY,eAwCX;AAxCD,WAAY,eAAe;IACzB,2DAAc,CAAA;IACd,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,2DAAW,CAAA;IACX,uDAAY,CAAA;IACZ,qDAAW,CAAA;IACX,qDAAW,CAAA;IACX,+DAAgB,CAAA;IAChB,yDAAa,CAAA;IACb,+DAAgB,CAAA;IAChB,sDAAW,CAAA;IACX,sDAAW,CAAA;IACX,8DAAe,CAAA;IACf,sDAAW,CAAA;IACX,4DAAc,CAAA;IACd,oDAAU,CAAA;IACV,kEAAiB,CAAA;IACjB,gEAAgB,CAAA;IAChB,wDAAY,CAAA;IACZ,uDAAW,CAAA;IACX,6DAAc,CAAA;IACd,uDAAW,CAAA;IACX,qDAAU,CAAA;IACV,0CAA0C;IAC1C,gDAAgD;IAChD,0CAA0C;IAC1C,kCAAkC;IAClC,6DAAc,CAAA;IACd,yDAAY,CAAA;IACZ,gEAAe,CAAA;IACf,wDAAW,CAAA;IACX,wDAAW,CAAA;IACX,oEAAiB,CAAA;IACjB,oEAAiB,CAAA;IACjB,gEAAe,CAAA;IACf,gEAAe,CAAA;IACf,wDAAW,CAAA;IACX,4DAAa,CAAA;IACb,8DAAO,CAAA;AACT,CAAC,EAxCW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAwC1B;
|
|
1
|
+
{"version":3,"file":"MySQLColumnType.js","sourceRoot":"","sources":["../../../../../src/db/resource/types/MySQLColumnType.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./db"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./types"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./
|
|
7
|
-
//# sourceMappingURL=
|
|
6
|
+
tslib_1.__exportStar(require("./service"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAAqB;AACrB,kDAAwB;AACxB,oDAA0B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DbResource, TableRows } from '../db/resource/DbResource';
|
|
2
|
+
import ResultSetDataHolder from '../db/resource/ResultSetDataHolder';
|
|
3
|
+
import { AddConnectionSettingRequest, BatchInsertFromArrayRequest, ConnectRequest, CountTablesRequest, ExecuteSqlRequest, RemoveConnectionSettingRequest, RequestInConnectedState, TestConnectionSettingRequest, ViewDataRequest } from './request';
|
|
4
|
+
import { GeneralDBResponse } from './response';
|
|
5
|
+
export declare class DBAccessService {
|
|
6
|
+
static addConnectionSetting(req: AddConnectionSettingRequest): Promise<GeneralDBResponse>;
|
|
7
|
+
static removeConnectionSetting(req: RemoveConnectionSettingRequest): Promise<GeneralDBResponse>;
|
|
8
|
+
static testConnectionSetting(req: TestConnectionSettingRequest): Promise<GeneralDBResponse>;
|
|
9
|
+
static connect(req: ConnectRequest): Promise<GeneralDBResponse>;
|
|
10
|
+
static disconnect(req: RequestInConnectedState): Promise<GeneralDBResponse>;
|
|
11
|
+
static disconnectAll(): Promise<GeneralDBResponse>;
|
|
12
|
+
static batchInsertFromArray(req: BatchInsertFromArrayRequest): Promise<GeneralDBResponse>;
|
|
13
|
+
static viewData(req: ViewDataRequest): Promise<GeneralDBResponse<ResultSetDataHolder>>;
|
|
14
|
+
static executeSql(req: ExecuteSqlRequest): Promise<GeneralDBResponse<ResultSetDataHolder>>;
|
|
15
|
+
static countTables(req: CountTablesRequest): Promise<GeneralDBResponse<TableRows[]>>;
|
|
16
|
+
static getInfomationSchemas(req: CountTablesRequest): Promise<GeneralDBResponse<Array<DbResource>>>;
|
|
17
|
+
private static getDriver;
|
|
18
|
+
private static sendProgress;
|
|
19
|
+
private static createResponse;
|
|
20
|
+
}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DBAccessService = void 0;
|
|
4
|
+
const DbResource_1 = require("../db/resource/DbResource");
|
|
5
|
+
const ResultSetDataHolder_1 = require("../db/resource/ResultSetDataHolder");
|
|
6
|
+
const DBType_1 = require("../db/resource/types/DBType");
|
|
7
|
+
const DBDriverResolver_1 = require("./DBDriverResolver");
|
|
8
|
+
const request_1 = require("./request");
|
|
9
|
+
class DBAccessService {
|
|
10
|
+
static async addConnectionSetting(req) {
|
|
11
|
+
const command = request_1.GeneralDBCommandType.AddConnectionSetting;
|
|
12
|
+
const st_tm = new Date().getTime();
|
|
13
|
+
const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
|
|
14
|
+
resolver.addConnectionSetting(req.setting);
|
|
15
|
+
return this.createResponse(command, true, '', st_tm);
|
|
16
|
+
}
|
|
17
|
+
static async removeConnectionSetting(req) {
|
|
18
|
+
const command = request_1.GeneralDBCommandType.RemoveConnectionSetting;
|
|
19
|
+
const st_tm = new Date().getTime();
|
|
20
|
+
const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
|
|
21
|
+
resolver.removeConnectionSettingByName(req.connectionName);
|
|
22
|
+
return this.createResponse(command, true, '', st_tm);
|
|
23
|
+
}
|
|
24
|
+
static async testConnectionSetting(req) {
|
|
25
|
+
const command = request_1.GeneralDBCommandType.TestConnectionSetting;
|
|
26
|
+
const st_tm = new Date().getTime();
|
|
27
|
+
try {
|
|
28
|
+
const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
|
|
29
|
+
const testCon = new DbResource_1.DbConnection(req.setting);
|
|
30
|
+
const driver = resolver.createDriver(testCon);
|
|
31
|
+
if (driver) {
|
|
32
|
+
const result = await driver.test(true);
|
|
33
|
+
if (result) {
|
|
34
|
+
return this.createResponse(command, false, result, st_tm, {});
|
|
35
|
+
}
|
|
36
|
+
return this.createResponse(command, true, '', st_tm);
|
|
37
|
+
}
|
|
38
|
+
return this.createResponse(command, false, '該当ドライバが見つかりません', st_tm, {});
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
console.error('error....', e);
|
|
42
|
+
return this.createResponse(command, false, '該当ドライバが見つかりません', st_tm, {});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
static async connect(req) {
|
|
46
|
+
const command = request_1.GeneralDBCommandType.Connect;
|
|
47
|
+
const st_tm = new Date().getTime();
|
|
48
|
+
try {
|
|
49
|
+
const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
|
|
50
|
+
const setting = resolver.getSettingByName(req.connectionName);
|
|
51
|
+
if (!setting) {
|
|
52
|
+
throw new Error('Missing connection setting.');
|
|
53
|
+
}
|
|
54
|
+
const def = resolver.createDriver(setting);
|
|
55
|
+
const driver = resolver.getDriverById(def.getConnectionRes().id);
|
|
56
|
+
let errorMessage = '';
|
|
57
|
+
errorMessage = await driver.connect();
|
|
58
|
+
const ok = errorMessage.length === 0;
|
|
59
|
+
const result = {
|
|
60
|
+
connectionId: driver.getConnectionRes().id,
|
|
61
|
+
};
|
|
62
|
+
return this.createResponse(command, ok, errorMessage, st_tm, result);
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
return this.createResponse(command, false, e.message, st_tm);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
static async disconnect(req) {
|
|
69
|
+
const st_tm = new Date().getTime();
|
|
70
|
+
let errorMessage = '';
|
|
71
|
+
let ok = true;
|
|
72
|
+
try {
|
|
73
|
+
const driver = DBDriverResolver_1.DBDriverResolver.getInstance().getDriverById(req.connectionId);
|
|
74
|
+
errorMessage = await driver.disconnect();
|
|
75
|
+
ok = errorMessage.length === 0;
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
ok = false;
|
|
79
|
+
errorMessage = e.message;
|
|
80
|
+
}
|
|
81
|
+
return this.createResponse(request_1.GeneralDBCommandType.Disconnect, ok, errorMessage, st_tm);
|
|
82
|
+
}
|
|
83
|
+
static async disconnectAll() {
|
|
84
|
+
const st_tm = new Date().getTime();
|
|
85
|
+
const errorMessage = await DBDriverResolver_1.DBDriverResolver.getInstance().closeAll();
|
|
86
|
+
const ok = errorMessage.length === 0;
|
|
87
|
+
return this.createResponse(request_1.GeneralDBCommandType.DisconnectAll, ok, errorMessage, st_tm);
|
|
88
|
+
}
|
|
89
|
+
static async batchInsertFromArray(req) {
|
|
90
|
+
const command = request_1.GeneralDBCommandType.BatchInsertFromArray;
|
|
91
|
+
const st_tm = new Date().getTime();
|
|
92
|
+
let rs;
|
|
93
|
+
try {
|
|
94
|
+
const driver = this.getDriver(req);
|
|
95
|
+
let requiredConnect = false;
|
|
96
|
+
if (!driver.isConnected && req.options && req.options.autoConnection) {
|
|
97
|
+
requiredConnect = true;
|
|
98
|
+
await driver.connect();
|
|
99
|
+
}
|
|
100
|
+
let error_message = '';
|
|
101
|
+
let schemaPrefix = '';
|
|
102
|
+
if (req.options.schemaName) {
|
|
103
|
+
schemaPrefix = `${req.options.schemaName}.`;
|
|
104
|
+
}
|
|
105
|
+
for (let i = 0; i < req.options.dataList.length; i++) {
|
|
106
|
+
const values = req.options.dataList[i];
|
|
107
|
+
const progress = Math.round(((i + 1) * 100) / req.options.dataList.length);
|
|
108
|
+
this.sendProgress('database.batch.insert.request', 'Insert', progress, {
|
|
109
|
+
name: driver.getName(),
|
|
110
|
+
});
|
|
111
|
+
const sql = `INSERT INTO ${schemaPrefix}${req.options.tableName} (${req.options.columns.join(',')}) VALUES(${values.join(',')})`;
|
|
112
|
+
rs = await driver.requestSql(sql, {
|
|
113
|
+
needs_column_resolve: false,
|
|
114
|
+
auto_connection: req.options.autoConnection,
|
|
115
|
+
});
|
|
116
|
+
if (rs.errorMessage) {
|
|
117
|
+
error_message = rs.errorMessage;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (requiredConnect) {
|
|
122
|
+
await driver.disconnect();
|
|
123
|
+
}
|
|
124
|
+
if (rs === undefined) {
|
|
125
|
+
rs = ResultSetDataHolder_1.default.createEmpty();
|
|
126
|
+
}
|
|
127
|
+
if (error_message) {
|
|
128
|
+
// response.ok = false;
|
|
129
|
+
// response.message = rs.errorMessage;
|
|
130
|
+
return this.createResponse(command, false, error_message, st_tm, rs);
|
|
131
|
+
}
|
|
132
|
+
return this.createResponse(command, true, '', st_tm, rs);
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
return this.createResponse(command, false, e.message, st_tm);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
static async viewData(req) {
|
|
139
|
+
const command = request_1.GeneralDBCommandType.ViewData;
|
|
140
|
+
const st_tm = new Date().getTime();
|
|
141
|
+
let error_message = '';
|
|
142
|
+
let rs;
|
|
143
|
+
try {
|
|
144
|
+
const driver = this.getDriver(req);
|
|
145
|
+
let requiredConnect = false;
|
|
146
|
+
if (!driver.isConnected && req.options && req.options.autoConnection) {
|
|
147
|
+
requiredConnect = true;
|
|
148
|
+
error_message = await driver.connect();
|
|
149
|
+
}
|
|
150
|
+
rs = ResultSetDataHolder_1.default.createEmpty();
|
|
151
|
+
if (!error_message) {
|
|
152
|
+
switch (driver.getConnectionRes().dbType) {
|
|
153
|
+
case DBType_1.DBType.AwsS3:
|
|
154
|
+
case DBType_1.DBType.Minio:
|
|
155
|
+
case DBType_1.DBType.Mongodb:
|
|
156
|
+
case DBType_1.DBType.Redis:
|
|
157
|
+
error_message = 'Not supported.';
|
|
158
|
+
break;
|
|
159
|
+
default:
|
|
160
|
+
{
|
|
161
|
+
let sp = '';
|
|
162
|
+
let cols = '';
|
|
163
|
+
if (req.options.schemaName) {
|
|
164
|
+
sp = `${req.options.schemaName}.`;
|
|
165
|
+
}
|
|
166
|
+
if (req.options.columns && req.options.columns.length > 0) {
|
|
167
|
+
cols = req.options.columns.join(',');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
cols = '*';
|
|
171
|
+
}
|
|
172
|
+
rs = await driver.requestSql(`SELECT ${cols} FROM ${sp}${req.options.tableName} `, {
|
|
173
|
+
needs_column_resolve: false,
|
|
174
|
+
auto_connection: req.options.autoConnection,
|
|
175
|
+
progress_callback: (message, progress) => {
|
|
176
|
+
this.sendProgress('database.general.request', message, progress, {
|
|
177
|
+
name: driver.getName(),
|
|
178
|
+
});
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
if (rs.errorMessage) {
|
|
182
|
+
error_message = rs.errorMessage;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
if (requiredConnect) {
|
|
188
|
+
await driver.disconnect();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (error_message) {
|
|
192
|
+
return this.createResponse(command, false, error_message, st_tm, rs);
|
|
193
|
+
}
|
|
194
|
+
return this.createResponse(command, true, '', st_tm, rs);
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
return this.createResponse(command, false, e.message, st_tm);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
static async executeSql(req) {
|
|
201
|
+
const command = request_1.GeneralDBCommandType.ExecuteSql;
|
|
202
|
+
const st_tm = new Date().getTime();
|
|
203
|
+
try {
|
|
204
|
+
const driver = this.getDriver(req);
|
|
205
|
+
const execOptions = {
|
|
206
|
+
needs_column_resolve: req.options.needsColumnResolve,
|
|
207
|
+
auto_connection: req.options.autoConnection,
|
|
208
|
+
progress_callback: (message, progress) => {
|
|
209
|
+
this.sendProgress('database.general.request', message, progress, {
|
|
210
|
+
name: driver.getName(),
|
|
211
|
+
});
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
if (req.options) {
|
|
215
|
+
execOptions.max_rows = req.options.maxRows;
|
|
216
|
+
}
|
|
217
|
+
let connectionIsNotReady = false;
|
|
218
|
+
let requiredConnect = false;
|
|
219
|
+
if (!driver.isConnected) {
|
|
220
|
+
if (execOptions.auto_connection) {
|
|
221
|
+
requiredConnect = true;
|
|
222
|
+
await driver.connect();
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
connectionIsNotReady = true;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (connectionIsNotReady) {
|
|
229
|
+
throw new Error(`Connection DB first.`);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
const rs = await driver.requestSql(req.options.sql, execOptions);
|
|
233
|
+
this.sendProgress('database.general.request', 'Server process end.', 75, { name: driver.getName() });
|
|
234
|
+
if (requiredConnect) {
|
|
235
|
+
await driver.disconnect();
|
|
236
|
+
}
|
|
237
|
+
if (rs.errorMessage) {
|
|
238
|
+
return this.createResponse(command, false, rs.errorMessage, st_tm, rs);
|
|
239
|
+
}
|
|
240
|
+
return this.createResponse(command, true, '', st_tm, rs);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch (e) {
|
|
244
|
+
return this.createResponse(command, false, e.message, st_tm);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
static async countTables(req) {
|
|
248
|
+
const command = request_1.GeneralDBCommandType.CountTables;
|
|
249
|
+
const st_tm = new Date().getTime();
|
|
250
|
+
try {
|
|
251
|
+
const driver = this.getDriver(req);
|
|
252
|
+
const execOptions = {
|
|
253
|
+
progress_callback: (message, progress) => {
|
|
254
|
+
this.sendProgress('database.general.count', message, progress, {
|
|
255
|
+
name: driver.getName(),
|
|
256
|
+
});
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
const rows = await driver.countTables(req.options.tables, execOptions);
|
|
260
|
+
this.sendProgress('database.general.count', 'Server process end.', 75, {
|
|
261
|
+
name: driver.getName(),
|
|
262
|
+
});
|
|
263
|
+
return this.createResponse(command, true, '', st_tm, rows);
|
|
264
|
+
}
|
|
265
|
+
catch (e) {
|
|
266
|
+
return this.createResponse(command, false, e.message, st_tm);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
static async getInfomationSchemas(req) {
|
|
270
|
+
const command = request_1.GeneralDBCommandType.GetInfomationSchemas;
|
|
271
|
+
const st_tm = new Date().getTime();
|
|
272
|
+
try {
|
|
273
|
+
const driver = this.getDriver(req);
|
|
274
|
+
const result = await driver.getInfomationSchemas({});
|
|
275
|
+
return this.createResponse(command, true, '', st_tm, result);
|
|
276
|
+
}
|
|
277
|
+
catch (e) {
|
|
278
|
+
return this.createResponse(command, false, e.message, st_tm);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
static getDriver(req) {
|
|
282
|
+
return DBDriverResolver_1.DBDriverResolver.getInstance().getDriverById(req.connectionId);
|
|
283
|
+
}
|
|
284
|
+
static sendProgress(source, message, progress, options) {
|
|
285
|
+
// mainWindow.webContents.send(
|
|
286
|
+
// 'progress',
|
|
287
|
+
// new ProgressReply(source, message, progress, options)
|
|
288
|
+
// )
|
|
289
|
+
}
|
|
290
|
+
static createResponse(command, ok, message, st_tm, result) {
|
|
291
|
+
const r = {
|
|
292
|
+
command,
|
|
293
|
+
ok,
|
|
294
|
+
message,
|
|
295
|
+
elapsed_time: new Date().getTime() - st_tm,
|
|
296
|
+
result,
|
|
297
|
+
};
|
|
298
|
+
return r;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
exports.DBAccessService = DBAccessService;
|
|
302
|
+
//# sourceMappingURL=DBAccessService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DBAccessService.js","sourceRoot":"","sources":["../../../src/service/DBAccessService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import BaseDriver from '../db/drivers/BaseDriver';
|
|
2
|
+
import { ConnectionSetting, DbConnection } from '../db/resource/DbResource';
|
|
3
|
+
export declare class DBDriverResolver {
|
|
4
|
+
private driverMap;
|
|
5
|
+
private connectionList;
|
|
6
|
+
private connectionSettingList;
|
|
7
|
+
private static instance;
|
|
8
|
+
static getInstance(): DBDriverResolver;
|
|
9
|
+
private constructor();
|
|
10
|
+
addConnectionSetting(setting: ConnectionSetting): void;
|
|
11
|
+
removeConnectionSettingByName(name: string): void;
|
|
12
|
+
getConResList(): Array<DbConnection>;
|
|
13
|
+
getSettingByName(defName: string): ConnectionSetting;
|
|
14
|
+
getDriverById(connectionId: string): BaseDriver;
|
|
15
|
+
createDriver(setting: ConnectionSetting): BaseDriver;
|
|
16
|
+
closeAll(): Promise<string>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DBDriverResolver = void 0;
|
|
4
|
+
// import MongoDriver from './drivers/MongoDriver'
|
|
5
|
+
// import ODBCDriver from './drivers/ODBCDriver';
|
|
6
|
+
const RedisDriver_1 = require("../db/drivers/RedisDriver");
|
|
7
|
+
const MySQLDriver_1 = require("../db/drivers/MySQLDriver");
|
|
8
|
+
const PostgresDriver_1 = require("../db/drivers/PostgresDriver");
|
|
9
|
+
const AwsS3Driver_1 = require("../db/drivers/AwsS3Driver");
|
|
10
|
+
const DbResource_1 = require("../db/resource/DbResource");
|
|
11
|
+
const DBType_1 = require("../db/resource/types/DBType");
|
|
12
|
+
const short_unique_id_1 = require("short-unique-id");
|
|
13
|
+
const uid = new short_unique_id_1.default();
|
|
14
|
+
class DBDriverResolver {
|
|
15
|
+
static getInstance() {
|
|
16
|
+
if (!this.instance) {
|
|
17
|
+
this.instance = new DBDriverResolver();
|
|
18
|
+
}
|
|
19
|
+
return this.instance;
|
|
20
|
+
}
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
22
|
+
constructor() {
|
|
23
|
+
this.connectionList = new Array();
|
|
24
|
+
this.connectionSettingList = new Array();
|
|
25
|
+
this.driverMap = new Map();
|
|
26
|
+
}
|
|
27
|
+
addConnectionSetting(setting) {
|
|
28
|
+
if (this.connectionSettingList.some((it) => it.name === setting.name)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.connectionSettingList.push(setting);
|
|
32
|
+
}
|
|
33
|
+
removeConnectionSettingByName(name) {
|
|
34
|
+
const idx = this.connectionSettingList.findIndex((it) => it.name === name);
|
|
35
|
+
if (idx >= 0) {
|
|
36
|
+
this.connectionSettingList.splice(idx, 1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
getConResList() {
|
|
40
|
+
return this.connectionList;
|
|
41
|
+
}
|
|
42
|
+
getSettingByName(defName) {
|
|
43
|
+
return this.connectionSettingList.find((def) => def.name === defName);
|
|
44
|
+
}
|
|
45
|
+
getDriverById(connectionId) {
|
|
46
|
+
if (!this.driverMap.has(connectionId)) {
|
|
47
|
+
throw new Error(`Connection resource for 'ID:${connectionId}' not found.`);
|
|
48
|
+
}
|
|
49
|
+
return this.driverMap.get(connectionId);
|
|
50
|
+
}
|
|
51
|
+
createDriver(setting) {
|
|
52
|
+
const conRes = new DbResource_1.DbConnection(Object.assign(Object.assign({}, setting), { id: uid.randomUUID(8) }));
|
|
53
|
+
let driver = undefined;
|
|
54
|
+
switch (conRes.dbType) {
|
|
55
|
+
// case DBType.ODBC:
|
|
56
|
+
// driver = new ODBCDriver(conRes);
|
|
57
|
+
// break;
|
|
58
|
+
case DBType_1.DBType.MySQL:
|
|
59
|
+
driver = new MySQLDriver_1.default(conRes);
|
|
60
|
+
break;
|
|
61
|
+
case DBType_1.DBType.Postgres:
|
|
62
|
+
driver = new PostgresDriver_1.default(conRes);
|
|
63
|
+
break;
|
|
64
|
+
case DBType_1.DBType.Redis:
|
|
65
|
+
driver = new RedisDriver_1.default(conRes);
|
|
66
|
+
break;
|
|
67
|
+
// case DBType.Firestore:
|
|
68
|
+
// // driver = new FirestoreDriver(conRes);
|
|
69
|
+
// break;
|
|
70
|
+
case DBType_1.DBType.AwsS3:
|
|
71
|
+
case DBType_1.DBType.Minio:
|
|
72
|
+
driver = new AwsS3Driver_1.default(conRes);
|
|
73
|
+
break;
|
|
74
|
+
// case DBType.Mongodb:
|
|
75
|
+
// // driver = new MongoDriver(conDef)
|
|
76
|
+
// break
|
|
77
|
+
// case DBType.IndexedDB:
|
|
78
|
+
// driver = new IndexedDBDriver(conRes);
|
|
79
|
+
// break;
|
|
80
|
+
default:
|
|
81
|
+
throw new Error(`${conRes.dbType} is not supported.`);
|
|
82
|
+
}
|
|
83
|
+
this.connectionList.push(conRes);
|
|
84
|
+
this.driverMap.set(conRes.id, driver);
|
|
85
|
+
return driver;
|
|
86
|
+
}
|
|
87
|
+
async closeAll() {
|
|
88
|
+
let errorMessage = '';
|
|
89
|
+
this.driverMap.forEach(async (driver) => {
|
|
90
|
+
try {
|
|
91
|
+
await driver.disconnect();
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
errorMessage += e.message + '\n';
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
return errorMessage;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.DBDriverResolver = DBDriverResolver;
|
|
101
|
+
//# sourceMappingURL=DBDriverResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DBDriverResolver.js","sourceRoot":"","sources":["../../../src/service/DBDriverResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLService = void 0;
|
|
4
|
+
const mariadb_1 = require("node-sql-parser/build/mariadb");
|
|
5
|
+
class SQLService {
|
|
6
|
+
static validate(sql, schema) {
|
|
7
|
+
const missingColumns = [];
|
|
8
|
+
try {
|
|
9
|
+
const parser = new mariadb_1.default.Parser();
|
|
10
|
+
const { tableList, columnList, ast } = parser.parse(sql, {
|
|
11
|
+
database: 'MariaDB',
|
|
12
|
+
});
|
|
13
|
+
const type = ast.type;
|
|
14
|
+
// console.log('----------------');
|
|
15
|
+
// console.log('tableList', tableList);
|
|
16
|
+
// console.log('columnList', columnList);
|
|
17
|
+
// console.log('----------------');
|
|
18
|
+
const dbTables = new Map();
|
|
19
|
+
const allColumnNameList = [];
|
|
20
|
+
tableList.forEach((s) => {
|
|
21
|
+
const m = s.match(/([^:]+)::([^:]+)::(.*)/);
|
|
22
|
+
if (m) {
|
|
23
|
+
const name = m[3];
|
|
24
|
+
const table = schema.getChildByName(name);
|
|
25
|
+
if (table) {
|
|
26
|
+
dbTables.set(name, table);
|
|
27
|
+
allColumnNameList.push(...table.getChildren().map((it) => it.name.toUpperCase()));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
columnList.forEach((s) => {
|
|
32
|
+
const m = s.match(/([^:]+)::([^:]+)::(.*)/);
|
|
33
|
+
if (m) {
|
|
34
|
+
let tableName = m[2];
|
|
35
|
+
if (tableName === 'null') {
|
|
36
|
+
tableName = '';
|
|
37
|
+
}
|
|
38
|
+
const columnName = m[3];
|
|
39
|
+
if (!['(.*)'].includes(columnName)) {
|
|
40
|
+
let acceptColumnNames;
|
|
41
|
+
if (tableName && dbTables.has(tableName)) {
|
|
42
|
+
acceptColumnNames = dbTables
|
|
43
|
+
.get(tableName)
|
|
44
|
+
.getChildren()
|
|
45
|
+
.map((it) => it.name.toUpperCase());
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
acceptColumnNames = allColumnNameList;
|
|
49
|
+
}
|
|
50
|
+
if (!acceptColumnNames.includes(columnName.toUpperCase())) {
|
|
51
|
+
missingColumns.push({
|
|
52
|
+
type,
|
|
53
|
+
table: tableName,
|
|
54
|
+
column: columnName,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (missingColumns.length === 0) {
|
|
61
|
+
return { ok: true, message: '' };
|
|
62
|
+
}
|
|
63
|
+
return { ok: false, message: '', result: missingColumns };
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
return { ok: false, message: 'Parse Error:' + e.message };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.SQLService = SQLService;
|
|
71
|
+
//# sourceMappingURL=SQLService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLService.js","sourceRoot":"","sources":["../../../src/service/SQLService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./DBAccessService"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./request"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./response"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./DBAccessService"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./SQLService"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,oDAA0B;AAC1B,qDAA2B;AAC3B,4DAAkC;AAClC,uDAA6B"}
|