-
Notifications
You must be signed in to change notification settings - Fork 60
/
verdict.ts
51 lines (40 loc) · 1.19 KB
/
verdict.ts
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import { Verdict as PBVerdict } from '~backend/proto/flow/flow_pb';
import { Verdict } from '~/domain/hubble';
export const verdictFromPb = (v: PBVerdict): Verdict => {
let verdict = Verdict.Unknown;
if (v === PBVerdict.FORWARDED) {
verdict = Verdict.Forwarded;
} else if (v === PBVerdict.DROPPED) {
verdict = Verdict.Dropped;
}
return verdict;
};
export const verdictToPb = (v: Verdict): PBVerdict => {
let verdict = PBVerdict.VERDICT_UNKNOWN;
if (v === Verdict.Forwarded) {
verdict = PBVerdict.FORWARDED;
} else if (v === Verdict.Dropped) {
verdict = PBVerdict.DROPPED;
} else if (v === Verdict.Error) {
verdict = PBVerdict.ERROR;
}
return verdict;
};
export const verdictFromStr = (v: string): Verdict => {
if (!v) return Verdict.Unknown;
v = v.toLowerCase();
if (v.startsWith('forward')) return Verdict.Forwarded;
if (v.startsWith('drop')) return Verdict.Dropped;
return Verdict.Unknown;
};
export const toString = (verdict: Verdict): string => {
switch (verdict) {
case Verdict.Forwarded:
return 'forwarded';
case Verdict.Dropped:
return 'dropped';
case Verdict.Unknown:
return 'unknown';
}
return 'unhandled';
};