import { deno as fbs } from "gen/msg_generated"; // @internal export class DenoError<T extends fbs.ErrorKind> extends Error { constructor(readonly kind: T, msg: string) { super(msg); this.name = `deno.${fbs.ErrorKind[kind]}`; } } // @internal export function maybeThrowError(base: fbs.Base): void { const err = maybeError(base); if (err != null) { throw err; } } export function maybeError(base: fbs.Base): null | DenoError<fbs.ErrorKind> { const kind = base.errorKind(); if (kind === fbs.ErrorKind.NoError) { return null; } else { return new DenoError(kind, base.error()!); } }