1+ import { CxRealtimeEngineStatus } from './CxRealtimeEngineStatus' ;
2+
3+ export interface Location {
4+ line : number ;
5+ startIndex : number ;
6+ endIndex : number ;
7+ }
8+
9+ export default class CxContainerRealtimeResult {
10+ imageName : string ;
11+ imageTag : string ;
12+ filepath : string ;
13+ locations : Location [ ] ;
14+ status : CxRealtimeEngineStatus ;
15+ vulnerabilities : { cve : string , severity : string } [ ] ;
16+
17+ static parseResult ( resultObject : any ) : CxContainerRealtimeResult [ ] {
18+ const images = resultObject . Images ;
19+ let imageResults : CxContainerRealtimeResult [ ] = [ ] ;
20+ if ( images instanceof Array ) {
21+ imageResults = images . map ( ( member : any ) => {
22+ const imageResult = new CxContainerRealtimeResult ( ) ;
23+ imageResult . imageName = member . ImageName ;
24+ imageResult . imageTag = member . ImageTag ;
25+ imageResult . filepath = member . FilePath ;
26+ imageResult . locations = Array . isArray ( member . Locations )
27+ ? member . Locations . map ( ( loc : any ) => ( {
28+ line : loc . Line ,
29+ startIndex : loc . StartIndex ,
30+ endIndex : loc . EndIndex
31+ } ) )
32+ : [ ] ;
33+ imageResult . status = member . Status as CxRealtimeEngineStatus ;
34+ imageResult . vulnerabilities = Array . isArray ( member . Vulnerabilities )
35+ ? member . Vulnerabilities . map ( ( vul : any ) => ( {
36+ cve : vul . CVE ,
37+ severity : vul . Severity
38+ } ) )
39+ : [ ] ;
40+ return imageResult ;
41+ } ) ;
42+ } else {
43+ const imageResult = new CxContainerRealtimeResult ( ) ;
44+ imageResult . imageName = images . PackageManager ;
45+ imageResult . imageTag = images . PackageName ;
46+ imageResult . filepath = images . FilePath ;
47+ imageResult . locations = Array . isArray ( images . Locations )
48+ ? images . Locations . map ( ( loc : any ) => ( {
49+ line : loc . Line ,
50+ startIndex : loc . StartIndex ,
51+ endIndex : loc . EndIndex
52+ } ) )
53+ : [ ] ;
54+ imageResult . status = images . Status as CxRealtimeEngineStatus ;
55+ imageResult . vulnerabilities = Array . isArray ( images . Vulnerabilities )
56+ ? images . Vulnerabilities . map ( ( vul : any ) => ( {
57+ cve : vul . CVE ,
58+ severity : vul . Severity
59+ } ) )
60+ : [ ] ;
61+ imageResults . push ( imageResult ) ;
62+ }
63+ return imageResults ;
64+ }
65+ }
0 commit comments