const fs = require('fs'); const sort = function (a, b) { if (a.toLocaleLowerCase() < b.toLocaleLowerCase()) { return -1; } if (a.toLocaleLowerCase() > b.toLocaleLowerCase()) { return 1; } return 0; }; const iconHTML = (name) => `
`; const header = `
`; const start = async () => { const html = fs.createWriteStream('icons.html', { flags: 'w' }); html.write(header); try { await new Promise((resolve) => { fs.readdir('./icons', async (err, files) => { files .sort(sort) .filter((file) => { if (!/\.svg/.test(file)) { console.log(`invalid extension ${file}`); return false; } return true; }) .forEach(async (file) => { const name = file.replace('.svg', '').toLocaleLowerCase(); console.log(name); html.write(iconHTML(name)); }); resolve(); }); }); } catch (error) { console.error(error); } finally { html.write(fs.readFileSync('./icons.svg')); html.write('
'); html.end(); } }; try { start(); } catch (error) { console.error(error); }