pulsar/script/lib/check-chromedriver-version.js
steven nguyen 9e6302f7a2 fix/deps: min versions of electron-chromedriver...
... and electron-snapshot to the current electron version (v11)
2022-02-07 14:33:33 +00:00

47 lines
1.8 KiB
JavaScript

'use strict';
const buildMetadata = require('../package.json');
const semver = require('semver');
const chromedriverMetadataPath = require('electron-chromedriver/package.json');
const mksnapshotMetadataPath = require('electron-mksnapshot/package.json');
// The enviroment variable is usually set in install-script-dependencies.js
const majorElectronVersion = semver.major(
process.env.ELECTRON_CUSTOM_VERSION ||
require('../config').appMetadata.electronVersion
);
module.exports = function() {
// Chromedriver should be at least v9.0.0
// Mksnapshot should be at least v9.0.2
const chromedriverVer = buildMetadata.dependencies['electron-chromedriver'];
const mksnapshotVer = buildMetadata.dependencies['electron-mksnapshot'];
const chromedriverActualVer = chromedriverMetadataPath.version;
const mksnapshotActualVer = mksnapshotMetadataPath.version;
// Always use caret on electron-chromedriver so that it can pick up the best minor/patch versions
if (!chromedriverVer.startsWith('^')) {
throw new Error(
`electron-chromedriver version in script/package.json should start with a caret to match latest patch version.`
);
}
if (!mksnapshotVer.startsWith('^')) {
throw new Error(
`electron-mksnapshot version in script/package.json should start with a caret to match latest patch version.`
);
}
if (!semver.satisfies(chromedriverActualVer, `>=${majorElectronVersion}`)) {
throw new Error(
`electron-chromedriver should be at least v${majorElectronVersion} to support the ELECTRON_CUSTOM_VERSION environment variable.`
);
}
if (!semver.satisfies(mksnapshotActualVer, `>=${majorElectronVersion}`)) {
throw new Error(
`electron-mksnapshot should be at least v${majorElectronVersion} to support the ELECTRON_CUSTOM_VERSION environment variable.`
);
}
};