Skip to content

[TASK] Migración a TypeScript 6 (desbloquea Dependabot #303) #363

Description

@vgpastor

TypeScript 6 (^5.7.3 → ^6.0.3, Dependabot #303) no es un bump directo: probado en local, el build no pasa sin cambios de config/código. Se documenta aquí para abordarlo como migración dedicada en vez de forzarlo en un bump de dependencia.

Cambios necesarios (hallazgos concretos)

1. Deprecaciones convertidas en error (TS6 endurece de cara a TS7)

  • apps/api/tsconfig.json: baseUrl: "./"TS5101. No hay paths que dependan de él, así que se puede eliminar limpio (fix correcto, no band-aid).
  • packages/warehouse-core/tsconfig.cjs.json: moduleResolution: "Node10"TS5107. Ojo: es el build CJS del paquete dual (CJS+ESM). No se puede cambiar a node16 sin tocar también module: CommonJS (deben ser compatibles), y alterar el emit CJS/ESM que consume apps/api es sutil → validar dist/cjs + dist/esm tras el cambio. Alternativa temporal: "ignoreDeprecations": "6.0" (solo aplaza a TS7).

2. Errores de tipos reales

  • apps/api/src/contexts/files/infrastructure/files.controller.ts (líneas 56 y 104): Express.Multer.FileTS2694: Namespace 'global.Express' has no exported member 'Multer'. TS6 deja de auto-aplicar la augmentación global de @types/multer (^2.1.0). Fix: forzar la referencia (/// <reference types="multer" /> en el fichero, o importar el tipo File de multer directamente).

3. Validación pendiente / caveats

  • apps/web bajo TS6 sin probar: el build de API petó antes de llegar a web → alcance real en web desconocido, puede haber más errores.
  • openapi-typescript@7.13.0 declara peer typescript@^5.x → aparece unmet peer con TS6 (solo afecta a gen:api, no al build, pero conviene esperar/verificar soporte).
  • Correr la suite completa de API (pnpm --filter api test, necesita Docker/Postgres) tras la migración — no validable en el entorno donde se detectó esto.

Bumps a subir (los 4 sitios)

typescript en apps/api, apps/web, packages/api-client, packages/warehouse-core.

Criterios de aceptación

  • Gate completo verde con TS 6 (build api+web, lint, api test, web test).
  • Deprecaciones resueltas de forma real (sin ignoreDeprecations) siempre que no comprometa el emit dual de warehouse-core; si se usa ignoreDeprecations, documentar por qué.
  • Express.Multer.File resuelto sin any.

Referencias

Dependabot #303 (queda a la espera de esta migración).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions