Skip to content

fix(build): develop não compila — Express 5 quebra rotas EvoHub e tsup.config.ts com erro de sintaxe#2635

Merged
gomessguii merged 2 commits into
developfrom
fix/EVO-2097-build-develop
Jul 13, 2026
Merged

fix(build): develop não compila — Express 5 quebra rotas EvoHub e tsup.config.ts com erro de sintaxe#2635
gomessguii merged 2 commits into
developfrom
fix/EVO-2097-build-develop

Conversation

@pastoriniMatheus

Copy link
Copy Markdown

Problema

O develop não compila desde o dd552c77 (upgrade agressivo de dependências — Express 5, Prisma 7, TS 6, ESLint 10). npm run build (tsc --noEmit && tsup) falha em dois pontos independentes, bloqueando qualquer release/deploy a partir do branch:

1. Express 5 mudou a tipagem de req.params — agora é string | string[] (path-to-regexp v8 suporta params repetidos). As duas rotas do control-plane EvoHub passavam req.params.id direto para métodos que exigem string:

evohub.controlplane.router.ts(40,46):  TS2345: 'string | string[]' não atribuível a 'string'
evohub.controlplane.router.ts(117,49): TS2345: (idem)

2. tsup.config.ts com erro de sintaxe — a função esbuildOptions(options) { ... } não era fechada antes do bloco define: (faltava },). O esbuild abortava o parse do próprio config:

✘ [ERROR] Expected ";" but found ":"  — tsup.config.ts:38:32

Correção

  • evohub.controlplane.router.ts: String(req.params.id) nas rotas GET /evohub/channels/:id e POST /evohub/channels/:id/meta-connect. Em runtime o param é sempre um único segmento — o String() só satisfaz a tipagem nova, sem mudança de comportamento.
  • tsup.config.ts: fecha esbuildOptions antes do define (que é opção top-level do tsup, não do esbuild) — intenção original do código preservada.
  • package-lock.json: sincroniza version com o package.json (2.4.0) — lockfile ficou defasado no mesmo upgrade.

Validação

  • npx tsc --noEmit → exit 0 (antes: 2× TS2345)
  • npm run build → "Build success" do tsup (antes: parse error)
  • npm run lint:check → exit 0

Sugestão de follow-up

Adicionar step de npm run build no CI de PR — o develop ficou quebrado sem detecção justamente por não haver esse gate.

Refs EVO-2097

…pendências

- tsup.config.ts: fecha esbuildOptions antes do bloco define (erro de sintaxe
  derrubava o parse do config e abortava o tsup)
- evohub.controlplane.router.ts: normaliza req.params.id com String() — no
  Express 5 req.params é tipado string | string[] e o tsc falhava (TS2345)
- package-lock.json: sincroniza version com o package.json (2.4.0)

Refs EVO-2097

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @pastoriniMatheus, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

The Check Code Quality job has been red since dd552c7 and never reached its
"Check build" step: Prisma 7's prisma.config.ts resolves datasource.url via
env("DATABASE_CONNECTION_URI"), which throws PrismaConfigEnvError when the
variable is absent, and the runner has no .env (the Dockerfile copies
.env.example, which is why image builds got past this point).

prisma generate never opens a connection, so a syntactically valid URI is
enough. Without this the build gate stays dead and the next dependency bump
breaks develop unnoticed, exactly as this one did.

Also aligns the EvoHub req.params.id cast with the convention used by the
other 30 call sites in src (as string), instead of String().
@gomessguii gomessguii merged commit c352731 into develop Jul 13, 2026
4 of 5 checks passed
@gomessguii gomessguii deleted the fix/EVO-2097-build-develop branch July 13, 2026 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants