UNPKG

@simonecoelhosfo/optimizely-mcp-server

Version:

Optimizely MCP Server for AI assistants with integrated CLI tools

39 lines (31 loc) 1.35 kB
// Extract entities from EntityRouter import fs from 'fs'; // Read EntityRouter.ts const routerContent = fs.readFileSync('src/tools/EntityRouter.ts', 'utf8'); // Extract entity definitions const entityRegex = /^\s+([a-z_]+):\s*{$/gm; const entities = []; let match; while ((match = entityRegex.exec(routerContent)) !== null) { if (match[1] !== 'platform' && match[1] !== 'apiEndpoint' && match[1] !== 'supportsArchive') { entities.push(match[1]); } } // Read SQLiteEngine.ts const sqliteContent = fs.readFileSync('src/storage/SQLiteEngine.ts', 'utf8'); // Extract table names const tableRegex = /CREATE TABLE IF NOT EXISTS ([a-z_]+)/g; const tables = []; while ((match = tableRegex.exec(sqliteContent)) !== null) { tables.push(match[1]); } console.log('=== Entity Router Entities ==='); console.log(entities.sort().join('\n')); console.log('\n=== SQLite Tables ==='); console.log(tables.sort().join('\n')); console.log('\n=== Missing Tables (Entities without tables) ==='); const missingTables = entities.filter(e => !tables.includes(e) && !tables.includes(e + 's')); console.log(missingTables.sort().join('\n')); console.log('\n=== Orphan Tables (Tables without entities) ==='); const orphanTables = tables.filter(t => !entities.includes(t) && !entities.includes(t.replace(/s$/, ''))); console.log(orphanTables.sort().join('\n'));