mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-29 19:08:50 +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);
|
||
|
});
|