#!/usr/bin/env node /** * @fileoverview * Replaces the SVG count milestone "Over Free SVG icons..." located * at README every time the number of current icons is more than `updateRange` * more than the previous milestone. */ import { promises as fs } from 'node:fs'; import path from 'node:path'; import { getDirnameFromImportMeta, getIconsData } from '../utils.js'; const regexMatcher = /Over\s(\d+)\s/; const updateRange = 100; const __dirname = getDirnameFromImportMeta(import.meta.url); const rootDir = path.resolve(__dirname, '..', '..'); const readmeFile = path.resolve(rootDir, 'README.md'); (async () => { const readmeContent = await fs.readFile(readmeFile, 'utf-8'); let overNIconsInReadme; try { overNIconsInReadme = parseInt(regexMatcher.exec(readmeContent)[1]); } catch (err) { console.error( 'Failed to obtain number of SVG icons of current milestone in README:', err, ); process.exit(1); } const nIcons = (await getIconsData()).length; const newNIcons = overNIconsInReadme + updateRange; if (nIcons <= newNIcons) { process.exit(0); } const newContent = readmeContent.replace(regexMatcher, `Over ${newNIcons} `); await fs.writeFile(readmeFile, newContent); })();