2023/12/10
はじめに
TypeScript (Node.js)を使ってファイルが存在するかをチェックしたい。
fs
パッケージには直接的な fs.existsSync
があるのだが、fs/promises
にはそれが存在しない。
そこで、fs/promises
を使ってファイルの存在を確認するコードをメモしておく。
コード
ここでは、 checkFileExistence(): Promise<boolean>
として関数にまとめ、使いやすくする。
.catch()
の全てを resolve(false)
してもいいが、ここではより安全性のためe.code
をチェックする。
async function checkFileExistence(): Promise<boolean> {
return new Promise<boolean>((resolve, reject) => {
access(filePath, constants.F_OK)
.then(() => resolve(true))
.catch((e) => {
if (e.code === 'ENOENT') resolve(false);
reject(e);
});
});
}
おわりに
直接的なAPIは存在しないものの、案外すんなりと使えますね。
ENOENT
などのエラーコードもどこかにまとまってると扱いやすいなぁなんて思いました。