blob: ad7b6be21ff4f7d1cc21ad3d96072713240d621f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import * 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()!);
}
}
|