@l-v-yonsama/multi-platform-database-drivers 0.1.8 → 0.1.10

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.
Files changed (118) hide show
  1. package/README.md +6 -0
  2. package/built/src/db/drivers/AwsS3Driver.d.ts +1 -1
  3. package/built/src/db/drivers/AwsS3Driver.js +122 -421
  4. package/built/src/db/drivers/AwsS3Driver.js.map +1 -1
  5. package/built/src/db/drivers/BaseDriver.d.ts +6 -6
  6. package/built/src/db/drivers/BaseDriver.js +86 -111
  7. package/built/src/db/drivers/BaseDriver.js.map +1 -1
  8. package/built/src/db/drivers/MySQLDriver.d.ts +1 -1
  9. package/built/src/db/drivers/MySQLDriver.js +187 -183
  10. package/built/src/db/drivers/MySQLDriver.js.map +1 -1
  11. package/built/src/db/drivers/PostgresDriver.d.ts +1 -1
  12. package/built/src/db/drivers/PostgresDriver.js +173 -185
  13. package/built/src/db/drivers/PostgresDriver.js.map +1 -1
  14. package/built/src/db/drivers/RedisDriver.d.ts +2 -2
  15. package/built/src/db/drivers/RedisDriver.js +172 -162
  16. package/built/src/db/drivers/RedisDriver.js.map +1 -1
  17. package/built/src/db/index.d.ts +0 -1
  18. package/built/src/db/index.js +0 -1
  19. package/built/src/db/index.js.map +1 -1
  20. package/built/src/db/resource/DbResource.d.ts +43 -35
  21. package/built/src/db/resource/DbResource.js +80 -73
  22. package/built/src/db/resource/DbResource.js.map +1 -1
  23. package/built/src/db/resource/MultipleResultSetDataHolder.js +0 -1
  24. package/built/src/db/resource/MultipleResultSetDataHolder.js.map +1 -1
  25. package/built/src/db/resource/ResourceHelper.d.ts +6 -0
  26. package/built/src/db/resource/ResourceHelper.js +58 -0
  27. package/built/src/db/resource/ResourceHelper.js.map +1 -0
  28. package/built/src/db/resource/ResultSetDataHolder.d.ts +0 -11
  29. package/built/src/db/resource/ResultSetDataHolder.js +0 -42
  30. package/built/src/db/resource/ResultSetDataHolder.js.map +1 -1
  31. package/built/src/db/resource/index.d.ts +1 -1
  32. package/built/src/db/resource/index.js +1 -1
  33. package/built/src/db/resource/index.js.map +1 -1
  34. package/built/src/db/resource/types/GeneralColumnType.js +0 -20
  35. package/built/src/db/resource/types/GeneralColumnType.js.map +1 -1
  36. package/built/src/db/resource/types/MySQLColumnType.js +9 -19
  37. package/built/src/db/resource/types/MySQLColumnType.js.map +1 -1
  38. package/built/src/db/resource/types/PostgresColumnType.js +0 -2
  39. package/built/src/db/resource/types/PostgresColumnType.js.map +1 -1
  40. package/built/src/index.d.ts +1 -1
  41. package/built/src/index.js +1 -1
  42. package/built/src/index.js.map +1 -1
  43. package/built/src/service/DBAccessService.d.ts +20 -0
  44. package/built/src/service/DBAccessService.js +319 -0
  45. package/built/src/service/DBAccessService.js.map +1 -0
  46. package/built/src/service/DBDriverResolver.d.ts +17 -0
  47. package/built/src/service/DBDriverResolver.js +89 -0
  48. package/built/src/service/DBDriverResolver.js.map +1 -0
  49. package/built/src/service/SQLService.d.ts +5 -0
  50. package/built/src/service/SQLService.js +67 -0
  51. package/built/src/service/SQLService.js.map +1 -0
  52. package/built/src/service/index.d.ts +5 -0
  53. package/built/src/service/index.js +9 -0
  54. package/built/src/service/index.js.map +1 -0
  55. package/built/src/service/request/{redis_request.d.ts → RedisRequest.d.ts} +1 -1
  56. package/built/src/service/request/{redis_request.js → RedisRequest.js} +1 -1
  57. package/built/src/service/request/RedisRequest.js.map +1 -0
  58. package/built/src/service/request/{s3_request.d.ts → S3Request.d.ts} +1 -1
  59. package/built/src/service/request/{s3_request.js → S3Request.js} +1 -1
  60. package/built/src/service/request/S3Request.js.map +1 -0
  61. package/built/src/service/request/index.d.ts +67 -0
  62. package/built/src/service/request/index.js +19 -0
  63. package/built/src/service/request/index.js.map +1 -0
  64. package/built/src/service/response/GeneralDBResponse.d.ts +8 -0
  65. package/built/src/service/response/GeneralDBResponse.js +3 -0
  66. package/built/src/service/response/GeneralDBResponse.js.map +1 -0
  67. package/built/src/service/response/GeneralResponse.d.ts +6 -0
  68. package/built/src/service/response/GeneralResponse.js +13 -0
  69. package/built/src/service/response/GeneralResponse.js.map +1 -0
  70. package/built/src/service/response/index.d.ts +2 -0
  71. package/built/src/service/response/index.js +6 -0
  72. package/built/src/service/response/index.js.map +1 -0
  73. package/built/src/service/response/reply/ConnectionResult.d.ts +3 -0
  74. package/built/src/service/response/reply/ConnectionResult.js +3 -0
  75. package/built/src/service/response/reply/ConnectionResult.js.map +1 -0
  76. package/built/src/service/response/reply/FileExportReply.d.ts +10 -0
  77. package/built/src/service/response/reply/FileExportReply.js +17 -0
  78. package/built/src/service/response/reply/FileExportReply.js.map +1 -0
  79. package/built/src/service/response/reply/FileProcessResult.d.ts +14 -0
  80. package/built/src/service/response/reply/FileProcessResult.js +28 -0
  81. package/built/src/service/response/reply/FileProcessResult.js.map +1 -0
  82. package/built/src/service/response/{GeneralReponse.d.ts → reply/GeneralReply.d.ts} +1 -1
  83. package/built/src/service/response/{GeneralReponse.js → reply/GeneralReply.js} +3 -3
  84. package/built/src/service/response/reply/GeneralReply.js.map +1 -0
  85. package/built/src/service/response/reply/OutputReply.d.ts +9 -0
  86. package/built/src/service/response/reply/OutputReply.js +16 -0
  87. package/built/src/service/response/reply/OutputReply.js.map +1 -0
  88. package/built/src/service/response/reply/ProgressReply.d.ts +7 -0
  89. package/built/src/service/response/reply/ProgressReply.js +13 -0
  90. package/built/src/service/response/reply/ProgressReply.js.map +1 -0
  91. package/built/src/service/response/reply/types/FileExportType.d.ts +3 -0
  92. package/built/src/service/response/reply/types/FileExportType.js +9 -0
  93. package/built/src/service/response/reply/types/FileExportType.js.map +1 -0
  94. package/built/src/service/response/reply/types/OutputType.d.ts +11 -0
  95. package/built/src/service/response/reply/types/OutputType.js +16 -0
  96. package/built/src/service/response/reply/types/OutputType.js.map +1 -0
  97. package/built/src/service/response/reply/types/ReplyEventType.d.ts +10 -0
  98. package/built/src/service/response/reply/types/ReplyEventType.js +16 -0
  99. package/built/src/service/response/reply/types/ReplyEventType.js.map +1 -0
  100. package/package.json +9 -5
  101. package/built/src/db/manager.d.ts +0 -8
  102. package/built/src/db/manager.js +0 -87
  103. package/built/src/db/manager.js.map +0 -1
  104. package/built/src/db/resource/ResourceUtil.d.ts +0 -39
  105. package/built/src/db/resource/ResourceUtil.js +0 -337
  106. package/built/src/db/resource/ResourceUtil.js.map +0 -1
  107. package/built/src/service/request/general_db_request.d.ts +0 -18
  108. package/built/src/service/request/general_db_request.js +0 -14
  109. package/built/src/service/request/general_db_request.js.map +0 -1
  110. package/built/src/service/request/redis_request.js.map +0 -1
  111. package/built/src/service/request/s3_request.js.map +0 -1
  112. package/built/src/service/response/GeneralReponse.js.map +0 -1
  113. package/built/src/util/file_util.d.ts +0 -22
  114. package/built/src/util/file_util.js +0 -143
  115. package/built/src/util/file_util.js.map +0 -1
  116. package/built/src/util/index.d.ts +0 -1
  117. package/built/src/util/index.js +0 -5
  118. package/built/src/util/index.js.map +0 -1
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DBAccessService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const DbResource_1 = require("../db/resource/DbResource");
6
+ const ResultSetDataHolder_1 = require("../db/resource/ResultSetDataHolder");
7
+ const DBType_1 = require("../db/resource/types/DBType");
8
+ const DBDriverResolver_1 = require("./DBDriverResolver");
9
+ const request_1 = require("./request");
10
+ class DBAccessService {
11
+ static addConnectionSetting(req) {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ const command = request_1.GeneralDBCommandType.AddConnectionSetting;
14
+ const st_tm = new Date().getTime();
15
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
16
+ resolver.addConnectionSetting(req.setting);
17
+ return this.createResponse(command, true, '', st_tm);
18
+ });
19
+ }
20
+ static removeConnectionSetting(req) {
21
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ const command = request_1.GeneralDBCommandType.RemoveConnectionSetting;
23
+ const st_tm = new Date().getTime();
24
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
25
+ resolver.removeConnectionSettingByName(req.connectionName);
26
+ return this.createResponse(command, true, '', st_tm);
27
+ });
28
+ }
29
+ static testConnectionSetting(req) {
30
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ const command = request_1.GeneralDBCommandType.TestConnectionSetting;
32
+ const st_tm = new Date().getTime();
33
+ try {
34
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
35
+ const testCon = new DbResource_1.DbConnection(req.setting);
36
+ const driver = resolver.createDriver(testCon);
37
+ if (driver) {
38
+ const result = yield driver.test(true);
39
+ if (result) {
40
+ return this.createResponse(command, false, result, st_tm, {});
41
+ }
42
+ return this.createResponse(command, true, '', st_tm);
43
+ }
44
+ return this.createResponse(command, false, '該当ドライバが見つかりません', st_tm, {});
45
+ }
46
+ catch (e) {
47
+ console.error('error....', e);
48
+ return this.createResponse(command, false, '該当ドライバが見つかりません', st_tm, {});
49
+ }
50
+ });
51
+ }
52
+ static connect(req) {
53
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
54
+ const command = request_1.GeneralDBCommandType.Connect;
55
+ const st_tm = new Date().getTime();
56
+ try {
57
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
58
+ const setting = resolver.getSettingByName(req.connectionName);
59
+ if (!setting) {
60
+ throw new Error('Missing connection setting.');
61
+ }
62
+ const def = resolver.createDriver(setting);
63
+ const driver = resolver.getDriverById(def.getConnectionRes().id);
64
+ let errorMessage = '';
65
+ errorMessage = yield driver.connect();
66
+ const ok = errorMessage.length === 0;
67
+ const result = {
68
+ connectionId: driver.getConnectionRes().id,
69
+ };
70
+ return this.createResponse(command, ok, errorMessage, st_tm, result);
71
+ }
72
+ catch (e) {
73
+ return this.createResponse(command, false, e.message, st_tm);
74
+ }
75
+ });
76
+ }
77
+ static disconnect(req) {
78
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
+ const st_tm = new Date().getTime();
80
+ let errorMessage = '';
81
+ let ok = true;
82
+ try {
83
+ const driver = DBDriverResolver_1.DBDriverResolver.getInstance().getDriverById(req.connectionId);
84
+ errorMessage = yield driver.disconnect();
85
+ ok = errorMessage.length === 0;
86
+ }
87
+ catch (e) {
88
+ ok = false;
89
+ errorMessage = e.message;
90
+ }
91
+ return this.createResponse(request_1.GeneralDBCommandType.Disconnect, ok, errorMessage, st_tm);
92
+ });
93
+ }
94
+ static disconnectAll() {
95
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
96
+ const st_tm = new Date().getTime();
97
+ const errorMessage = yield DBDriverResolver_1.DBDriverResolver.getInstance().closeAll();
98
+ const ok = errorMessage.length === 0;
99
+ return this.createResponse(request_1.GeneralDBCommandType.DisconnectAll, ok, errorMessage, st_tm);
100
+ });
101
+ }
102
+ static batchInsertFromArray(req) {
103
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
104
+ const command = request_1.GeneralDBCommandType.BatchInsertFromArray;
105
+ const st_tm = new Date().getTime();
106
+ let rs;
107
+ try {
108
+ const driver = this.getDriver(req);
109
+ let requiredConnect = false;
110
+ if (!driver.isConnected && req.options && req.options.autoConnection) {
111
+ requiredConnect = true;
112
+ yield driver.connect();
113
+ }
114
+ let error_message = '';
115
+ let schemaPrefix = '';
116
+ if (req.options.schemaName) {
117
+ schemaPrefix = `${req.options.schemaName}.`;
118
+ }
119
+ for (let i = 0; i < req.options.dataList.length; i++) {
120
+ const values = req.options.dataList[i];
121
+ const progress = Math.round(((i + 1) * 100) / req.options.dataList.length);
122
+ this.sendProgress('database.batch.insert.request', 'Insert', progress, {
123
+ name: driver.getName(),
124
+ });
125
+ const sql = `INSERT INTO ${schemaPrefix}${req.options.tableName} (${req.options.columns.join(',')}) VALUES(${values.join(',')})`;
126
+ rs = yield driver.requestSql(sql, {
127
+ needs_column_resolve: false,
128
+ auto_connection: req.options.autoConnection,
129
+ });
130
+ if (rs.errorMessage) {
131
+ error_message = rs.errorMessage;
132
+ break;
133
+ }
134
+ }
135
+ if (requiredConnect) {
136
+ yield driver.disconnect();
137
+ }
138
+ if (rs === undefined) {
139
+ rs = ResultSetDataHolder_1.default.createEmpty();
140
+ }
141
+ if (error_message) {
142
+ return this.createResponse(command, false, error_message, st_tm, rs);
143
+ }
144
+ return this.createResponse(command, true, '', st_tm, rs);
145
+ }
146
+ catch (e) {
147
+ return this.createResponse(command, false, e.message, st_tm);
148
+ }
149
+ });
150
+ }
151
+ static viewData(req) {
152
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
153
+ const command = request_1.GeneralDBCommandType.ViewData;
154
+ const st_tm = new Date().getTime();
155
+ let error_message = '';
156
+ let rs;
157
+ try {
158
+ const driver = this.getDriver(req);
159
+ let requiredConnect = false;
160
+ if (!driver.isConnected && req.options && req.options.autoConnection) {
161
+ requiredConnect = true;
162
+ error_message = yield driver.connect();
163
+ }
164
+ rs = ResultSetDataHolder_1.default.createEmpty();
165
+ if (!error_message) {
166
+ switch (driver.getConnectionRes().dbType) {
167
+ case DBType_1.DBType.AwsS3:
168
+ case DBType_1.DBType.Minio:
169
+ case DBType_1.DBType.Mongodb:
170
+ case DBType_1.DBType.Redis:
171
+ error_message = 'Not supported.';
172
+ break;
173
+ default:
174
+ {
175
+ let sp = '';
176
+ let cols = '';
177
+ if (req.options.schemaName) {
178
+ sp = `${req.options.schemaName}.`;
179
+ }
180
+ if (req.options.columns && req.options.columns.length > 0) {
181
+ cols = req.options.columns.join(',');
182
+ }
183
+ else {
184
+ cols = '*';
185
+ }
186
+ rs = yield driver.requestSql(`SELECT ${cols} FROM ${sp}${req.options.tableName} `, {
187
+ needs_column_resolve: false,
188
+ auto_connection: req.options.autoConnection,
189
+ progress_callback: (message, progress) => {
190
+ this.sendProgress('database.general.request', message, progress, {
191
+ name: driver.getName(),
192
+ });
193
+ },
194
+ });
195
+ if (rs.errorMessage) {
196
+ error_message = rs.errorMessage;
197
+ }
198
+ }
199
+ break;
200
+ }
201
+ if (requiredConnect) {
202
+ yield driver.disconnect();
203
+ }
204
+ }
205
+ if (error_message) {
206
+ return this.createResponse(command, false, error_message, st_tm, rs);
207
+ }
208
+ return this.createResponse(command, true, '', st_tm, rs);
209
+ }
210
+ catch (e) {
211
+ return this.createResponse(command, false, e.message, st_tm);
212
+ }
213
+ });
214
+ }
215
+ static executeSql(req) {
216
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
217
+ const command = request_1.GeneralDBCommandType.ExecuteSql;
218
+ const st_tm = new Date().getTime();
219
+ try {
220
+ const driver = this.getDriver(req);
221
+ const execOptions = {
222
+ needs_column_resolve: req.options.needsColumnResolve,
223
+ auto_connection: req.options.autoConnection,
224
+ progress_callback: (message, progress) => {
225
+ this.sendProgress('database.general.request', message, progress, {
226
+ name: driver.getName(),
227
+ });
228
+ },
229
+ };
230
+ if (req.options) {
231
+ execOptions.max_rows = req.options.maxRows;
232
+ }
233
+ let connectionIsNotReady = false;
234
+ let requiredConnect = false;
235
+ if (!driver.isConnected) {
236
+ if (execOptions.auto_connection) {
237
+ requiredConnect = true;
238
+ yield driver.connect();
239
+ }
240
+ else {
241
+ connectionIsNotReady = true;
242
+ }
243
+ }
244
+ if (connectionIsNotReady) {
245
+ throw new Error(`Connection DB first.`);
246
+ }
247
+ else {
248
+ const rs = yield driver.requestSql(req.options.sql, execOptions);
249
+ this.sendProgress('database.general.request', 'Server process end.', 75, { name: driver.getName() });
250
+ if (requiredConnect) {
251
+ yield driver.disconnect();
252
+ }
253
+ if (rs.errorMessage) {
254
+ return this.createResponse(command, false, rs.errorMessage, st_tm, rs);
255
+ }
256
+ return this.createResponse(command, true, '', st_tm, rs);
257
+ }
258
+ }
259
+ catch (e) {
260
+ return this.createResponse(command, false, e.message, st_tm);
261
+ }
262
+ });
263
+ }
264
+ static countTables(req) {
265
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
266
+ const command = request_1.GeneralDBCommandType.CountTables;
267
+ const st_tm = new Date().getTime();
268
+ try {
269
+ const driver = this.getDriver(req);
270
+ const execOptions = {
271
+ progress_callback: (message, progress) => {
272
+ this.sendProgress('database.general.count', message, progress, {
273
+ name: driver.getName(),
274
+ });
275
+ },
276
+ };
277
+ const rows = yield driver.countTables(req.options.tables, execOptions);
278
+ this.sendProgress('database.general.count', 'Server process end.', 75, {
279
+ name: driver.getName(),
280
+ });
281
+ return this.createResponse(command, true, '', st_tm, rows);
282
+ }
283
+ catch (e) {
284
+ return this.createResponse(command, false, e.message, st_tm);
285
+ }
286
+ });
287
+ }
288
+ static getInfomationSchemas(req) {
289
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
290
+ const command = request_1.GeneralDBCommandType.GetInfomationSchemas;
291
+ const st_tm = new Date().getTime();
292
+ try {
293
+ const driver = this.getDriver(req);
294
+ const result = yield driver.getInfomationSchemas({});
295
+ return this.createResponse(command, true, '', st_tm, result);
296
+ }
297
+ catch (e) {
298
+ return this.createResponse(command, false, e.message, st_tm);
299
+ }
300
+ });
301
+ }
302
+ static getDriver(req) {
303
+ return DBDriverResolver_1.DBDriverResolver.getInstance().getDriverById(req.connectionId);
304
+ }
305
+ static sendProgress(source, message, progress, options) {
306
+ }
307
+ static createResponse(command, ok, message, st_tm, result) {
308
+ const r = {
309
+ command,
310
+ ok,
311
+ message,
312
+ elapsed_time: new Date().getTime() - st_tm,
313
+ result,
314
+ };
315
+ return r;
316
+ }
317
+ }
318
+ exports.DBAccessService = DBAccessService;
319
+ //# 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,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DBDriverResolver = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const RedisDriver_1 = require("../db/drivers/RedisDriver");
6
+ const MySQLDriver_1 = require("../db/drivers/MySQLDriver");
7
+ const PostgresDriver_1 = require("../db/drivers/PostgresDriver");
8
+ const AwsS3Driver_1 = require("../db/drivers/AwsS3Driver");
9
+ const DbResource_1 = require("../db/resource/DbResource");
10
+ const DBType_1 = require("../db/resource/types/DBType");
11
+ const short_unique_id_1 = require("short-unique-id");
12
+ const uid = new short_unique_id_1.default();
13
+ class DBDriverResolver {
14
+ static getInstance() {
15
+ if (!this.instance) {
16
+ this.instance = new DBDriverResolver();
17
+ }
18
+ return this.instance;
19
+ }
20
+ constructor() {
21
+ this.connectionList = new Array();
22
+ this.connectionSettingList = new Array();
23
+ this.driverMap = new Map();
24
+ }
25
+ addConnectionSetting(setting) {
26
+ if (this.connectionSettingList.some((it) => it.name === setting.name)) {
27
+ return;
28
+ }
29
+ this.connectionSettingList.push(setting);
30
+ }
31
+ removeConnectionSettingByName(name) {
32
+ const idx = this.connectionSettingList.findIndex((it) => it.name === name);
33
+ if (idx >= 0) {
34
+ this.connectionSettingList.splice(idx, 1);
35
+ }
36
+ }
37
+ getConResList() {
38
+ return this.connectionList;
39
+ }
40
+ getSettingByName(defName) {
41
+ return this.connectionSettingList.find((def) => def.name === defName);
42
+ }
43
+ getDriverById(connectionId) {
44
+ if (!this.driverMap.has(connectionId)) {
45
+ throw new Error(`Connection resource for 'ID:${connectionId}' not found.`);
46
+ }
47
+ return this.driverMap.get(connectionId);
48
+ }
49
+ createDriver(setting) {
50
+ const conRes = new DbResource_1.DbConnection(Object.assign(Object.assign({}, setting), { id: uid.randomUUID(8) }));
51
+ let driver = undefined;
52
+ switch (conRes.dbType) {
53
+ case DBType_1.DBType.MySQL:
54
+ driver = new MySQLDriver_1.default(conRes);
55
+ break;
56
+ case DBType_1.DBType.Postgres:
57
+ driver = new PostgresDriver_1.default(conRes);
58
+ break;
59
+ case DBType_1.DBType.Redis:
60
+ driver = new RedisDriver_1.default(conRes);
61
+ break;
62
+ case DBType_1.DBType.AwsS3:
63
+ case DBType_1.DBType.Minio:
64
+ driver = new AwsS3Driver_1.default(conRes);
65
+ break;
66
+ default:
67
+ throw new Error(`${conRes.dbType} is not supported.`);
68
+ }
69
+ this.connectionList.push(conRes);
70
+ this.driverMap.set(conRes.id, driver);
71
+ return driver;
72
+ }
73
+ closeAll() {
74
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
75
+ let errorMessage = '';
76
+ this.driverMap.forEach((driver) => tslib_1.__awaiter(this, void 0, void 0, function* () {
77
+ try {
78
+ yield driver.disconnect();
79
+ }
80
+ catch (e) {
81
+ errorMessage += e.message + '\n';
82
+ }
83
+ }));
84
+ return errorMessage;
85
+ });
86
+ }
87
+ }
88
+ exports.DBDriverResolver = DBDriverResolver;
89
+ //# 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,5 @@
1
+ import { DbSchema } from '../db/resource/DbResource';
2
+ import { GeneralResponse } from './response';
3
+ export declare class SQLService {
4
+ static validate(sql: string, schema: DbSchema): GeneralResponse;
5
+ }
@@ -0,0 +1,67 @@
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
+ const dbTables = new Map();
15
+ const allColumnNameList = [];
16
+ tableList.forEach((s) => {
17
+ const m = s.match(/([^:]+)::([^:]+)::(.*)/);
18
+ if (m) {
19
+ const name = m[3];
20
+ const table = schema.getChildByName(name);
21
+ if (table) {
22
+ dbTables.set(name, table);
23
+ allColumnNameList.push(...table.getChildren().map((it) => it.name.toUpperCase()));
24
+ }
25
+ }
26
+ });
27
+ columnList.forEach((s) => {
28
+ const m = s.match(/([^:]+)::([^:]+)::(.*)/);
29
+ if (m) {
30
+ let tableName = m[2];
31
+ if (tableName === 'null') {
32
+ tableName = '';
33
+ }
34
+ const columnName = m[3];
35
+ if (!['(.*)'].includes(columnName)) {
36
+ let acceptColumnNames;
37
+ if (tableName && dbTables.has(tableName)) {
38
+ acceptColumnNames = dbTables
39
+ .get(tableName)
40
+ .getChildren()
41
+ .map((it) => it.name.toUpperCase());
42
+ }
43
+ else {
44
+ acceptColumnNames = allColumnNameList;
45
+ }
46
+ if (!acceptColumnNames.includes(columnName.toUpperCase())) {
47
+ missingColumns.push({
48
+ type,
49
+ table: tableName,
50
+ column: columnName,
51
+ });
52
+ }
53
+ }
54
+ }
55
+ });
56
+ if (missingColumns.length === 0) {
57
+ return { ok: true, message: '' };
58
+ }
59
+ return { ok: false, message: '', result: missingColumns };
60
+ }
61
+ catch (e) {
62
+ return { ok: false, message: 'Parse Error:' + e.message };
63
+ }
64
+ }
65
+ }
66
+ exports.SQLService = SQLService;
67
+ //# 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,5 @@
1
+ export * from './DBAccessService';
2
+ export * from './request';
3
+ export * from './response';
4
+ export * from './DBAccessService';
5
+ export * from './SQLService';
@@ -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"}
@@ -1,6 +1,6 @@
1
1
  import { RedisKeyType } from '../../db/resource/types/RedisKeyType';
2
2
  export interface RedisRequest {
3
- connection_id: string;
3
+ connectionId: string;
4
4
  index: number;
5
5
  command: RedisCommandType;
6
6
  key?: string;
@@ -11,4 +11,4 @@ var RedisCommandType;
11
11
  RedisCommandType["Scan"] = "Scan";
12
12
  RedisCommandType["SetValue"] = "SetValue";
13
13
  })(RedisCommandType = exports.RedisCommandType || (exports.RedisCommandType = {}));
14
- //# sourceMappingURL=redis_request.js.map
14
+ //# sourceMappingURL=RedisRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisRequest.js","sourceRoot":"","sources":["../../../../src/service/request/RedisRequest.ts"],"names":[],"mappings":";;;AAWA,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;IACrB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,yCAAqB,CAAA;AACvB,CAAC,EARW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAQ3B"}
@@ -1,5 +1,5 @@
1
1
  export interface S3Request {
2
- connection_id: string;
2
+ connectionId: string;
3
3
  command: S3CommandType;
4
4
  Bucket: string;
5
5
  key?: string;
@@ -9,4 +9,4 @@ var S3CommandType;
9
9
  S3CommandType["listObject"] = "listObject";
10
10
  S3CommandType["getObject"] = "getObject";
11
11
  })(S3CommandType = exports.S3CommandType || (exports.S3CommandType = {}));
12
- //# sourceMappingURL=s3_request.js.map
12
+ //# sourceMappingURL=S3Request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Request.js","sourceRoot":"","sources":["../../../../src/service/request/S3Request.ts"],"names":[],"mappings":";;;AAQA,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;IACjB,4CAA2B,CAAA;IAC3B,0CAAyB,CAAA;IACzB,wCAAuB,CAAA;AACzB,CAAC,EANW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAMxB"}