All files / src/typers optional.ts

100% Statements 9/9
100% Branches 3/3
100% Functions 3/3
100% Lines 7/7

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    19x   416x 221x   195x 195x       202x 96x        
import { OptionalMaker } from "../types";
 
export const optional: OptionalMaker = (typer) => ({
  encode(ctx, data) {
    if (data == undefined) {
      ctx.view.setUint8(ctx.i++, 0);
    } else {
      ctx.view.setUint8(ctx.i++, 1);
      typer.encode(ctx, data);
    }
  },
  decode(ctx) {
    if (ctx.view.getUint8(ctx.i++)) {
      return typer.decode(ctx);
    }
  }
});