All files / src/typers asyncOptional.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   2x 1x   1x 1x       2x 1x        
import { AsyncOptionalMaker } from "../types";
 
export const asyncOptional: AsyncOptionalMaker = (typer) => ({
  async encode(ctx, data) {
    if (data == undefined) {
      ctx.view.setUint8(ctx.i++, 0);
    } else {
      ctx.view.setUint8(ctx.i++, 1);
      await typer.encode(ctx, data);
    }
  },
  async decode(ctx) {
    if (ctx.view.getUint8(ctx.i++)) {
      return await typer.decode(ctx);
    }
  }
});