fix(worker): use CJS-compatible rrule import for Node ESM runtime
The rrule v2.8.1 package's main field points to a CJS bundle. When the worker
runs under Node 22 with "type": "module", Node resolves to the CJS main which
only has a default export. The previous 'import { RRule } from rrule' worked
during typecheck (TypeScript uses the .d.ts) but crashed at runtime:
SyntaxError: The requested module 'rrule' does not provide an export named 'RRule'
Use namespace-default import + destructure to handle both CJS and ESM at runtime
while preserving the static RRule reference. Verified with node --input-type=module
that RRule.fromString works correctly.
This was a deploy blocker: docker compose up kept restarting the worker.
This commit is contained in:
+2
-1
@@ -1,7 +1,8 @@
|
||||
import { db, jobs, webhooks, webhookDeliveries, scheduledJobs, tasks, habits, habitCompletions } from '@project-e/db';
|
||||
import { and, eq, lte, isNull, sql } from 'drizzle-orm';
|
||||
import { createHmac } from 'node:crypto';
|
||||
import { RRule } from 'rrule';
|
||||
import rrule from 'rrule';
|
||||
const { RRule } = rrule;
|
||||
|
||||
const POLL_INTERVAL_BASE = 5000; // 5 seconds base
|
||||
const POLL_INTERVAL_MAX = 60000; // 60 seconds max
|
||||
|
||||
Reference in New Issue
Block a user