mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-11 23:08:27 +00:00
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { logger } from "~/services/logger.service";
|
|
import { fetchAndSaveStdioIntegrations } from "~/trigger/utils/mcp";
|
|
import { initNeo4jSchemaOnce } from "~/lib/neo4j.server";
|
|
|
|
// Global flag to ensure startup only runs once per server process
|
|
let startupInitialized = false;
|
|
|
|
/**
|
|
* Initialize all startup services once per server process
|
|
* Safe to call multiple times - will only run initialization once
|
|
*/
|
|
export async function initializeStartupServices() {
|
|
if (startupInitialized) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
logger.info("Starting application initialization...");
|
|
|
|
// Initialize Neo4j schema
|
|
await initNeo4jSchemaOnce();
|
|
logger.info("Neo4j schema initialization completed");
|
|
|
|
await fetchAndSaveStdioIntegrations();
|
|
logger.info("Stdio integrations initialization completed");
|
|
|
|
startupInitialized = true;
|
|
logger.info("Application initialization completed successfully");
|
|
} catch (error) {
|
|
logger.error("Failed to initialize startup services:", { error });
|
|
// Don't mark as initialized if there was an error, allow retry
|
|
throw error;
|
|
}
|
|
}
|