|  | 
| 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