All files / lib/commands CLIENT_INFO.ts

100% Statements 6/6
100% Branches 0/0
100% Functions 2/2
100% Lines 6/6

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 74 75 76 77 78 79 80 81 82 83 84 85 861x 1x                                                         1x   1x                                                 1x   1x                                                    
export function transformArguments(): Array<string> {
    return ['CLIENT', 'INFO'];
}
 
interface ClientInfoReply {
    id: number;
    addr: string;
    laddr: string;
    fd: number;
    name: string;
    age: number;
    idle: number;
    flags: string;
    db: number;
    sub: number;
    psub: number;
    multi: number;
    qbuf: number;
    qbufFree: number;
    argvMem: number;
    obl: number;
    oll: number;
    omem: number;
    totMem: number;
    events: string;
    cmd: string;
    user: string;
    redir: number;
}
 
const REGEX = /=([^\s]*)/g;
 
export function transformReply(reply: string): ClientInfoReply {
    const [
        [, id],
        [, addr],
        [, laddr],
        [, fd],
        [, name],
        [, age],
        [, idle],
        [, flags],
        [, db],
        [, sub],
        [, psub],
        [, multi],
        [, qbuf],
        [, qbufFree],
        [, argvMem],
        [, obl],
        [, oll],
        [, omem],
        [, totMem],
        [, events],
        [, cmd],
        [, user],
        [, redir]
    ] = [...reply.matchAll(REGEX)];
 
    return {
        id: Number(id),
        addr,
        laddr,
        fd: Number(fd),
        name,
        age: Number(age),
        idle: Number(idle),
        flags,
        db: Number(db),
        sub: Number(sub),
        psub: Number(psub),
        multi: Number(multi),
        qbuf: Number(qbuf),
        qbufFree: Number(qbufFree),
        argvMem: Number(argvMem),
        obl: Number(obl),
        oll: Number(oll),
        omem: Number(omem),
        totMem: Number(totMem),
        events,
        cmd,
        user,
        redir: Number(redir)
    };
}