UNPKG

graphql-lint-clint-platform

Version:

GraphQL unused fields linter for Clint platform - Custom patterns and actions.graphql support

87 lines (70 loc) 2.63 kB
#!/usr/bin/env node const { AdvancedUsageAnalyzer } = require('./dist/advancedUsageAnalyzer.js'); const fs = require('fs'); const path = require('path'); async function testBruteForce() { console.log('🧪 Testando análise por força bruta no projeto Clint...'); // Path do projeto Clint const clintPath = '/Users/franco/Applications/Coded/Clint'; if (!fs.existsSync(clintPath)) { console.log('❌ Projeto Clint não encontrado em:', clintPath); return; } // Carregar um subconjunto de arquivos do Clint para teste const testFiles = new Map(); function loadFiles(dir, maxFiles = 20) { const files = fs.readdirSync(dir); let count = 0; for (const file of files) { if (count >= maxFiles) break; const fullPath = path.join(dir, file); const stat = fs.statSync(fullPath); if (stat.isDirectory() && !file.includes('node_modules') && !file.startsWith('.')) { loadFiles(fullPath, maxFiles - count); } else if (file.endsWith('.ts') || file.endsWith('.tsx') || file.endsWith('.js') || file.endsWith('.jsx')) { try { const content = fs.readFileSync(fullPath, 'utf8'); testFiles.set(fullPath, content); count++; console.log(`📁 Carregado: ${fullPath}`); } catch (error) { console.warn(`⚠️ Erro ao ler ${fullPath}: ${error.message}`); } } } } console.log('📂 Carregando arquivos de teste...'); loadFiles(clintPath, 50); console.log(`📊 Total de arquivos carregados: ${testFiles.size}`); // Criar algumas queries de exemplo para testar const testQueries = [ { name: 'balance', fields: [ { name: 'balance', path: ['balance'] }, { name: 'payment_id', path: ['payment_id'] }, { name: 'user_id', path: ['user_id'] }, { name: 'amount', path: ['amount'] }, { name: 'currency', path: ['currency'] }, { name: 'status', path: ['status'] }, { name: 'created_at', path: ['created_at'] }, { name: 'updated_at', path: ['updated_at'] }, ] }, { name: 'user', fields: [ { name: 'id', path: ['id'] }, { name: 'name', path: ['name'] }, { name: 'email', path: ['email'] }, { name: 'avatar', path: ['avatar'] }, { name: 'role', path: ['role'] }, ] } ]; const analyzer = new AdvancedUsageAnalyzer(); console.log('🔍 Iniciando análise...'); analyzer.analyzeUsage(testQueries, testFiles); console.log('✅ Análise completa!'); } testBruteForce().catch(console.error);