mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-23 00:52:22 +00:00
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
const {writeFile, readFile} = require('fs/promises');
|
|
const {execSync} = require('child_process');
|
|
const electron = require('electron');
|
|
const path = require('path');
|
|
|
|
/**
|
|
* Returns versions of electron vendors
|
|
* The performance of this feature is very poor and can be improved
|
|
* @see https://github.com/electron/electron/issues/28006
|
|
*
|
|
* @returns {NodeJS.ProcessVersions}
|
|
*/
|
|
function getVendors() {
|
|
const output = execSync(`${electron} -p "JSON.stringify(process.versions)"`, {
|
|
env: {ELECTRON_RUN_AS_NODE: '1'},
|
|
encoding: 'utf-8',
|
|
});
|
|
|
|
return JSON.parse(output);
|
|
}
|
|
|
|
function formattedJSON(obj) {
|
|
return JSON.stringify(obj, null, 2) + '\n';
|
|
}
|
|
|
|
function updateVendors() {
|
|
const electronRelease = getVendors();
|
|
|
|
const nodeMajorVersion = electronRelease.node.split('.')[0];
|
|
const chromeMajorVersion = electronRelease.v8.split('.')[0] + electronRelease.v8.split('.')[1];
|
|
|
|
const packageJSONPath = path.resolve(process.cwd(), 'package.json');
|
|
|
|
return Promise.all([
|
|
writeFile(
|
|
'./electron-vendors.config.json',
|
|
formattedJSON({
|
|
chrome: chromeMajorVersion,
|
|
node: nodeMajorVersion,
|
|
}),
|
|
),
|
|
|
|
readFile(packageJSONPath)
|
|
.then(JSON.parse)
|
|
.then(packageJSON => {
|
|
if (!packageJSON || !Array.isArray(packageJSON.browserslist)) {
|
|
throw new Error(`Can't find browserslist in ${packageJSONPath}`);
|
|
}
|
|
|
|
packageJSON.browserslist = [`Chrome ${chromeMajorVersion}`];
|
|
|
|
return writeFile(packageJSONPath, formattedJSON(packageJSON));
|
|
}),
|
|
]);
|
|
}
|
|
|
|
updateVendors().catch(err => {
|
|
console.error(err);
|
|
process.exit(1);
|
|
});
|