diff options
Diffstat (limited to 'scripts/watch.js')
-rw-r--r-- | scripts/watch.js | 52 |
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 @@ | |||
1 | import { spawn } from 'child_process'; | 1 | import { spawn } from 'node:child_process'; |
2 | import { join } from 'path'; | 2 | import path from 'node:path'; |
3 | 3 | ||
4 | import { watch } from 'chokidar'; | 4 | import { watch } from 'chokidar'; |
5 | import electronPath from 'electron'; | 5 | import electronPath from 'electron'; |
6 | import { build as esbuildBuild } from 'esbuild'; | 6 | import { build as esbuildBuild } from 'esbuild'; |
7 | import { createServer } from 'vite'; | 7 | import { createServer } from 'vite'; |
8 | 8 | ||
9 | import fileURLToDirname from '../config/fileURLToDirname.js'; | 9 | import fileUrlToDirname from '../config/fileUrlToDirname.js'; |
10 | 10 | ||
11 | /** @type {string} */ | 11 | /** @type {string} */ |
12 | const thisDir = fileURLToDirname(import.meta.url); | 12 | const thisDir = fileUrlToDirname(import.meta.url); |
13 | 13 | ||
14 | /** @type {string} */ | 14 | /** @type {string} */ |
15 | const sharedModule = join(thisDir, '../packages/shared/dist/index.mjs'); | 15 | const sharedModule = path.join(thisDir, '../packages/shared/dist/index.mjs'); |
16 | 16 | ||
17 | /** @type {string} */ | 17 | /** @type {string} */ |
18 | const serviceSharedModule = join( | 18 | const 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 | ||
228 | setupDevEnvironment().catch((err) => { | 228 | setupDevEnvironment().catch((error) => { |
229 | console.error(err); | 229 | console.error(error); |
230 | process.exit(1); | 230 | process.exit(1); |
231 | }); | 231 | }); |