From 8a8f6a66a4369f2a417bdc48ecd97276b2b52560 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 30 Mar 2024 14:27:18 +0100 Subject: [PATCH] improve logging + skip folders that throw --- packages/sampler/sample-server.mjs | 31 +++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/sampler/sample-server.mjs b/packages/sampler/sample-server.mjs index dfed3b5f..a3d718a3 100644 --- a/packages/sampler/sample-server.mjs +++ b/packages/sampler/sample-server.mjs @@ -21,8 +21,19 @@ async function getFilesInDirectory(directory) { for (const dirent of dirents) { const fullPath = join(directory, dirent.name); if (dirent.isDirectory()) { - const subFiles = await getFilesInDirectory(fullPath); - files = files.concat(subFiles); + if (dirent.name.startsWith('.')) { + console.warn(`ignore hidden folder: ${fullPath}`); + continue; + } + try { + const subFiles = (await getFilesInDirectory(fullPath)).filter((f) => + ['wav', 'mp3', 'ogg'].includes(f.split('.').slice(-1)[0].toLowerCase()), + ); + files = files.concat(subFiles); + console.log(`${dirent.name} (${subFiles.length})`); + } catch (err) { + console.warn(`skipped due to error: ${fullPath}`); + } } else { files.push(fullPath); } @@ -34,15 +45,13 @@ async function getBanks(directory) { // const directory = resolve(__dirname, '.'); let files = await getFilesInDirectory(directory); let banks = {}; - files = files - .filter((f) => ['wav', 'mp3', 'ogg'].includes(f.split('.').slice(-1)[0].toLowerCase())) - .map((url) => { - const [bank] = url.split('/').slice(-2); - banks[bank] = banks[bank] || []; - url = url.replace(directory, ''); - banks[bank].push(url); - return url; - }); + files = files.map((url) => { + const [bank] = url.split('/').slice(-2); + banks[bank] = banks[bank] || []; + url = url.replace(directory, ''); + banks[bank].push(url); + return url; + }); banks._base = `http://localhost:5432`; return { banks, files }; }