@l-v-yonsama/multi-platform-database-drivers 1.1.2 → 1.2.0
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.
|
@@ -2,8 +2,8 @@ import { ResultSetData } from '@l-v-yonsama/rdh';
|
|
|
2
2
|
import { Redis } from 'ioredis';
|
|
3
3
|
import { DbKey, RedisDatabase, RedisKeyParams } from '../resource';
|
|
4
4
|
import { ConnectionSetting, RedisKeyType, RedisScanParams } from '../types';
|
|
5
|
-
import { BaseDriver, Scannable } from './BaseDriver';
|
|
6
|
-
export declare class RedisDriver extends BaseDriver<RedisDatabase> implements Scannable<RedisScanParams
|
|
5
|
+
import { BaseDriver, Commandable, Scannable } from './BaseDriver';
|
|
6
|
+
export declare class RedisDriver extends BaseDriver<RedisDatabase> implements Scannable<RedisScanParams>, Commandable {
|
|
7
7
|
client: Redis | undefined;
|
|
8
8
|
constructor(conRes: ConnectionSetting);
|
|
9
9
|
connectSub(): Promise<string>;
|
|
@@ -13,6 +13,9 @@ export declare class RedisDriver extends BaseDriver<RedisDatabase> implements Sc
|
|
|
13
13
|
delete(key: string): Promise<void>;
|
|
14
14
|
scanStream(params: RedisScanParams): Promise<DbKey<RedisKeyParams>[]>;
|
|
15
15
|
scan(params: RedisScanParams): Promise<ResultSetData>;
|
|
16
|
+
executeCommand(command: string): Promise<ResultSetData>;
|
|
17
|
+
private tokenizeCommand;
|
|
18
|
+
private buildCommandResultSet;
|
|
16
19
|
getValueByKey(client: Redis, key: string, type: RedisKeyType): Promise<any>;
|
|
17
20
|
getInfomationSchemasSub(): Promise<Array<RedisDatabase>>;
|
|
18
21
|
closeSub(): Promise<string>;
|
|
@@ -174,6 +174,73 @@ class RedisDriver extends BaseDriver_1.BaseDriver {
|
|
|
174
174
|
return rdb.build();
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
|
+
executeCommand(command) {
|
|
178
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
179
|
+
const startTime = new Date().getTime();
|
|
180
|
+
const { cmdName, args } = this.tokenizeCommand(command);
|
|
181
|
+
const reply = yield this.client.call(cmdName, ...args);
|
|
182
|
+
const elapsedTimeMilli = new Date().getTime() - startTime;
|
|
183
|
+
const rdb = this.buildCommandResultSet(cmdName, reply);
|
|
184
|
+
rdb.setSummary({
|
|
185
|
+
elapsedTimeMilli,
|
|
186
|
+
selectedRows: rdb.rs.rows.length,
|
|
187
|
+
});
|
|
188
|
+
const result = rdb.build();
|
|
189
|
+
result.meta.command = command;
|
|
190
|
+
return result;
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
tokenizeCommand(command) {
|
|
194
|
+
var _a;
|
|
195
|
+
const matches = (_a = command.trim().match(/"([^"]*)"|'([^']*)'|\S+/g)) !== null && _a !== void 0 ? _a : [];
|
|
196
|
+
const tokens = matches.map((tok) => {
|
|
197
|
+
if ((tok.startsWith('"') && tok.endsWith('"')) ||
|
|
198
|
+
(tok.startsWith("'") && tok.endsWith("'"))) {
|
|
199
|
+
return tok.slice(1, -1);
|
|
200
|
+
}
|
|
201
|
+
return tok;
|
|
202
|
+
});
|
|
203
|
+
const [cmdName, ...args] = tokens;
|
|
204
|
+
if (!cmdName) {
|
|
205
|
+
throw new Error('Empty command');
|
|
206
|
+
}
|
|
207
|
+
return { cmdName, args };
|
|
208
|
+
}
|
|
209
|
+
buildCommandResultSet(cmdName, reply) {
|
|
210
|
+
if (cmdName.toUpperCase() === 'HGETALL' &&
|
|
211
|
+
Array.isArray(reply) &&
|
|
212
|
+
reply.length % 2 === 0) {
|
|
213
|
+
const rdb = new rdh_1.ResultSetDataBuilder([
|
|
214
|
+
(0, rdh_1.createRdhKey)({ name: 'field', type: rdh_1.GeneralColumnType.TEXT, width: 150 }),
|
|
215
|
+
(0, rdh_1.createRdhKey)({ name: 'value', type: rdh_1.GeneralColumnType.TEXT, width: 300 }),
|
|
216
|
+
]);
|
|
217
|
+
for (let i = 0; i < reply.length; i += 2) {
|
|
218
|
+
rdb.addRow({ field: reply[i], value: reply[i + 1] });
|
|
219
|
+
}
|
|
220
|
+
rdb.updateMeta({
|
|
221
|
+
tableName: `Redis${cmdName.toUpperCase()}`,
|
|
222
|
+
connectionName: this.conRes.name,
|
|
223
|
+
});
|
|
224
|
+
return rdb;
|
|
225
|
+
}
|
|
226
|
+
const rdb = new rdh_1.ResultSetDataBuilder([
|
|
227
|
+
(0, rdh_1.createRdhKey)({ name: 'value', type: rdh_1.GeneralColumnType.JSON, width: 300 }),
|
|
228
|
+
]);
|
|
229
|
+
if (Array.isArray(reply)) {
|
|
230
|
+
reply.forEach((el) => {
|
|
231
|
+
const value = el !== null && typeof el === 'object' ? JSON.stringify(el) : el;
|
|
232
|
+
rdb.addRow({ value });
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
rdb.addRow({ value: reply });
|
|
237
|
+
}
|
|
238
|
+
rdb.updateMeta({
|
|
239
|
+
tableName: `Redis${cmdName.toUpperCase()}`,
|
|
240
|
+
connectionName: this.conRes.name,
|
|
241
|
+
});
|
|
242
|
+
return rdb;
|
|
243
|
+
}
|
|
177
244
|
getValueByKey(client, key, type) {
|
|
178
245
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
179
246
|
switch (type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedisDriver.js","sourceRoot":"","sources":["../../../src/drivers/RedisDriver.ts"],"names":[],"mappings":";;;;AAEA,0CAK0B;AAC1B,qCAAgC;AAChC,0CAAmE;AACnE,oCAA4E;AAC5E,oCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"RedisDriver.js","sourceRoot":"","sources":["../../../src/drivers/RedisDriver.ts"],"names":[],"mappings":"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"}
|