@notes-sync/service
Version:
Background service for AI-powered note synchronization
44 lines • 1.47 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileWatcher = void 0;
const chokidar_1 = __importDefault(require("chokidar"));
const logger_1 = require("./logger");
class FileWatcher {
start(notesDir, glob, ignore, onSync) {
logger_1.Logger.log(`Starting file watcher for: ${notesDir}`);
this.watcher = chokidar_1.default.watch(glob, {
cwd: notesDir,
ignored: ignore,
ignoreInitial: true,
persistent: true,
awaitWriteFinish: { stabilityThreshold: 300, pollInterval: 50 },
});
this.watcher
.on('add', path => {
logger_1.Logger.log(`File added: ${path}`);
onSync();
})
.on('change', path => {
logger_1.Logger.log(`File changed: ${path}`);
onSync();
})
.on('unlink', path => {
logger_1.Logger.log(`File removed: ${path}`);
onSync();
})
.on('error', err => {
logger_1.Logger.error('File watcher error:', err);
});
}
stop() {
if (this.watcher) {
this.watcher.close();
logger_1.Logger.log('File watcher stopped');
}
}
}
exports.FileWatcher = FileWatcher;
//# sourceMappingURL=watcher.js.map