| 17 | }; |
| 18 | |
| 19 | const getFirefoxReleases = async (everything = false) => { |
| 20 | const releaseDataURL = `https://nucleus.mozilla.org/rna/all-releases.json${everything ? '?all=true' : ''}`; |
| 21 | if (values.verbose) { |
| 22 | console.log(`Fetching Firefox release data from ${releaseDataURL}.`); |
| 23 | } |
| 24 | const releaseData = await fetch(releaseDataURL); |
| 25 | if (!releaseData.ok) { |
| 26 | console.error(`Failed to fetch ${releaseDataURL}: ${releaseData.status}: ${releaseData.statusText}.`); |
| 27 | process.exit(-1); |
| 28 | } |
| 29 | return (await releaseData.json()).filter((release) => { |
| 30 | // We're only interested in public releases of Firefox. |
| 31 | return (release.product === 'Firefox' && release.channel === 'Release' && release.is_public === true); |
| 32 | }).sort((a, b) => { |
| 33 | // Sort results by release date. |
| 34 | return new Date(b.release_date) - new Date(a.release_date); |
| 35 | }); |
| 36 | }; |
| 37 | |
| 38 | const getFirefoxRelease = async (version) => { |
| 39 | let releases = await getFirefoxReleases(); |