|
15 | 15 | * - Chrome APIs are mocked for extension testing outside browser context |
16 | 16 | * - Extension assets served from `./output/chrome-mv3-dev` via `/chrome-mv3-dev` route |
17 | 17 | */ |
18 | | -import { error } from 'node:console' |
| 18 | + |
19 | 19 | import { spawn } from 'node:child_process' |
| 20 | +import { error } from 'node:console' |
20 | 21 | import fs from 'node:fs/promises' |
21 | 22 | import path from 'node:path' |
22 | 23 | import { fileURLToPath } from 'node:url' |
@@ -244,58 +245,57 @@ app.get('/asset/:key/*', async (req, res) => { |
244 | 245 | app.use('/chrome-mv3-dev', express.static(path.join(__dirname, '..', '.output', 'chrome-mv3-dev'))) |
245 | 246 |
|
246 | 247 | // Rebuild endpoint |
247 | | -app.post('/rebuild', async (req, res) => { |
| 248 | +app.post('/rebuild', async (_req, res) => { |
248 | 249 | try { |
249 | 250 | console.log('Rebuild triggered via API') |
250 | | - |
| 251 | + |
251 | 252 | // Run npx wxt build --mode development |
252 | 253 | const buildProcess = spawn('npx', ['wxt', 'build', '--mode', 'development'], { |
253 | 254 | cwd: path.join(__dirname, '..'), |
254 | | - stdio: ['pipe', 'pipe', 'pipe'] |
| 255 | + stdio: ['pipe', 'pipe', 'pipe'], |
255 | 256 | }) |
256 | | - |
| 257 | + |
257 | 258 | let stdout = '' |
258 | 259 | let stderr = '' |
259 | | - |
| 260 | + |
260 | 261 | buildProcess.stdout.on('data', (data) => { |
261 | 262 | stdout += data.toString() |
262 | 263 | console.log('[BUILD]', data.toString().trim()) |
263 | 264 | }) |
264 | | - |
| 265 | + |
265 | 266 | buildProcess.stderr.on('data', (data) => { |
266 | 267 | stderr += data.toString() |
267 | 268 | console.error('[BUILD ERROR]', data.toString().trim()) |
268 | 269 | }) |
269 | | - |
| 270 | + |
270 | 271 | buildProcess.on('close', (code) => { |
271 | 272 | if (code === 0) { |
272 | 273 | console.log('Build completed successfully') |
273 | | - res.json({ success: true, message: 'Build completed successfully' }) |
| 274 | + res.json({ message: 'Build completed successfully', success: true }) |
274 | 275 | } else { |
275 | 276 | console.error('Build failed with code:', code) |
276 | | - res.status(500).json({ |
277 | | - success: false, |
278 | | - message: 'Build failed', |
279 | | - error: stderr || stdout |
| 277 | + res.status(500).json({ |
| 278 | + error: stderr || stdout, |
| 279 | + message: 'Build failed', |
| 280 | + success: false, |
280 | 281 | }) |
281 | 282 | } |
282 | 283 | }) |
283 | | - |
| 284 | + |
284 | 285 | buildProcess.on('error', (error) => { |
285 | 286 | console.error('Failed to start build process:', error) |
286 | | - res.status(500).json({ |
287 | | - success: false, |
288 | | - message: 'Failed to start build process', |
289 | | - error: error.message |
| 287 | + res.status(500).json({ |
| 288 | + error: error.message, |
| 289 | + message: 'Failed to start build process', |
| 290 | + success: false, |
290 | 291 | }) |
291 | 292 | }) |
292 | | - |
293 | 293 | } catch (error) { |
294 | 294 | console.error('Rebuild endpoint error:', error) |
295 | | - res.status(500).json({ |
296 | | - success: false, |
297 | | - message: 'Internal server error', |
298 | | - error: error instanceof Error ? error.message : 'Unknown error' |
| 295 | + res.status(500).json({ |
| 296 | + error: error instanceof Error ? error.message : 'Unknown error', |
| 297 | + message: 'Internal server error', |
| 298 | + success: false, |
299 | 299 | }) |
300 | 300 | } |
301 | 301 | }) |
|
0 commit comments