From 9129c5b06caa72fa1a48a619a2c665bb46f198a9 Mon Sep 17 00:00:00 2001 From: Richard Honor Date: Mon, 25 Mar 2019 10:40:57 +0000 Subject: [PATCH 1/5] [node-cron] Define timezone as a string literal --- types/node-cron/index.d.ts | 22 ++++++++++++++++++++-- types/node-cron/node-cron-tests.ts | 7 +++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/types/node-cron/index.d.ts b/types/node-cron/index.d.ts index 6cd1b1445e..33ea8edd41 100644 --- a/types/node-cron/index.d.ts +++ b/types/node-cron/index.d.ts @@ -1,9 +1,27 @@ // Type definitions for node-cron 2.0 // Project: https://github.com/node-cron/node-cron, https://github.com/merencia/node-cron // Definitions by: morsic , -// burtek +// burtek , +// Richard Honor // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +export type Timezone = 'Etc/GMT+12' | 'Pacific/Pago_Pago' | 'Pacific/Midway' | 'Pacific/Honolulu' | 'America/Juneau' | 'America/Los_Angeles' | 'America/Tijuana' | 'America/Phoenix' | + 'America/Chihuahua' | 'America/Mazatlan' | 'America/Denver' | 'America/Guatemala' | 'America/Chicago' | 'America/Mexico_City' | 'America/Monterrey' | 'America/Regina' | + 'America/Bogota' | 'America/New_York' | 'America/Indiana/Indianapolis' | 'America/Lima' | 'America/Halifax' | 'America/Caracas' | 'America/Guyana' | 'America/La_Paz' | + 'America/Puerto_Rico' | 'America/Santiago' | 'America/St_Johns' | 'America/Sao_Paulo' | 'America/Argentina/Buenos_Aires' | 'America/Godthab' | 'America/Montevideo' | + 'Atlantic/South_Georgia' | 'Atlantic/Azores' | 'Atlantic/Cape_Verde' | 'Africa/Casablanca' | 'Europe/London' | 'Europe/Lisbon' | 'Africa/Monrovia' | 'Etc/UTC' | + 'Europe/Amsterdam' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Zurich' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Budapest' | 'Europe/Copenhagen' | + 'Europe/Dublin' | 'Europe/Ljubljana' | 'Europe/Madrid' | 'Europe/Paris' | 'Europe/Prague' | 'Europe/Rome' | 'Europe/Sarajevo' | 'Europe/Skopje' | 'Europe/Stockholm' | + 'Europe/Vienna' | 'Europe/Warsaw' | 'Africa/Algiers' | 'Europe/Zagreb' | 'Europe/Athens' | 'Europe/Bucharest' | 'Africa/Cairo' | 'Africa/Harare' | 'Europe/Helsinki' | + 'Asia/Jerusalem' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Africa/Johannesburg' | 'Europe/Riga' | 'Europe/Sofia' | 'Europe/Tallinn' | 'Europe/Vilnius' | 'Asia/Baghdad' | + 'Europe/Istanbul' | 'Asia/Kuwait' | 'Europe/Minsk' | 'Europe/Moscow' | 'Africa/Nairobi' | 'Asia/Riyadh' | 'Europe/Volgograd' | 'Asia/Tehran' | 'Asia/Muscat' | 'Asia/Baku' | + 'Europe/Samara' | 'Asia/Tbilisi' | 'Asia/Yerevan' | 'Asia/Kabul' | 'Asia/Yekaterinburg' | 'Asia/Karachi' | 'Asia/Tashkent' | 'Asia/Kolkata' | 'Asia/Colombo' | + 'Asia/Kathmandu' | 'Asia/Almaty' | 'Asia/Dhaka' | 'Asia/Urumqi' | 'Asia/Rangoon' | 'Asia/Bangkok' | 'Asia/Jakarta' | 'Asia/Krasnoyarsk' | 'Asia/Novosibirsk' | + 'Asia/Shanghai' | 'Asia/Chongqing' | 'Asia/Hong_Kong' | 'Asia/Irkutsk' | 'Asia/Kuala_Lumpur' | 'Australia/Perth' | 'Asia/Singapore' | 'Asia/Taipei' | 'Asia/Ulaanbaatar' | + 'Asia/Tokyo' | 'Asia/Seoul' | 'Asia/Yakutsk' | 'Australia/Adelaide' | 'Australia/Darwin' | 'Australia/Brisbane' | 'Australia/Melbourne' | 'Pacific/Guam' | 'Australia/Hobart' | + 'Pacific/Port_Moresby' | 'Australia/Sydney' | 'Asia/Vladivostok' | 'Asia/Magadan' | 'Pacific/Noumea' | 'Pacific/Guadalcanal' | 'Asia/Srednekolymsk' | 'Pacific/Auckland' | + 'Pacific/Fiji' | 'Asia/Kamchatka' | 'Pacific/Majuro' | 'Pacific/Chatham' | 'Pacific/Tongatapu' | 'Pacific/Apia' | 'Pacific/Fakaofo'; + export function schedule(cronExpression: string, func: () => void, options?: ScheduleOptions): ScheduledTask; export function validate(cronExpression: string): boolean; @@ -24,5 +42,5 @@ export interface ScheduleOptions { /** * The timezone that is used for job scheduling */ - timezone?: string; + timezone?: Timezone; } diff --git a/types/node-cron/node-cron-tests.ts b/types/node-cron/node-cron-tests.ts index 17350b6427..a5c92b5238 100644 --- a/types/node-cron/node-cron-tests.ts +++ b/types/node-cron/node-cron-tests.ts @@ -45,3 +45,10 @@ const invalid = cron.validate('60 * * * *'); if (valid && !invalid) { log('validator works'); } + +// check timezones are accepted from the string literal +const tast4 = cron.schedule('* * * * *', () => { + log('will execute every minute until stopped') +}, { timezone: 'Europe/London' }); + +tast4.destroy(); From 667a2f15197e04fca98d89e5cfcc3a7ad208eeb2 Mon Sep 17 00:00:00 2001 From: Richard Honor Date: Mon, 25 Mar 2019 12:29:06 +0000 Subject: [PATCH 2/5] [node-cron] Fixed linting error --- types/node-cron/node-cron-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/node-cron/node-cron-tests.ts b/types/node-cron/node-cron-tests.ts index a5c92b5238..f987d41334 100644 --- a/types/node-cron/node-cron-tests.ts +++ b/types/node-cron/node-cron-tests.ts @@ -48,7 +48,7 @@ if (valid && !invalid) { // check timezones are accepted from the string literal const tast4 = cron.schedule('* * * * *', () => { - log('will execute every minute until stopped') + log('will execute every minute until stopped'); }, { timezone: 'Europe/London' }); tast4.destroy(); From 8d1e34e278e0729e7200d4fd87601bf28e782dc6 Mon Sep 17 00:00:00 2001 From: Richard Honor Date: Mon, 8 Apr 2019 09:11:57 +0100 Subject: [PATCH 3/5] Import Timezone from tz-offset --- types/node-cron/index.d.ts | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/types/node-cron/index.d.ts b/types/node-cron/index.d.ts index 33ea8edd41..6c4018a447 100644 --- a/types/node-cron/index.d.ts +++ b/types/node-cron/index.d.ts @@ -5,22 +5,7 @@ // Richard Honor // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -export type Timezone = 'Etc/GMT+12' | 'Pacific/Pago_Pago' | 'Pacific/Midway' | 'Pacific/Honolulu' | 'America/Juneau' | 'America/Los_Angeles' | 'America/Tijuana' | 'America/Phoenix' | - 'America/Chihuahua' | 'America/Mazatlan' | 'America/Denver' | 'America/Guatemala' | 'America/Chicago' | 'America/Mexico_City' | 'America/Monterrey' | 'America/Regina' | - 'America/Bogota' | 'America/New_York' | 'America/Indiana/Indianapolis' | 'America/Lima' | 'America/Halifax' | 'America/Caracas' | 'America/Guyana' | 'America/La_Paz' | - 'America/Puerto_Rico' | 'America/Santiago' | 'America/St_Johns' | 'America/Sao_Paulo' | 'America/Argentina/Buenos_Aires' | 'America/Godthab' | 'America/Montevideo' | - 'Atlantic/South_Georgia' | 'Atlantic/Azores' | 'Atlantic/Cape_Verde' | 'Africa/Casablanca' | 'Europe/London' | 'Europe/Lisbon' | 'Africa/Monrovia' | 'Etc/UTC' | - 'Europe/Amsterdam' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Zurich' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Budapest' | 'Europe/Copenhagen' | - 'Europe/Dublin' | 'Europe/Ljubljana' | 'Europe/Madrid' | 'Europe/Paris' | 'Europe/Prague' | 'Europe/Rome' | 'Europe/Sarajevo' | 'Europe/Skopje' | 'Europe/Stockholm' | - 'Europe/Vienna' | 'Europe/Warsaw' | 'Africa/Algiers' | 'Europe/Zagreb' | 'Europe/Athens' | 'Europe/Bucharest' | 'Africa/Cairo' | 'Africa/Harare' | 'Europe/Helsinki' | - 'Asia/Jerusalem' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Africa/Johannesburg' | 'Europe/Riga' | 'Europe/Sofia' | 'Europe/Tallinn' | 'Europe/Vilnius' | 'Asia/Baghdad' | - 'Europe/Istanbul' | 'Asia/Kuwait' | 'Europe/Minsk' | 'Europe/Moscow' | 'Africa/Nairobi' | 'Asia/Riyadh' | 'Europe/Volgograd' | 'Asia/Tehran' | 'Asia/Muscat' | 'Asia/Baku' | - 'Europe/Samara' | 'Asia/Tbilisi' | 'Asia/Yerevan' | 'Asia/Kabul' | 'Asia/Yekaterinburg' | 'Asia/Karachi' | 'Asia/Tashkent' | 'Asia/Kolkata' | 'Asia/Colombo' | - 'Asia/Kathmandu' | 'Asia/Almaty' | 'Asia/Dhaka' | 'Asia/Urumqi' | 'Asia/Rangoon' | 'Asia/Bangkok' | 'Asia/Jakarta' | 'Asia/Krasnoyarsk' | 'Asia/Novosibirsk' | - 'Asia/Shanghai' | 'Asia/Chongqing' | 'Asia/Hong_Kong' | 'Asia/Irkutsk' | 'Asia/Kuala_Lumpur' | 'Australia/Perth' | 'Asia/Singapore' | 'Asia/Taipei' | 'Asia/Ulaanbaatar' | - 'Asia/Tokyo' | 'Asia/Seoul' | 'Asia/Yakutsk' | 'Australia/Adelaide' | 'Australia/Darwin' | 'Australia/Brisbane' | 'Australia/Melbourne' | 'Pacific/Guam' | 'Australia/Hobart' | - 'Pacific/Port_Moresby' | 'Australia/Sydney' | 'Asia/Vladivostok' | 'Asia/Magadan' | 'Pacific/Noumea' | 'Pacific/Guadalcanal' | 'Asia/Srednekolymsk' | 'Pacific/Auckland' | - 'Pacific/Fiji' | 'Asia/Kamchatka' | 'Pacific/Majuro' | 'Pacific/Chatham' | 'Pacific/Tongatapu' | 'Pacific/Apia' | 'Pacific/Fakaofo'; +import { Timezone } from 'tz-offset'; export function schedule(cronExpression: string, func: () => void, options?: ScheduleOptions): ScheduledTask; From db2928769436a45ca710f5c5f06663830b9ea563 Mon Sep 17 00:00:00 2001 From: Richard Honor Date: Tue, 9 Apr 2019 09:16:01 +0100 Subject: [PATCH 4/5] Add package.json and dependency on tz-offset --- types/node-cron/package.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 types/node-cron/package.json diff --git a/types/node-cron/package.json b/types/node-cron/package.json new file mode 100644 index 0000000000..5f29cabf88 --- /dev/null +++ b/types/node-cron/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "@types/tz-offset": "0.0.0" + } +} From 9935bea6bc6a7d5cf3be7f990232751747d4a730 Mon Sep 17 00:00:00 2001 From: Richard Honor Date: Tue, 9 Apr 2019 09:30:42 +0100 Subject: [PATCH 5/5] Removed unnecessary package.json - types packages are inferred --- types/node-cron/package.json | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 types/node-cron/package.json diff --git a/types/node-cron/package.json b/types/node-cron/package.json deleted file mode 100644 index 5f29cabf88..0000000000 --- a/types/node-cron/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "private": true, - "dependencies": { - "@types/tz-offset": "0.0.0" - } -}