-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Expand file tree
/
Copy pathwebsite-redirect.service.js
More file actions
90 lines (85 loc) · 2.36 KB
/
Copy pathwebsite-redirect.service.js
File metadata and controls
90 lines (85 loc) · 2.36 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import { escapeFormat } from '../../core/badge-urls/path-helpers.js'
import { redirector } from '../index.js'
import { splitDashSeparatedOptionalParams } from '../dash-badge-content-helpers.js'
function escapeFormatSlashes(t) {
return (
escapeFormat(t)
// Double slash
.replace(/\/\//g, '/')
)
}
/*
Old documentation, for reference:
<p>
<code>[OPTIONS]</code> can be:
<ul>
<li>
Nothing:
<code>…/website/…</code>
</li>
<li>
Online and offline text:
<code>…/website-up-down/…</code>
</li>
<li>
Online and offline text, then online and offline colors:
<code>…/website-up-down-green-orange/…</code></li>
</li>
</ul>
<table class="centered"><tbody>
<tr><td> Dashes <code>--</code>
</td><td> →
</td><td> <code>-</code> Dash
</td></tr>
<tr><td> Underscores <code>__</code>
</td><td> →
</td><td> <code>_</code> Underscore <br/>
</td></tr>
<tr><td> Slashes <code>//</code>
</td><td> →
</td><td> <code>/</code> Slash <br/>
</td></tr>
<tr><td> <code>_</code> or Space <code> </code>
</td><td> →
</td><td> <code> </code> Space
</td></tr>
</tbody></table>
</p>
*/
export default [
redirector({
category: 'monitoring',
route: {
base: '',
pattern: 'website-:labels/:protocol/:hostAndPath+',
},
transformPath: () => '/website',
transformQueryParams: ({ labels, protocol, hostAndPath }) => {
const parts = splitDashSeparatedOptionalParams(labels || '')
const [upMessage, downMessage, upColor, downColor] = parts
return {
up_message: upMessage ? escapeFormatSlashes(upMessage) : undefined,
down_message: downMessage
? escapeFormatSlashes(downMessage)
: undefined,
up_color: upColor,
down_color: downColor,
url: `${protocol}://${hostAndPath}`,
}
},
dateAdded: new Date('2019-03-08'),
}),
redirector({
category: 'monitoring',
name: 'WebsiteUrlQueryParamRedirect',
route: {
base: 'website',
pattern: ':protocol(https|http)/:hostAndPath+',
},
transformPath: () => '/website',
transformQueryParams: ({ protocol, hostAndPath }) => ({
url: `${protocol}://${hostAndPath}`,
}),
dateAdded: new Date('2019-09-17'),
}),
]