Files
scoreko-dev/docs/refactor/PHASE_1_SUMMARY.md
Pandipipas 3a6289a2ea feat: implement start.gg OAuth integration and services
- Added start.gg OAuth server and session management in startgg.ts
- Implemented functions to fetch recent tournaments and tournament players from start.gg
- Created utility functions for string and country code handling
- Introduced Challonge OAuth server and services for tournament data fetching
- Refactored shared types and utility functions for better organization
- Updated scoreboard graphics to use new country resolution utilities
- Removed legacy startgg.ts file to streamline codebase
2026-06-04 17:42:44 +02:00

1.7 KiB

Summary: Phase 1 (Base Architecture)

Objetivos Completados

  • Reorganización Estructural: Se movieron utilidades y tipos compartidos a src/shared/utils/ y src/shared/types/.
  • Desacoplamiento del Backend: Se eliminaron los monolitos startgg.ts y challonge.ts de src/extension/.
  • Creación de Capas:
    • api/: Llamadas aisladas de GraphQL y HTTP (startgg.api.ts, challonge.api.ts).
    • oauth/: Lógica de autenticación OAuth manejada independientemente.
    • services/: Lógica de dominio pura para transformar y parsear respuestas (ej. extraer RecentTournament y ImportedPlayer).
    • nodecg-bindings/: Registros exclusivos de nodecg.listenFor(...) sin mezclar lógica de dominio.
  • Tipado Fuerte: Se crearon interfaces centralizadas en src/shared/types/domain.ts asegurando tipos explícitos y la ausencia de any.
  • Consolidación: Duplicidades como la resolución de códigos de país y parseo de strings (ej. getStringProp) se extrajeron a utilidades de shared.

Ajustes Técnicos Realizados

  • El tsconfig.extension.json fue ajustado (rootDir: "./src", outDir: "./") para permitir que la compilación backend (tsc) incluya e integre los archivos de src/shared/ de forma nativa sin romper la estructura requerida por NodeCG (que espera los archivos compilados del backend en el directorio raíz extension/).
  • Actualización de todos los imports en vistas (Players.vue), composables (useCountryFilter.ts) y gráficos (main.vue).
  • Compilación (npm run build) verificada y validada sin errores de TypeScript.

Siguientes Pasos Requeridos

  • Avanzar a la Fase 2: Refactor del Estado del Dashboard (Stores), simplificando store-sync.ts e hidratando Pinia directamente desde los Replicants.