aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/watch.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/watch.js')
-rw-r--r--scripts/watch.js52
1 files changed, 26 insertions, 26 deletions
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 @@
1import { spawn } from 'child_process'; 1import { spawn } from 'node:child_process';
2import { join } from 'path'; 2import path from 'node:path';
3 3
4import { watch } from 'chokidar'; 4import { watch } from 'chokidar';
5import electronPath from 'electron'; 5import electronPath from 'electron';
6import { build as esbuildBuild } from 'esbuild'; 6import { build as esbuildBuild } from 'esbuild';
7import { createServer } from 'vite'; 7import { createServer } from 'vite';
8 8
9import fileURLToDirname from '../config/fileURLToDirname.js'; 9import fileUrlToDirname from '../config/fileUrlToDirname.js';
10 10
11/** @type {string} */ 11/** @type {string} */
12const thisDir = fileURLToDirname(import.meta.url); 12const thisDir = fileUrlToDirname(import.meta.url);
13 13
14/** @type {string} */ 14/** @type {string} */
15const sharedModule = join(thisDir, '../packages/shared/dist/index.mjs'); 15const sharedModule = path.join(thisDir, '../packages/shared/dist/index.mjs');
16 16
17/** @type {string} */ 17/** @type {string} */
18const serviceSharedModule = join( 18const serviceSharedModule = path.join(
19 thisDir, 19 thisDir,
20 '../packages/service-shared/dist/index.mjs', 20 '../packages/service-shared/dist/index.mjs',
21); 21);
@@ -48,7 +48,7 @@ async function setupEsbuildWatcher(packageName, extraPaths, callback) {
48 48
49 const incrementalBuild = await esbuildBuild(config); 49 const incrementalBuild = await esbuildBuild(config);
50 const paths = [ 50 const paths = [
51 join(thisDir, `../packages/${packageName}/src`), 51 path.join(thisDir, `../packages/${packageName}/src`),
52 ...(extraPaths || []), 52 ...(extraPaths || []),
53 ]; 53 ];
54 const watcher = watch(paths, { 54 const watcher = watch(paths, {
@@ -64,18 +64,18 @@ async function setupEsbuildWatcher(packageName, extraPaths, callback) {
64 .rebuild?.() 64 .rebuild?.()
65 .then(() => { 65 .then(() => {
66 if (callback) { 66 if (callback) {
67 console.log(`\u26a1 Reloading package ${packageName}`); 67 console.log(`\u26A1 Reloading package ${packageName}`);
68 callback(); 68 callback();
69 } 69 }
70 }) 70 })
71 .catch((err) => { 71 .catch((error) => {
72 if (typeof err === 'object' && 'errors' in err) { 72 if (typeof error === 'object' && 'errors' in error) {
73 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- We just checked. 73 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- We just checked.
74 const { errors } = err; 74 const { errors } = error;
75 if (Array.isArray(errors)) { 75 if (Array.isArray(errors)) {
76 const errCount = errors.length; 76 const errCount = errors.length;
77 console.error( 77 console.error(
78 '\ud83d\udd25', 78 '\uD83D\uDD25',
79 errCount, 79 errCount,
80 errCount > 1 ? 'errors' : 'error', 80 errCount > 1 ? 'errors' : 'error',
81 'while rebuilding package', 81 'while rebuilding package',
@@ -85,10 +85,10 @@ async function setupEsbuildWatcher(packageName, extraPaths, callback) {
85 } 85 }
86 } 86 }
87 console.error( 87 console.error(
88 '\ud83d\udd25', 88 '\uD83D\uDD25',
89 'error while rebuilding package', 89 'error while rebuilding package',
90 packageName, 90 packageName,
91 err, 91 error,
92 ); 92 );
93 }); 93 });
94 }); 94 });
@@ -106,7 +106,7 @@ async function setupDevServer(packageName) {
106 clearScreen: false, 106 clearScreen: false,
107 }, 107 },
108 }, 108 },
109 configFile: join(thisDir, `../packages/${packageName}/vite.config.js`), 109 configFile: path.join(thisDir, `../packages/${packageName}/vite.config.js`),
110 }); 110 });
111 await viteDevServer.listen(); 111 await viteDevServer.listen();
112 return viteDevServer; 112 return viteDevServer;
@@ -155,16 +155,16 @@ function setupMainPackageWatcher(viteDevServer) {
155 process.env.VITE_DEV_SERVER_URL = `${protocol}//${hostOrDefault}:${portOrDefault}/`; 155 process.env.VITE_DEV_SERVER_URL = `${protocol}//${hostOrDefault}:${portOrDefault}/`;
156 156
157 /** @type {import('child_process').ChildProcessByStdio<null, null, import('stream').Readable> 157 /** @type {import('child_process').ChildProcessByStdio<null, null, import('stream').Readable>
158 | null} */ 158 | undefined} */
159 let spawnProcess = null; 159 let spawnProcess;
160 160
161 return setupEsbuildWatcher( 161 return setupEsbuildWatcher(
162 'main', 162 'main',
163 [serviceSharedModule, sharedModule], 163 [serviceSharedModule, sharedModule],
164 () => { 164 () => {
165 if (spawnProcess !== null) { 165 if (spawnProcess !== undefined) {
166 spawnProcess.kill('SIGINT'); 166 spawnProcess.kill('SIGINT');
167 spawnProcess = null; 167 spawnProcess = undefined;
168 } 168 }
169 169
170 spawnProcess = spawn(String(electronPath), ['.'], { 170 spawnProcess = spawn(String(electronPath), ['.'], {
@@ -188,11 +188,11 @@ async function setupDevEnvironment() {
188 process.env.MODE = 'development'; 188 process.env.MODE = 'development';
189 process.env.NODE_ENV = 'development'; 189 process.env.NODE_ENV = 'development';
190 190
191 /** @type {import('vite').ViteDevServer | null} */ 191 /** @type {import('vite').ViteDevServer | undefined} */
192 let viteDevServer = null; 192 let viteDevServer;
193 /** @type {(event: import('vite').HMRPayload) => void} */ 193 /** @type {(event: import('vite').HMRPayload) => void} */
194 const sendEvent = (event) => { 194 const sendEvent = (event) => {
195 if (viteDevServer !== null) { 195 if (viteDevServer !== undefined) {
196 viteDevServer.ws.send(event); 196 viteDevServer.ws.send(event);
197 } 197 }
198 }; 198 };
@@ -216,16 +216,16 @@ async function setupDevEnvironment() {
216 ), 216 ),
217 ]); 217 ]);
218 218
219 if (viteDevServer === null) { 219 if (viteDevServer === undefined) {
220 console.error('Failed to create vite dev server'); 220 console.error('Failed to create vite dev server');
221 return; 221 return;
222 } 222 }
223 223
224 console.log('\ud83c\udf80 Sophie is starting up'); 224 console.log('\uD83C\uDF80 Sophie is starting up');
225 await setupMainPackageWatcher(viteDevServer); 225 await setupMainPackageWatcher(viteDevServer);
226} 226}
227 227
228setupDevEnvironment().catch((err) => { 228setupDevEnvironment().catch((error) => {
229 console.error(err); 229 console.error(error);
230 process.exit(1); 230 process.exit(1);
231}); 231});