import process from "node:process"; import { syncVercelEnvVars } from "@trigger.dev/build/extensions/core"; import { defineConfig } from "@trigger.dev/sdk"; import dotEnv from "dotenv"; dotEnv.config({ path: "../../.env" }); const canSyncEnvVars = Boolean( process.env.TRIGGER_DEV_VERCEL_ACCESS_TOKEN && process.env.TRIGGER_DEV_VERCEL_PROJECT_ID && process.env.TRIGGER_DEV_VERCEL_TEAM_ID ); export default defineConfig({ // Your project ref from the Trigger.dev dashboard project: process.env.TRIGGER_DEV_PROJECT_REF ?? "", // e.g., "proj_abc123" // Directories containing your tasks dirs: [ "./bookings/lib/tasker/trigger/notifications", "./calendars/lib/tasker/trigger", "./ee/billing/service/proration/tasker/trigger", "./ee/organizations/lib/billing/tasker/trigger", "./webhooks/lib/tasker/trigger", ], // Customize based on your project structure // Retry configuration retries: { enabledInDev: false, // Enable retries in development default: { maxAttempts: 3, minTimeoutInMs: 1000, maxTimeoutInMs: 10000, factor: 2, randomize: true, }, }, // Keep the process alive after the task has finished running so the next task doesn’t have to wait for the process to start up again. processKeepAlive: true, // Build configuration (optional) build: { external: [ "@prisma/client", "nodemailer", "jsdom", "playwright-core", "playwright", "chromium-bidi", "http-cookie-agent", "deasync", ], extensions: canSyncEnvVars ? [ syncVercelEnvVars({ // A personal access token created in your Vercel account settings // Used to authenticate API requests to Vercel // Generate at: https://vercel.com/account/tokens vercelAccessToken: process.env.TRIGGER_DEV_VERCEL_ACCESS_TOKEN, // The unique identifier of your Vercel project // Found in Project Settings > General > Project ID projectId: process.env.TRIGGER_DEV_VERCEL_PROJECT_ID, // Optional: The ID of your Vercel team // Only required for team projects // Found in Team Settings > General > Team ID vercelTeamId: process.env.TRIGGER_DEV_VERCEL_TEAM_ID, }), ] : [], }, // Max duration of a task in seconds maxDuration: 600, });