1
- import React from 'react' ;
2
- import { BrowserRouter , Route , Routes } from 'react-router-dom' ;
1
+ import React from 'react'
2
+ import { BrowserRouter , Route , Routes } from 'react-router-dom'
3
3
import List from './pages/List'
4
4
import Detail from './pages/Detail'
5
5
6
6
// @ts -expect-error - this is passed from the HTML template.
7
- export const PATH_PREFIX : string = window . PATH_PREFIX ;
7
+ export const PATH_PREFIX : string = window . PATH_PREFIX
8
8
// @ts -expect-error - this is passed from the HTML template.
9
- export const API_BASEPATH : string = window . API_BASEPATH ;
9
+ export const API_BASEPATH : string = window . API_BASEPATH
10
10
// @ts -expect-error - this is passed from the HTML template.
11
- export const PROMETHEUS_URL : string = window . PROMETHEUS_URL ;
11
+ export const PROMETHEUS_URL : string = window . PROMETHEUS_URL
12
12
13
13
const App = ( ) => {
14
14
const basename = `/${ PATH_PREFIX . replace ( / ^ \/ / , '' ) . replace ( / \/ $ / , '' ) } `
15
15
return (
16
16
< BrowserRouter basename = { basename } >
17
17
< Routes >
18
- < Route path = "/" element = { < List /> } />
19
- < Route path = "/objectives" element = { < Detail /> } />
18
+ < Route path = "/" element = { < List /> } />
19
+ < Route path = "/objectives" element = { < Detail /> } />
20
20
</ Routes >
21
21
</ BrowserRouter >
22
22
)
23
23
}
24
24
25
- export const dateFormatter = ( timeRange : number ) => ( t : number ) : string => {
26
- const date = new Date ( t * 1000 )
27
- const year = date . getUTCFullYear ( )
28
- const month = date . getUTCMonth ( ) + 1
29
- const day = date . getUTCDate ( )
30
- const hour = date . getUTCHours ( )
31
- const minute = date . getUTCMinutes ( )
32
-
33
- const monthLeading = month > 9 ? month : `0${ month } `
34
- const dayLeading = day > 9 ? day : `0${ day } `
35
- const hourLeading = hour > 9 ? hour : `0${ hour } `
36
- const minuteLeading = minute > 9 ? minute : `0${ minute } `
25
+ export const dateFormatter =
26
+ ( timeRange : number ) =>
27
+ ( t : number ) : string => {
28
+ const date = new Date ( t * 1000 )
29
+ const year = date . getUTCFullYear ( )
30
+ const month = date . getUTCMonth ( ) + 1
31
+ const day = date . getUTCDate ( )
32
+ const hour = date . getUTCHours ( )
33
+ const minute = date . getUTCMinutes ( )
34
+
35
+ const monthLeading = month > 9 ? month : `0${ month } `
36
+ const dayLeading = day > 9 ? day : `0${ day } `
37
+ const hourLeading = hour > 9 ? hour : `0${ hour } `
38
+ const minuteLeading = minute > 9 ? minute : `0${ minute } `
39
+
40
+ if ( timeRange >= 24 * 3600 * 1000 ) {
41
+ return `${ year } -${ monthLeading } -${ dayLeading } ${ hourLeading } :${ minuteLeading } `
42
+ }
37
43
38
- if ( timeRange >= 24 * 3600 * 1000 ) {
39
- return `${ year } -${ monthLeading } -${ dayLeading } ${ hourLeading } :${ minuteLeading } `
44
+ return `${ hourLeading } :${ minuteLeading } `
40
45
}
41
46
42
- return `${ hourLeading } :${ minuteLeading } `
43
- }
44
-
45
47
export const dateFormatterFull = ( t : number ) : string => {
46
48
const date = new Date ( t * 1000 )
47
49
const year = date . getUTCFullYear ( )
@@ -58,77 +60,77 @@ export const dateFormatterFull = (t: number): string => {
58
60
return `${ year } -${ monthLeading } -${ dayLeading } ${ hourLeading } :${ minuteLeading } `
59
61
}
60
62
61
- export default App ;
62
-
63
+ export default App
63
64
64
65
// From prometheus/prometheus
65
66
66
67
export const formatDuration = ( d : number ) : string => {
67
- let ms = d ;
68
- let r = '' ;
68
+ let ms = d
69
+ let r = ''
69
70
if ( ms === 0 ) {
70
- return '0s' ;
71
+ return '0s'
71
72
}
72
73
73
74
const f = ( unit : string , mult : number , exact : boolean ) => {
74
75
if ( exact && ms % mult !== 0 ) {
75
- return ;
76
+ return
76
77
}
77
- const v = Math . floor ( ms / mult ) ;
78
+ const v = Math . floor ( ms / mult )
78
79
if ( v > 0 ) {
79
- r += `${ v } ${ unit } ` ;
80
- ms -= v * mult ;
80
+ r += `${ v } ${ unit } `
81
+ ms -= v * mult
81
82
}
82
- } ;
83
+ }
83
84
84
85
// Only format years and weeks if the remainder is zero, as it is often
85
86
// easier to read 90d than 12w6d.
86
- f ( 'y' , 1000 * 60 * 60 * 24 * 365 , true ) ;
87
- f ( 'w' , 1000 * 60 * 60 * 24 * 7 , true ) ;
87
+ f ( 'y' , 1000 * 60 * 60 * 24 * 365 , true )
88
+ f ( 'w' , 1000 * 60 * 60 * 24 * 7 , true )
88
89
89
- f ( 'd' , 1000 * 60 * 60 * 24 , false ) ;
90
- f ( 'h' , 1000 * 60 * 60 , false ) ;
91
- f ( 'm' , 1000 * 60 , false ) ;
92
- f ( 's' , 1000 , false ) ;
93
- f ( 'ms' , 1 , false ) ;
90
+ f ( 'd' , 1000 * 60 * 60 * 24 , false )
91
+ f ( 'h' , 1000 * 60 * 60 , false )
92
+ f ( 'm' , 1000 * 60 , false )
93
+ f ( 's' , 1000 , false )
94
+ f ( 'ms' , 1 , false )
94
95
95
- return r ;
96
- } ;
96
+ return r
97
+ }
97
98
98
99
export const parseDuration = ( durationStr : string ) : number | null => {
99
100
if ( durationStr === '' ) {
100
- return null ;
101
+ return null
101
102
}
102
103
if ( durationStr === '0' ) {
103
104
// Allow 0 without a unit.
104
- return 0 ;
105
+ return 0
105
106
}
106
107
107
- const durationRE = / ^ ( ( [ 0 - 9 ] + ) y ) ? ( ( [ 0 - 9 ] + ) w ) ? ( ( [ 0 - 9 ] + ) d ) ? ( ( [ 0 - 9 ] + ) h ) ? ( ( [ 0 - 9 ] + ) m ) ? ( ( [ 0 - 9 ] + ) s ) ? ( ( [ 0 - 9 ] + ) m s ) ? $ /
108
- const matches = durationStr . match ( durationRE ) ;
108
+ const durationRE =
109
+ / ^ ( ( [ 0 - 9 ] + ) y ) ? ( ( [ 0 - 9 ] + ) w ) ? ( ( [ 0 - 9 ] + ) d ) ? ( ( [ 0 - 9 ] + ) h ) ? ( ( [ 0 - 9 ] + ) m ) ? ( ( [ 0 - 9 ] + ) s ) ? ( ( [ 0 - 9 ] + ) m s ) ? $ /
110
+ const matches = durationStr . match ( durationRE )
109
111
if ( matches === null ) {
110
- return null ;
112
+ return null
111
113
}
112
114
113
- let dur = 0 ;
115
+ let dur = 0
114
116
115
117
// Parse the match at pos `pos` in the regex and use `mult` to turn that
116
118
// into ms, then add that value to the total parsed duration.
117
119
const m = ( pos : number , mult : number ) => {
118
120
if ( matches [ pos ] === undefined ) {
119
- return ;
121
+ return
120
122
}
121
- const n = parseInt ( matches [ pos ] ) ;
122
- dur += n * mult ;
123
- } ;
124
-
125
- m ( 2 , 1000 * 60 * 60 * 24 * 365 ) ; // y
126
- m ( 4 , 1000 * 60 * 60 * 24 * 7 ) ; // w
127
- m ( 6 , 1000 * 60 * 60 * 24 ) ; // d
128
- m ( 8 , 1000 * 60 * 60 ) ; // h
129
- m ( 10 , 1000 * 60 ) ; // m
130
- m ( 12 , 1000 ) ; // s
131
- m ( 14 , 1 ) ; // ms
132
-
133
- return dur ;
134
- } ;
123
+ const n = parseInt ( matches [ pos ] )
124
+ dur += n * mult
125
+ }
126
+
127
+ m ( 2 , 1000 * 60 * 60 * 24 * 365 ) // y
128
+ m ( 4 , 1000 * 60 * 60 * 24 * 7 ) // w
129
+ m ( 6 , 1000 * 60 * 60 * 24 ) // d
130
+ m ( 8 , 1000 * 60 * 60 ) // h
131
+ m ( 10 , 1000 * 60 ) // m
132
+ m ( 12 , 1000 ) // s
133
+ m ( 14 , 1 ) // ms
134
+
135
+ return dur
136
+ }
0 commit comments