omniroute / src /lib /initCloudSync.ts
igorkurgin's picture
Deploy OmniRoute to Hugging Face Space
35743bd verified
Raw
History Blame Contribute Delete
1.6 kB
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;