From 04a65d5fa53d4e197767039bc6951301f866af44 Mon Sep 17 00:00:00 2001 From: ravvdevv Date: Sun, 14 Jun 2026 13:56:53 +0800 Subject: [PATCH] refactor: simplify CronJob and CronTime constructor overloads for timeZone/utcOffset exclusivity Removes redundant constructor overloads that used null types to enforce timeZone/utcOffset exclusivity. The type system already handles this via the CronJobParams union type. The runtime check in the implementation constructor was dead code in one overload. Single signature with proper types is cleaner and the runtime check still works correctly for JS users. Fixes #704 --- src/job.ts | 30 ------------------------------ src/time.ts | 10 ---------- 2 files changed, 40 deletions(-) diff --git a/src/job.ts b/src/job.ts index 4e301194..dbc62354 100644 --- a/src/job.ts +++ b/src/job.ts @@ -38,36 +38,6 @@ export class CronJob { return this._isCallbackRunning; } - constructor( - cronTime: CronJobParams['cronTime'], - onTick: CronJobParams['onTick'], - onComplete?: CronJobParams['onComplete'], - start?: CronJobParams['start'], - timeZone?: CronJobParams['timeZone'], - context?: CronJobParams['context'], - runOnInit?: CronJobParams['runOnInit'], - utcOffset?: null, - unrefTimeout?: CronJobParams['unrefTimeout'], - waitForCompletion?: CronJobParams['waitForCompletion'], - errorHandler?: CronJobParams['errorHandler'], - name?: CronJobParams['name'], - threshold?: CronJobParams['threshold'] - ); - constructor( - cronTime: CronJobParams['cronTime'], - onTick: CronJobParams['onTick'], - onComplete?: CronJobParams['onComplete'], - start?: CronJobParams['start'], - timeZone?: null, - context?: CronJobParams['context'], - runOnInit?: CronJobParams['runOnInit'], - utcOffset?: CronJobParams['utcOffset'], - unrefTimeout?: CronJobParams['unrefTimeout'], - waitForCompletion?: CronJobParams['waitForCompletion'], - errorHandler?: CronJobParams['errorHandler'], - name?: CronJobParams['name'], - threshold?: CronJobParams['threshold'] - ); constructor( cronTime: CronJobParams['cronTime'], onTick: CronJobParams['onTick'], diff --git a/src/time.ts b/src/time.ts index 137ea42e..53e894f2 100644 --- a/src/time.ts +++ b/src/time.ts @@ -41,16 +41,6 @@ export class CronTime { private month: TimeUnitField<'month'> = {}; private dayOfWeek: TimeUnitField<'dayOfWeek'> = {}; - constructor( - source: CronJobParams['cronTime'], - timeZone?: CronJobParams['timeZone'], - utcOffset?: null - ); - constructor( - source: CronJobParams['cronTime'], - timeZone?: null, - utcOffset?: CronJobParams['utcOffset'] - ); constructor( source: CronJobParams['cronTime'], timeZone?: CronJobParams['timeZone'],