From fb7118ff1c8f0dcd61f15e51b193512283d83fa1 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 9 Jan 2022 22:16:29 +0100 Subject: build: Add eslint-plugin-unicorn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kristóf Marussy --- scripts/build.js | 12 +++---- scripts/update-electron-vendors.js | 65 -------------------------------------- scripts/updateElectronVendors.js | 65 ++++++++++++++++++++++++++++++++++++++ scripts/watch.js | 52 +++++++++++++++--------------- 4 files changed, 97 insertions(+), 97 deletions(-) delete mode 100644 scripts/update-electron-vendors.js create mode 100644 scripts/updateElectronVendors.js (limited to 'scripts') diff --git a/scripts/build.js b/scripts/build.js index 88267e5..66a1506 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -1,11 +1,11 @@ -import { join } from 'path'; +import path from 'node:path'; import { build as esbuildBuild } from 'esbuild'; import { build as viteBuild } from 'vite'; -import fileURLToDirname from '../config/fileURLToDirname.js'; +import fileUrlToDirname from '../config/fileUrlToDirname.js'; -const thisDir = fileURLToDirname(import.meta.url); +const thisDir = fileUrlToDirname(import.meta.url); /** * @param {string} packageName @@ -26,7 +26,7 @@ async function buildPackageEsbuild(packageName) { */ function buildPackageVite(packageName) { return viteBuild({ - configFile: join(thisDir, `../packages/${packageName}/vite.config.js`), + configFile: path.join(thisDir, `../packages/${packageName}/vite.config.js`), }); } @@ -52,7 +52,7 @@ function buildAll() { ]); } -buildAll().catch((err) => { - console.error(err); +buildAll().catch((error) => { + console.error(error); process.exit(1); }); 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 @@ -import { execSync } from 'child_process'; -import { writeFile } from 'fs/promises'; -import { join } from 'path'; - -import electronPath from 'electron'; - -import fileURLToDirname from '../config/fileURLToDirname.js'; - -const thisDir = fileURLToDirname(import.meta.url); - -/** - * 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( - `${electronPath.toString()} -p "JSON.stringify(process.versions)"`, - { - env: { ELECTRON_RUN_AS_NODE: '1' }, - encoding: 'utf-8', - }, - ); - - // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- Read untyped output. - return JSON.parse(output); -} - -/** - * Generates the `.browserlistrc` and `.electron-vendors.cache.json` files. - * - * @returns Promise - */ -function updateVendors() { - const electronRelease = getVendors(); - - const nodeMajorVersion = electronRelease.node.split('.')[0]; - const chromeMajorVersion = - electronRelease.v8.split('.')[0] + electronRelease.v8.split('.')[1]; - - const browserslistrcPath = join(thisDir, '../.browserslistrc'); - - return Promise.all([ - writeFile( - join(thisDir, '../.electron-vendors.cache.json'), - `${JSON.stringify( - { - chrome: chromeMajorVersion, - node: nodeMajorVersion, - }, - null, - 2, - )}\n`, - ), - - writeFile(browserslistrcPath, `Chrome ${chromeMajorVersion}\n`, 'utf8'), - ]); -} - -updateVendors().catch((err) => { - console.error(err); - process.exit(1); -}); diff --git a/scripts/updateElectronVendors.js b/scripts/updateElectronVendors.js new file mode 100644 index 0000000..5e8ab36 --- /dev/null +++ b/scripts/updateElectronVendors.js @@ -0,0 +1,65 @@ +import { execSync } from 'node:child_process'; +import { writeFile } from 'node:fs/promises'; +import path from 'node:path'; + +import electronPath from 'electron'; + +import fileUrlToDirname from '../config/fileUrlToDirname.js'; + +const thisDir = fileUrlToDirname(import.meta.url); + +/** + * 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( + `${electronPath.toString()} -p "JSON.stringify(process.versions)"`, + { + env: { ELECTRON_RUN_AS_NODE: '1' }, + encoding: 'utf-8', + }, + ); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- Read untyped output. + return JSON.parse(output); +} + +/** + * Generates the `.browserlistrc` and `.electron-vendors.cache.json` files. + * + * @returns Promise + */ +function updateVendors() { + const electronRelease = getVendors(); + + const nodeMajorVersion = electronRelease.node.split('.')[0]; + const chromeMajorVersion = + electronRelease.v8.split('.')[0] + electronRelease.v8.split('.')[1]; + + const browserslistrcPath = path.join(thisDir, '../.browserslistrc'); + + return Promise.all([ + writeFile( + path.join(thisDir, '../.electron-vendors.cache.json'), + `${JSON.stringify( + { + chrome: chromeMajorVersion, + node: nodeMajorVersion, + }, + undefined, + 2, + )}\n`, + ), + + writeFile(browserslistrcPath, `Chrome ${chromeMajorVersion}\n`, 'utf8'), + ]); +} + +updateVendors().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/scripts/watch.js b/scripts/watch.js index cf5dbfd..455cfd9 100644 --- a/scripts/watch.js +++ b/scripts/watch.js @@ -1,21 +1,21 @@ -import { spawn } from 'child_process'; -import { join } from 'path'; +import { spawn } from 'node:child_process'; +import path from 'node:path'; import { watch } from 'chokidar'; import electronPath from 'electron'; import { build as esbuildBuild } from 'esbuild'; import { createServer } from 'vite'; -import fileURLToDirname from '../config/fileURLToDirname.js'; +import fileUrlToDirname from '../config/fileUrlToDirname.js'; /** @type {string} */ -const thisDir = fileURLToDirname(import.meta.url); +const thisDir = fileUrlToDirname(import.meta.url); /** @type {string} */ -const sharedModule = join(thisDir, '../packages/shared/dist/index.mjs'); +const sharedModule = path.join(thisDir, '../packages/shared/dist/index.mjs'); /** @type {string} */ -const serviceSharedModule = join( +const serviceSharedModule = path.join( thisDir, '../packages/service-shared/dist/index.mjs', ); @@ -48,7 +48,7 @@ async function setupEsbuildWatcher(packageName, extraPaths, callback) { const incrementalBuild = await esbuildBuild(config); const paths = [ - join(thisDir, `../packages/${packageName}/src`), + path.join(thisDir, `../packages/${packageName}/src`), ...(extraPaths || []), ]; const watcher = watch(paths, { @@ -64,18 +64,18 @@ async function setupEsbuildWatcher(packageName, extraPaths, callback) { .rebuild?.() .then(() => { if (callback) { - console.log(`\u26a1 Reloading package ${packageName}`); + console.log(`\u26A1 Reloading package ${packageName}`); callback(); } }) - .catch((err) => { - if (typeof err === 'object' && 'errors' in err) { + .catch((error) => { + if (typeof error === 'object' && 'errors' in error) { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- We just checked. - const { errors } = err; + const { errors } = error; if (Array.isArray(errors)) { const errCount = errors.length; console.error( - '\ud83d\udd25', + '\uD83D\uDD25', errCount, errCount > 1 ? 'errors' : 'error', 'while rebuilding package', @@ -85,10 +85,10 @@ async function setupEsbuildWatcher(packageName, extraPaths, callback) { } } console.error( - '\ud83d\udd25', + '\uD83D\uDD25', 'error while rebuilding package', packageName, - err, + error, ); }); }); @@ -106,7 +106,7 @@ async function setupDevServer(packageName) { clearScreen: false, }, }, - configFile: join(thisDir, `../packages/${packageName}/vite.config.js`), + configFile: path.join(thisDir, `../packages/${packageName}/vite.config.js`), }); await viteDevServer.listen(); return viteDevServer; @@ -155,16 +155,16 @@ function setupMainPackageWatcher(viteDevServer) { process.env.VITE_DEV_SERVER_URL = `${protocol}//${hostOrDefault}:${portOrDefault}/`; /** @type {import('child_process').ChildProcessByStdio - | null} */ - let spawnProcess = null; + | undefined} */ + let spawnProcess; return setupEsbuildWatcher( 'main', [serviceSharedModule, sharedModule], () => { - if (spawnProcess !== null) { + if (spawnProcess !== undefined) { spawnProcess.kill('SIGINT'); - spawnProcess = null; + spawnProcess = undefined; } spawnProcess = spawn(String(electronPath), ['.'], { @@ -188,11 +188,11 @@ async function setupDevEnvironment() { process.env.MODE = 'development'; process.env.NODE_ENV = 'development'; - /** @type {import('vite').ViteDevServer | null} */ - let viteDevServer = null; + /** @type {import('vite').ViteDevServer | undefined} */ + let viteDevServer; /** @type {(event: import('vite').HMRPayload) => void} */ const sendEvent = (event) => { - if (viteDevServer !== null) { + if (viteDevServer !== undefined) { viteDevServer.ws.send(event); } }; @@ -216,16 +216,16 @@ async function setupDevEnvironment() { ), ]); - if (viteDevServer === null) { + if (viteDevServer === undefined) { console.error('Failed to create vite dev server'); return; } - console.log('\ud83c\udf80 Sophie is starting up'); + console.log('\uD83C\uDF80 Sophie is starting up'); await setupMainPackageWatcher(viteDevServer); } -setupDevEnvironment().catch((err) => { - console.error(err); +setupDevEnvironment().catch((error) => { + console.error(error); process.exit(1); }); -- cgit v1.2.3-54-g00ecf