"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.installFileWatcher = void 0; const node_fs_1 = __importDefault(require("node:fs")); const installFileWatcher = ({ file, onChange, }) => { const existedAtBeginning = node_fs_1.default.existsSync(file); let existedBefore = existedAtBeginning; const listener = () => { const existsNow = node_fs_1.default.existsSync(file); if (!existedBefore && existsNow) { onChange('created'); existedBefore = true; return; } if (existedBefore && !existsNow) { onChange('deleted'); existedBefore = false; return; } if (existsNow) { if (typeof Deno !== 'undefined') { // Deno always goes here, even if the file has not changed. // Don't support this for now. return; } onChange('changed'); } }; node_fs_1.default.watchFile(file, { interval: 100 }, listener); return { exists: existedAtBeginning, unwatch: () => { node_fs_1.default.unwatchFile(file, listener); }, }; }; exports.installFileWatcher = installFileWatcher;