Spaces:
Paused
Paused
| import initializeCloudSync from "@/shared/services/initializeCloudSync"; | |
| import { startBudgetResetJob } from "@/lib/jobs/budgetResetJob"; | |
| import { startModelSyncScheduler } from "@/shared/services/modelSyncScheduler"; | |
| // Initialize runtime background sync services once per server process. | |
| let initialized = false; | |
| function isAutomatedTestProcess( | |
| env: NodeJS.ProcessEnv = process.env, | |
| argv: string[] = process.argv | |
| ): boolean { | |
| return ( | |
| env.NODE_ENV === "test" || env.VITEST !== undefined || argv.some((arg) => arg.includes("test")) | |
| ); | |
| } | |
| export function shouldSkipCloudSyncInitialization( | |
| env: NodeJS.ProcessEnv = process.env, | |
| argv: string[] = process.argv | |
| ): boolean { | |
| if (env.NEXT_PHASE === "phase-production-build") { | |
| return true; | |
| } | |
| const raw = env.OMNIROUTE_DISABLE_BACKGROUND_SERVICES; | |
| if (raw && new Set(["1", "true", "yes", "on"]).has(raw.trim().toLowerCase())) { | |
| return true; | |
| } | |
| return isAutomatedTestProcess(env, argv) && env.OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS !== "1"; | |
| } | |
| export async function ensureCloudSyncInitialized() { | |
| if (shouldSkipCloudSyncInitialization()) { | |
| return false; | |
| } | |
| if (!initialized) { | |
| try { | |
| const { initTokenHealthCheck } = await import("@/lib/tokenHealthCheck"); | |
| initTokenHealthCheck(); | |
| await initializeCloudSync(); | |
| startModelSyncScheduler(); | |
| startBudgetResetJob(); | |
| initialized = true; | |
| } catch (error) { | |
| console.error("[ServerInit] Error initializing background sync services:", error); | |
| } | |
| } | |
| return initialized; | |
| } | |
| export default ensureCloudSyncInitialized; | |