libs/@guardian/browserslist-config/scripts/included-table.mjs (20 lines of code) (raw):

import browserslist from 'browserslist'; import { normaliseBrowserName } from './normalise-browser-name.mjs'; const includedBrowsers = {}; for (let [browser, version] of browserslist().map((browser) => browser.split(' '), )) { const normalisedBrowser = normaliseBrowserName(browser); includedBrowsers[normalisedBrowser] = [ version, ...(includedBrowsers[normalisedBrowser] ?? []), ]; } // sort object by alpha then descending by usage const sorted = Object.fromEntries(Object.entries(includedBrowsers).sort()); const table = ['| Browser | Versions |', '| ------- | -------- |']; for (let [browser, versions] of Object.entries(sorted)) { table.push(`| ${normaliseBrowserName(browser)} | ${versions.join(', ')} |`); } export const includedTable = table.join('\n'); // in my stats