babel/packages/babel-compat-data/scripts/chromium-to-electron.js
Huáng Jùnliàng 6d87f46a7a
Bump compat-table (#12073)
* chore: update compat-table data source

* refactor: use chromeVersions from electron-to-chromium

* chore: deduplicate yarn.lock
2020-09-24 16:28:26 -04:00

33 lines
1.2 KiB
JavaScript

const { versions } = require("electron-to-chromium");
// todo: we should have imported `chromiumVersions` from `require("electron-to-chromium").chromiumVersions`,
// however the data is inconsistent with `require("electron-to-chromium").versions`.
// see https://github.com/Kilian/electron-to-chromium/pull/36
const chromiumVersions = {};
for (const electronVersion of Object.keys(versions)) {
chromiumVersions[versions[electronVersion]] =
chromiumVersions[versions[electronVersion]] || electronVersion;
}
const chromiumVersionList = Object.keys(chromiumVersions);
function chromiumToElectron(version) {
if (chromiumVersions[version]) {
return chromiumVersions[version];
}
const supportedVersion = chromiumVersionList.concat(version);
supportedVersion.sort((a, b) => +a - +b);
const nextSupportedVersion =
supportedVersion[supportedVersion.indexOf(version) + 1];
return chromiumVersions[nextSupportedVersion];
}
function addElectronSupportFromChromium(supportData) {
if (supportData.chrome) {
const electronVersion = chromiumToElectron(supportData.chrome);
if (electronVersion) {
supportData.electron = electronVersion;
}
}
}
exports.addElectronSupportFromChromium = addElectronSupportFromChromium;