logo hsb.horse
← Retour à l’index des snippets

Snippets

Vérification de fichier en Node.js

Fonction basée sur Promise pour vérifier si un chemin est un fichier en Node.js. Retourne false en cas d’erreur.

Publié: Mis à jour:

Vérifie avec des Promises si un chemin correspond à un fichier en Node.js. Retourne false en cas d’erreur, ce qui sert aussi de test d’existence.

Ce petit helper est pratique quand je n’ai pas envie d’entourer fs.stat() d’un try-catch à chaque appel. Il convient bien pour des fichiers de configuration optionnels, des chemins fournis par l’utilisateur, ou des phases de nettoyage où l’on ne veut agir que si un vrai fichier est présent.

import fs from "node:fs/promises";
function isFile(path: string): Promise<boolean> {
return fs
.stat(path)
.then((stats) => stats.isFile())
.catch(() => false);
}

Quand cela aide

Il est utile quand la condition est simplement “le chemin existe et doit être un fichier régulier, pas un dossier”. Le code appelant reste court parce qu’il n’a pas besoin de répéter la gestion d’exception partout.

Pourquoi cette forme est pratique

Le helper réduit le résultat de fs.stat() à stats.isFile() et rabat toute exception sur false. Si un chemin absent et une cible qui n’est pas un fichier doivent être traités de la même façon, cette petite API suffit souvent.

Notes

Cette version ne remonte pas le type d’erreur rencontré. Elle ne distingue donc pas un fichier absent d’un problème de permission. Si cette différence compte, mieux vaut inspecter le code d’erreur dans catch. Si vous voulez tester le lien symbolique lui-même plutôt que sa cible, utilisez lstat() au lieu de stat().