graphql-lint-clint-platform
v1.2.0
Published
GraphQL unused fields linter for Clint platform - Custom patterns and actions.graphql support
Maintainers
Readme
@graphql-lint/clint
🎯 Package específica da Clint - Extensão do GraphQL Lint para detectar padrões customizados da plataforma Clint.
📦 Instalação
npm install @graphql-lint/clint🎯 Funcionalidades Específicas da Clint
- ✅ Detecção de actions.graphql do Hasura
- ✅ Padrões Clint customizados (
clint.entity.method) - ✅ Mapeamento automático (
owner_get_name→clint.owner.getName) - ✅ Análise de uso específica para arquitetura Clint
🔗 Padrões Detectados
Actions GraphQL → Uso no Código
# actions.graphql
type Query {
owner_get_name(id: uuid!): ResultStatusOutput
user_get_profile(id: uuid!): UserProfile
payment_process_order(data: OrderInput!): PaymentResult
}// Uso no código Clint
const ownerName = await clint.owner.getName(id);
const userProfile = await clint.user.getProfile(userId);
const paymentResult = await clint.payment.processOrder(orderData);🚀 Uso
CLI Específico da Clint
npx graphql-lint-clint /caminho/da/clintProgramático
import { ClintGraphQLExtractor, ClintUsageAnalyzer } from "@graphql-lint/clint";
// Extrair actions do actions.graphql
const extractor = new ClintGraphQLExtractor();
const actions = await extractor.extractClintQueries("/projeto/clint");
// Analisar uso dos padrões clint.entity.method
const analyzer = new ClintUsageAnalyzer();
const usageMap = await analyzer.analyzeClintUsagePatterns(
actions,
fileContents
);
console.log(`Actions detectadas: ${actions.length}`);🔧 Conversores de Padrões
import {
actionToClintPattern,
clintPatternToAction,
} from "@graphql-lint/clint";
// Action GraphQL → Padrão Clint
actionToClintPattern("owner_get_name"); // → 'clint.owner.getName'
actionToClintPattern("user_update_profile"); // → 'clint.user.updateProfile'
// Padrão Clint → Action GraphQL
clintPatternToAction("clint.owner.getName"); // → 'owner_get_name'
clintPatternToAction("clint.payment.processOrder"); // → 'payment_process_order'📊 Resultado de Análise
🎯 ANÁLISE CLINT - ACTIONS CUSTOMIZADAS
📊 ESTATÍSTICAS:
🎯 Actions detectadas: 23
📋 Padrões Clint encontrados: 156
✅ Actions em uso: 19 (83%)
❌ Actions não utilizadas: 4 (17%)
❌ ACTIONS NÃO UTILIZADAS:
🔹 owner_get_permissions
• Padrão: clint.owner.getPermissions
• Arquivo: actions.graphql:45
🔹 user_archive_data
• Padrão: clint.user.archiveData
• Arquivo: actions.graphql:78🏗️ Arquitetura
@graphql-lint/clint
├── ClintGraphQLExtractor # Extrai actions.graphql
├── ClintUsageAnalyzer # Analisa padrões clint.*
└── Pattern Converters # action_name ↔ clint.entity.method🔗 Integração com Core
Esta package estende @graphql-lint/core com funcionalidades específicas da Clint:
import { UnusedFieldsLinter } from "@graphql-lint/core";
import { ClintGraphQLExtractor } from "@graphql-lint/clint";
const linter = new UnusedFieldsLinter();
const clintExtractor = new ClintGraphQLExtractor();
// Combinar análise tradicional + Clint
const coreQueries = await linter.extractQueries(projectPath);
const clintActions = await clintExtractor.extractClintQueries(projectPath);
const allQueries = [...coreQueries, ...clintActions];📝 Licença
MIT
