UNPKG

1.05 kBJavaScriptView Raw
1import _ from 'lodash';
2
3const TIMEZONE_REGEX = /^([+-](2[0-3]|[01][0-9])(:?[0-5][0-9])?|Z)$/; // +/-00:00 -/+00 Z +/-0000
4
5export const timezones = {
6 'UTC': '+00:00',
7 'GMT': '+00:00',
8 'BST': '+01:00',
9 'IST': '+01:00',
10 'WET': '+00:00',
11 'WEST': '+01:00',
12 'CET': '+01:00',
13 'CEST': '+02:00',
14 'EET': '+02:00',
15 'EEST': '+03:00',
16 'MSK': '+03:00',
17 'MSD': '+04:00',
18 'AST': '-04:00',
19 'ADT': '-03:00',
20 'EST': '-05:00',
21 'EDT': '-04:00',
22 'CST': '-06:00',
23 'CDT': '-05:00',
24 'MST': '-07:00',
25 'MDT': '-06:00',
26 'PST': '-08:00',
27 'PDT': '-07:00',
28 'HST': '-10:00',
29 'AKST': '-09:00',
30 'AKDT': '-08:00',
31 'AEST': '+10:00',
32 'AEDT': '+11:00',
33 'ACST': '+09:30',
34 'ACDT': '+10:30',
35 'AWST': '+08:00'
36};
37
38const isTimezone = (value) => {
39 return _.isInteger(value)
40 ? value <= 840 && value >= -720
41 : _.isString(value) && (value in timezones || TIMEZONE_REGEX.test(value));
42};
43
44export function getTimezoneKey(configuration) {
45 return _.findKey(configuration, { 'type': 'timezone' });
46}
47
48export default isTimezone;