-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
/
website-redirect.service.js
105 lines (101 loc) · 2.6 KB
/
website-redirect.service.js
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import { escapeFormat } from '../../core/badge-urls/path-helpers.js'
import { redirector } from '../index.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: '',
format:
'website-(([^-/]|--|//)+)-(([^-/]|--|//)+)(-(([^-/]|--|//)+)-(([^-/]|--|//)+))?/([^/]+)/(.+?)',
capture: [
// Some of these could be made into non-capturing groups so these unused
// params would not need to be declared.
'upMessage',
'unused2',
'downMessage',
'unused4',
'unused5',
'upColor',
'unused7',
'downColor',
'unused8',
'protocol',
'hostAndPath',
],
},
transformPath: () => '/website',
transformQueryParams: ({
upMessage,
downMessage,
upColor,
downColor,
protocol,
hostAndPath,
}) => ({
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'),
}),
]