Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 1x 1x 1x 1x 1x 80x 80x 236x 80x 79x 80x 80x 80x 82x 82x 18x 18x 64x 64x 82x 82x 80x 80x 80x 5x 5x 75x | import * as net from "net"; import { Logger } from "./logger"; const Parser = require("redis-parser"); const logger: Logger = new Logger(module.id); let previousListener: any = null; export const sendCommand = (client: net.Socket, commands: string[]): Promise<string | string[] | null> => { let commandString = `*${commands.length}\r\n`; for (const element of commands) { commandString += `$${element.length}\r\n${element}\r\n`; } if (previousListener) { client.removeListener( "data", previousListener ); } return new Promise((resolve) => { let response: string | null = null; previousListener = (data: any) => { logger.debug(`client REPLY: ${data.toString(). replace( /\r/g, "\\r" ). replace( /\n/g, "\\n" )}`); const parser = new Parser({ "returnBuffers": false, "returnError": (err: any) => { response = err.toString(); resolve(response); }, "returnReply": (reply: any) => { response = reply; // TODO: client.destroy(); resolve(response); }, "stringNumbers": false }); parser.reset(); parser.execute(data); }; client.on( "data", previousListener ); client.on( "close", (hadError: boolean) => { logger.debug(`client.close() ERROR: ${hadError}`); } ); if (client.remoteAddress === undefined && client.remotePort === undefined) { client.connect( Number(process.env.REDIS_PORT || 6379), process.env.REDIS_HOST || "localhost", () => { client.write(commandString); } ); } else { client.write(commandString); } }); }; |