aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/update-electron-vendors.js
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-01-09 22:16:29 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-01-09 22:17:26 +0100
commitfb7118ff1c8f0dcd61f15e51b193512283d83fa1 (patch)
tree721cee6a64b44a56b7f05f39750a65cda5fb4ef6 /scripts/update-electron-vendors.js
parentbuild: Add eslint-plugin-jest (diff)
downloadsophie-fb7118ff1c8f0dcd61f15e51b193512283d83fa1.tar.gz
sophie-fb7118ff1c8f0dcd61f15e51b193512283d83fa1.tar.zst
sophie-fb7118ff1c8f0dcd61f15e51b193512283d83fa1.zip
build: Add eslint-plugin-unicorn
Signed-off-by: Kristóf Marussy <kristof@marussy.com>
Diffstat (limited to 'scripts/update-electron-vendors.js')
-rw-r--r--scripts/update-electron-vendors.js65
1 files changed, 0 insertions, 65 deletions
diff --git a/scripts/update-electron-vendors.js b/scripts/update-electron-vendors.js
deleted file mode 100644
index 6ff5c06..0000000
--- a/scripts/update-electron-vendors.js
+++ /dev/null
@@ -1,65 +0,0 @@
1import { execSync } from 'child_process';
2import { writeFile } from 'fs/promises';
3import { join } from 'path';
4
5import electronPath from 'electron';
6
7import fileURLToDirname from '../config/fileURLToDirname.js';
8
9const thisDir = fileURLToDirname(import.meta.url);
10
11/**
12 * Returns versions of electron vendors
13 * The performance of this feature is very poor and can be improved
14 * @see https://github.com/electron/electron/issues/28006
15 *
16 * @returns {NodeJS.ProcessVersions}
17 */
18function getVendors() {
19 const output = execSync(
20 `${electronPath.toString()} -p "JSON.stringify(process.versions)"`,
21 {
22 env: { ELECTRON_RUN_AS_NODE: '1' },
23 encoding: 'utf-8',
24 },
25 );
26
27 // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- Read untyped output.
28 return JSON.parse(output);
29}
30
31/**
32 * Generates the `.browserlistrc` and `.electron-vendors.cache.json` files.
33 *
34 * @returns Promise<void>
35 */
36function updateVendors() {
37 const electronRelease = getVendors();
38
39 const nodeMajorVersion = electronRelease.node.split('.')[0];
40 const chromeMajorVersion =
41 electronRelease.v8.split('.')[0] + electronRelease.v8.split('.')[1];
42
43 const browserslistrcPath = join(thisDir, '../.browserslistrc');
44
45 return Promise.all([
46 writeFile(
47 join(thisDir, '../.electron-vendors.cache.json'),
48 `${JSON.stringify(
49 {
50 chrome: chromeMajorVersion,
51 node: nodeMajorVersion,
52 },
53 null,
54 2,
55 )}\n`,
56 ),
57
58 writeFile(browserslistrcPath, `Chrome ${chromeMajorVersion}\n`, 'utf8'),
59 ]);
60}
61
62updateVendors().catch((err) => {
63 console.error(err);
64 process.exit(1);
65});