feature: migration dvf en TypeScript

parse.js/sync.js/lib/dotenv.js -> .ts (run via tsx), ajout tsconfig.json,
eslint config TS-enabled (parser tseslint + resolver typescript), devDeps
typescript/typescript-eslint/tsx/eslint-import-resolver-typescript,
scripts package.json en tsx + typecheck, .lintstagedrc *.ts, README en tsx.
Fix securite: escapeId sur les identifiants de colonnes dans sync.ts (au lieu
de backticks bruts) pour ne pas casser/injecter via un en-tete CSV distant.
Suppression du todo.txt audit (finding escapeId traite).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-23 10:18:08 +02:00
parent 1f34ea5d2f
commit 10af5a50e5
10 changed files with 941 additions and 70 deletions
+3 -3
View File
@@ -36,14 +36,14 @@ Voila un sample des données parsées [geodvf/sample.json](geodvf/sample.json)
Détecte les années manquantes en base, télécharge les csv.gz si besoin, parse et insère directement.
node sync.js # importe les années manquantes
node sync.js 2025 # force le re-import d'une année
tsx sync.ts # importe les années manquantes
tsx sync.ts 2025 # force le re-import d'une année
# parse (manuel)
Génère du SQL sur stdout à partir d'un csv.gz (ancien workflow).
node parse.js geodvf/2025.csv.gz | gzip > geodvf/2025.sql.gz
tsx parse.ts geodvf/2025.csv.gz | gzip > geodvf/2025.sql.gz
pv geodvf/2025.sql.gz | gunzip | mysql -u user -ppassword -h host database
```