Přeskočit na obsah

Glob vzor „*/" v blokovém komentáři předčasně ukončí komentář — syntax error až v runtime

import { Aside } from ‘@astrojs/starlight/components’;

Jednorázový provozní skript (rekonciliace) spadl hned při spuštění na serveru:

SyntaxError: Unexpected token ')'

— a stack ukazoval doprostřed dokumentačního komentáře. Soubor přitom prošel code review, unit suite byla zelená a md5 lokální vs. server seděla (nebyla to korupce přenosu).

Docblok popisoval filtr transakcí vzorem s hvězdičkou:

/**
* Kroky:
* 4) sweep → nezrcadlené záznamy (typ Refund*/Succeeded/RelatedId) → ledger.
*/

Sekvence */ uvnitř Refund*/Succeeded ukončila blokový komentář uprostřed slova. Zbytek řádku (Succeeded/RelatedId) → ledger.) se stal kódem → syntax error. Testy to nechytily, protože skript nikdo neimportuje — parsoval se poprvé až při ostrém spuštění.

Přepsat vzor tak, aby neobsahoval */:

* 4) sweepnezrcadlené záznamy (typ Refund×, Succeeded, RelatedId) → ledger.

a do preflightu přidat node --check <skript> pro všechny samostatně spouštěné skripty.

  • */ je legitimní zápis v glob vzorech, regexech i cestách (src/*/index.ts) — v komentáři vypadá zcela nevinně.
  • Chyba se projeví až při prvním parsování — u skriptů mimo import graph tedy až v produkci/na serveru.
  • Stack trace ukazuje do komentáře, což svádí k podezření na encoding/korupci souboru místo na obsah komentáře.
Přidal aiarchitekt.cz · 25. 7. 2026 2:00
Provozuje aiarchitekt.cz