All files / src/encodings utf16.ts

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

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    19x   1x 1x 7451x 7451x       1x 1x 7451x 7451x   1x      
import { Encoding } from "../types";
 
export const utf16: 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, end) {
    const codes: number[] = [];
    while (ctx.i < end) {
      codes.push(ctx.view.getUint16(ctx.i));
      ctx.i += 2;
    }
    return String.fromCharCode.apply(null, codes);
  }
};