38296-vm/backend/watcher.js
2026-02-08 20:23:46 +00:00

50 lines
1.3 KiB
JavaScript

const chokidar = require('chokidar');
const { exec } = require('child_process');
const nodemon = require('nodemon');
const nodeEnv = process.env.NODE_ENV || 'dev_stage';
const childEnv = { ...process.env, NODE_ENV: nodeEnv };
const migrationsWatcher = chokidar.watch('./src/db/migrations', {
persistent: true,
ignoreInitial: true
});
migrationsWatcher.on('add', (filePath) => {
console.log(`[DEBUG] New migration file: ${filePath}`);
exec('npm run db:migrate', { env: childEnv }, (error, stdout, stderr) => {
console.log(stdout);
if (error) {
console.error(stderr);
}
});
});
const seedersWatcher = chokidar.watch('./src/db/seeders', {
persistent: true,
ignoreInitial: true
});
seedersWatcher.on('add', (filePath) => {
console.log(`[DEBUG] New seed file: ${filePath}`);
exec('npm run db:seed', { env: childEnv }, (error, stdout, stderr) => {
console.log(stdout);
if (error) {
console.error(stderr);
}
});
});
nodemon({
script: './src/index.js',
env: childEnv,
ignore: ['./src/db/migrations', './src/db/seeders'],
delay: '500'
});
nodemon.on('start', () => {
console.log('Nodemon started');
});
nodemon.on('restart', (files) => {
console.log('Nodemon restarted due changes in:', files);
});