All files / src/encodings ucs2.ts

100% Statements 13/13
100% Branches 0/0
100% Functions 2/2
100% Lines 11/11

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    19x   1x 1x 7451x 7451x       1x 1x 1x 7451x 7451x   1x      
import { Encoding } from "../types";
 
export const ucs2: Encoding<string> = {
  encode(ctx, data) {
    const { length } = data;
    for (let i = 0; i < length; i++) {
      ctx.view.setUint16(ctx.i, data.charCodeAt(i));
      ctx.i += 2;
    }
  },
  decode(ctx, size) {
    const length = size / 2;
    const codes: number[] = new Array(length);
    for (let i = 0; i < length; i++) {
      codes[i] = ctx.view.getUint16(ctx.i);
      ctx.i += 2;
    }
    return String.fromCharCode(...codes);
  }
};