Adds an endpoint for rebuilding the app, so that it can be triggered from the UI
This commit is contained in:
31
services/rebuild-app.js
Normal file
31
services/rebuild-app.js
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* This script programmatically triggers a production build
|
||||
* and responds with the status, message and full output
|
||||
*/
|
||||
const { exec } = require('child_process');
|
||||
|
||||
module.exports = () => new Promise((resolve, reject) => {
|
||||
const buildProcess = exec('npm run build');
|
||||
|
||||
let output = '';
|
||||
|
||||
buildProcess.stdout.on('data', (data) => {
|
||||
process.stdout.write(data);
|
||||
output += data;
|
||||
});
|
||||
|
||||
buildProcess.on('error', (error) => {
|
||||
reject(Error({
|
||||
success: false,
|
||||
error,
|
||||
output,
|
||||
}));
|
||||
});
|
||||
|
||||
buildProcess.on('exit', (response) => {
|
||||
const success = response === 0;
|
||||
const message = `Build process exited with ${response}: `
|
||||
+ `${success ? 'Success' : 'Possible Error'}`;
|
||||
resolve({ success, message, output });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user