Skip to content

Commit

Permalink
⚡ Implement debounce, to stop dup rebuild when file meta changes in L…
Browse files Browse the repository at this point in the history
…inux
  • Loading branch information
Lissy93 committed Mar 4, 2024
1 parent a6a2ee2 commit 1f6bb48
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions services/watch-for-changes.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
const fs = require('fs');
const { exec } = require('child_process');
const path = require('path');

const configFile = './public/conf.yml';
const configFile = path.resolve(__dirname, './public/conf.yml');
let timeout = null;

console.log(`Watching for file changes on ${configFile}`);

fs.watch(configFile, (eventType, filename) => {
if (filename && eventType === 'change') {
console.log(`${filename} file Changed, running build...`);
exec('yarn build', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
console.log(`${filename} file Changed, preparing to build...`);
// Clear the existing timeout, if there is one
if (timeout) clearTimeout(timeout);
// Set a new timeout
timeout = setTimeout(() => {
console.log('Running build...');
exec('yarn build', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
}, 1000); // Adjust the debounce time as necessary, here it's 1000 milliseconds (1 second)
}
});

0 comments on commit 1f6bb48

Please sign in to comment.