Openstatus
www.openstatus.dev
1export const regions = [
2 {
3 code: "ams",
4 location: "Amsterdam, Netherlands",
5 flag: "🇳🇱",
6 continent: "Europe",
7 provider: "Fly",
8 },
9 {
10 code: "arn",
11 location: "Stockholm, Sweden",
12 flag: "🇸🇪",
13 continent: "Europe",
14 provider: "Fly",
15 },
16 {
17 code: "atl",
18 location: "Atlanta, Georgia, USA",
19 flag: "🇺🇸",
20 continent: "North America",
21 provider: "Fly",
22 },
23 {
24 code: "bog",
25 location: "Bogotá, Colombia",
26 flag: "🇨🇴",
27 continent: "South America",
28 provider: "Fly",
29 },
30 {
31 code: "bom",
32 location: "Mumbai, India",
33 flag: "🇮🇳",
34 continent: "Asia",
35 provider: "Fly",
36 },
37 {
38 code: "bos",
39 location: "Boston, Massachusetts, USA",
40 flag: "🇺🇸",
41 continent: "North America",
42 provider: "Fly",
43 },
44 {
45 code: "cdg",
46 location: "Paris, France",
47 flag: "🇫🇷",
48 continent: "Europe",
49 provider: "Fly",
50 },
51 {
52 code: "den",
53 location: "Denver, Colorado, USA",
54 flag: "🇺🇸",
55 continent: "North America",
56 provider: "Fly",
57 },
58 {
59 code: "dfw",
60 location: "Dallas, Texas, USA",
61 flag: "🇺🇸",
62 continent: "North America",
63 provider: "Fly",
64 },
65 {
66 code: "ewr",
67 location: "Secaucus, New Jersey, USA",
68 flag: "🇺🇸",
69 continent: "North America",
70 provider: "Fly",
71 },
72 {
73 code: "eze",
74 location: "Ezeiza, Argentina",
75 flag: "🇦🇷",
76 continent: "South America",
77 provider: "Fly",
78 },
79 {
80 code: "fra",
81 location: "Frankfurt, Germany",
82 flag: "🇩🇪",
83 continent: "Europe",
84 provider: "Fly",
85 },
86 {
87 code: "gdl",
88 location: "Guadalajara, Mexico",
89 flag: "🇲🇽",
90 continent: "North America",
91 provider: "Fly",
92 },
93 {
94 code: "gig",
95 location: "Rio de Janeiro, Brazil",
96 flag: "🇧🇷",
97 continent: "South America",
98 provider: "Fly",
99 },
100 {
101 code: "gru",
102 location: "Sao Paulo, Brazil",
103 flag: "🇧🇷",
104 continent: "South America",
105 provider: "Fly",
106 },
107 {
108 code: "hkg",
109 location: "Hong Kong, Hong Kong",
110 flag: "🇭🇰",
111 continent: "Asia",
112 provider: "Fly",
113 },
114 {
115 code: "iad",
116 location: "Ashburn, Virginia, USA",
117 flag: "🇺🇸",
118 continent: "North America",
119 provider: "Fly",
120 },
121 {
122 code: "jnb",
123 location: "Johannesburg, South Africa",
124 flag: "🇿🇦",
125 continent: "Africa",
126 },
127 {
128 code: "lax",
129 location: "Los Angeles, California, USA",
130 flag: "🇺🇸",
131 continent: "North America",
132 provider: "Fly",
133 },
134 {
135 code: "lhr",
136 location: "London, United Kingdom",
137 flag: "🇬🇧",
138 continent: "Europe",
139 provider: "Fly",
140 },
141 {
142 code: "mad",
143 location: "Madrid, Spain",
144 flag: "🇪🇸",
145 continent: "Europe",
146 },
147 {
148 code: "mia",
149 location: "Miami, Florida, USA",
150 flag: "🇺🇸",
151 continent: "North America",
152 provider: "Fly",
153 },
154 {
155 code: "nrt",
156 location: "Tokyo, Japan",
157 flag: "🇯🇵",
158 continent: "Asia",
159 provider: "Fly",
160 },
161 {
162 code: "ord",
163 location: "Chicago, Illinois, USA",
164 flag: "🇺🇸",
165 continent: "North America",
166 },
167 {
168 code: "otp",
169 location: "Bucharest, Romania",
170 flag: "🇷🇴",
171 continent: "Europe",
172 provider: "Fly",
173 },
174 {
175 code: "phx",
176 location: "Phoenix, Arizona, USA",
177 flag: "🇺🇸",
178 continent: "North America",
179 provider: "Fly",
180 },
181 {
182 code: "qro",
183 location: "Querétaro, Mexico",
184 flag: "🇲🇽",
185 continent: "North America",
186 provider: "Fly",
187 },
188 {
189 code: "scl",
190 location: "Santiago, Chile",
191 flag: "🇨🇱",
192 continent: "South America",
193 provider: "Fly",
194 },
195 {
196 code: "sjc",
197 location: "San Jose, California, USA",
198 flag: "🇺🇸",
199 continent: "North America",
200 provider: "Fly",
201 },
202 {
203 code: "sea",
204 location: "Seattle, Washington, USA",
205 flag: "🇺🇸",
206 continent: "North America",
207 provider: "Fly",
208 },
209 {
210 code: "sin",
211 location: "Singapore, Singapore",
212 flag: "🇸🇬",
213 continent: "Asia",
214 provider: "Fly",
215 },
216 {
217 code: "syd",
218 location: "Sydney, Australia",
219 flag: "🇦🇺",
220 continent: "Oceania",
221 provider: "Fly",
222 },
223 {
224 code: "waw",
225 location: "Warsaw, Poland",
226 flag: "🇵🇱",
227 continent: "Europe",
228 provider: "Fly",
229 },
230 {
231 code: "yul",
232 location: "Montreal, Canada",
233 flag: "🇨🇦",
234 continent: "North America",
235 provider: "Fly",
236 },
237 {
238 code: "yyz",
239 location: "Toronto, Canada",
240 flag: "🇨🇦",
241 continent: "North America",
242 provider: "Fly",
243 },
244 {
245 code: "koyeb_fra",
246 location: "Frankfurt, Germany",
247 flag: "🇩🇪",
248 continent: "Europe",
249 provider: "koyeb",
250 },
251 {
252 code: "koyeb_par",
253 location: "Paris, France",
254 flag: "🇫🇷",
255 continent: "Europe",
256 provider: "koyeb",
257 },
258 {
259 code: "koyeb_sfo",
260 location: "San Francisco, USA",
261 flag: "🇺🇸",
262 continent: "North America",
263 provider: "koyeb",
264 },
265 {
266 code: "koyeb_sin",
267 location: "Singapore, Singapore",
268 flag: "🇸🇬",
269 continent: "Asia",
270 provider: "koyeb",
271 },
272 {
273 code: "koyeb_tyo",
274 location: "Tokyo, Japan",
275 flag: "🇯🇵",
276 continent: "Asia",
277 provider: "koyeb",
278 },
279 {
280 code: "koyeb_was",
281 location: "Washington, USA",
282 flag: "🇺🇸",
283 continent: "North America",
284 provider: "koyeb",
285 },
286 {
287 code: "railway_us-west2",
288 location: "California, USA",
289 flag: "🇺🇸",
290 continent: "North America",
291 provider: "railway",
292 },
293 {
294 code: "railway_us-east4-eqdc4a",
295 location: "Virginia, USA",
296 flag: "🇺🇸",
297 continent: "North America",
298 provider: "railway",
299 },
300 {
301 code: "railway_europe-west4-drams3a",
302 location: "Amsterdam, Netherlands",
303 flag: "🇳🇱",
304 continent: "Europe",
305 provider: "railway",
306 },
307 {
308 code: "railway_asia-southeast1-eqsg3a",
309 location: "Singapore, Singapore",
310 flag: "🇸🇬",
311 continent: "Asia",
312 provider: "railway",
313 },
314] as const;
315
316export type Region = (typeof regions)[number]["code"];
317
318export const groupedRegions = regions.reduce(
319 (acc, region) => {
320 const continent = region.continent;
321 if (!acc[continent]) {
322 acc[continent] = [];
323 }
324 acc[continent].push(region.code);
325 return acc;
326 },
327 {} as Record<string, Region[]>,
328);
329
330export const regionColors = {
331 ams: "hsl(217.2 91.2% 59.8%)",
332 arn: "hsl(238.7 83.5% 66.7%)",
333 atl: "hsl(258.3 89.5% 66.3%)",
334 bog: "hsl(270.7 91% 65.1%)",
335 bom: "hsl(292.2 84.1% 60.6%)",
336 bos: "hsl(330.4 81.2% 60.4%)",
337 cdg: "hsl(349.7 89.2% 60.2%)",
338 den: "hsl(215.4 16.3% 46.9%)",
339 dfw: "hsl(220 8.9% 46.1%)",
340 ewr: "hsl(240 3.8% 46.1%)",
341 eze: "hsl(0 0% 45.1%)",
342 fra: "hsl(25 5.3% 44.7%)",
343 gdl: "hsl(0 84.2% 60.2%)",
344 gig: "hsl(24.6 95% 53.1%)",
345 gru: "hsl(37.7 92.1% 50.2%)",
346 hkg: "hsl(45.4 93.4% 47.5%)",
347 iad: "hsl(83.7 80.5% 44.3%)",
348 jnb: "hsl(142.1 70.6% 45.3%)",
349 lax: "hsl(160.1 84.1% 39.4%)",
350 lhr: "hsl(173.4 80.4% 40%)",
351 mad: "hsl(188.7 94.5% 42.7%)",
352 mia: "hsl(198.6 88.7% 48.4%)",
353 nrt: "hsl(217.2 91.2% 59.8%)",
354 ord: "hsl(238.7 83.5% 66.7%)",
355 otp: "hsl(258.3 89.5% 66.3%)",
356 phx: "hsl(270.7 91% 65.1%)",
357 qro: "hsl(292.2 84.1% 60.6%)",
358 scl: "hsl(330.4 81.2% 60.4%)",
359 sjc: "hsl(349.7 89.2% 60.2%)",
360 sea: "hsl(215.4 16.3% 46.9%)",
361 sin: "hsl(220 8.9% 46.1%)",
362 syd: "hsl(240 3.8% 46.1%)",
363 waw: "hsl(0 0% 45.1%)",
364 yul: "hsl(25 5.3% 44.7%)",
365 yyz: "hsl(0 84.2% 60.2%)",
366
367 koyeb_fra: "hsl(25 5.3% 44.7%)",
368 koyeb_par: "hsl(25 5.3% 44.7%)",
369 koyeb_sin: "hsl(25 5.3% 44.7%)",
370 koyeb_sfo: "hsl(0 0% 45.1%)",
371 koyeb_tyo: "hsl(0 0% 45.1%)",
372 koyeb_was: "hsl(0 0% 45.1%)",
373
374 "railway_asia-southeast1-eqsg3a": "hsl(0 0% 45.1%)",
375 "railway_europe-west4-drams3a": "hsl(0 0% 45.1%)",
376 "railway_us-east4-eqdc4a": "hsl(0 0% 45.1%)",
377 "railway_us-west2": "hsl(0 0% 45.1%)",
378} satisfies Record<Region, string>;
379
380export function getRegionColor(region: string) {
381 if (region in regionColors) {
382 return regionColors[region as keyof typeof regionColors];
383 }
384 return "hsl(0 0% 45.1%)";
385}