@@ -7,39 +7,40 @@ import { MetricNode } from './metric';
77import { NetflowNode } from './netflow' ;
88import { TraceNode } from './trace' ;
99
10+ const urlLookup = [
11+ AlertNode . fromURL ,
12+ K8sNode . fromURL ,
13+ LogNode . fromURL ,
14+ MetricNode . fromURL ,
15+ NetflowNode . fromURL ,
16+ TraceNode . fromURL ,
17+ ] ;
18+
19+ const queryLookup = {
20+ alert : AlertNode . fromQuery ,
21+ k8s : K8sNode . fromQuery ,
22+ log : LogNode . fromQuery ,
23+ metric : MetricNode . fromQuery ,
24+ netflow : NetflowNode . fromQuery ,
25+ trace : TraceNode . fromQuery ,
26+ } ;
27+
1028export class Korrel8rNodeFactory {
1129 static fromURL ( url : string ) : Korrel8rNode {
12- [
13- AlertNode . fromURL ,
14- K8sNode . fromURL ,
15- LogNode . fromURL ,
16- MetricNode . fromURL ,
17- NetflowNode . fromURL ,
18- TraceNode . fromURL ,
19- ] . forEach ( ( fromURL ) : Korrel8rNode => {
30+ for ( const lookup of urlLookup ) {
2031 try {
21- // eslint-disable-next-line no-console
22- console . error ( `FIXME ${ fromURL } ${ url } ` ) ;
23- return fromURL ( url ) ;
32+ return lookup ( url ) ;
2433 } catch ( e ) {
2534 if ( ! ( e instanceof WrongDomainError ) ) {
2635 throw e ;
2736 }
2837 }
29- } ) ;
38+ }
3039 return InvalidNode . fromURL ( url ) ;
3140 }
3241
3342 static fromQuery ( query : string ) : Korrel8rNode {
34- const lookup = {
35- alert : AlertNode . fromQuery ,
36- k8s : K8sNode . fromQuery ,
37- log : LogNode . fromQuery ,
38- metric : MetricNode . fromQuery ,
39- netflow : NetflowNode . fromQuery ,
40- trace : TraceNode . fromQuery ,
41- } ;
42- const fromQuery = lookup [ query . split ( ':' ) . at ( 0 ) ] ;
43+ const fromQuery = queryLookup [ query . split ( ':' ) . at ( 0 ) ] ;
4344 if ( fromQuery ) return fromQuery ( query ) ;
4445 return InvalidNode . fromQuery ( query ) ;
4546 }
0 commit comments