ng-packagr
Version:
Compile and package Angular libraries in Angular Package Format (APF)
33 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFileWatch = void 0;
const path = require("path");
const chokidar = require("chokidar");
const rxjs_1 = require("rxjs");
const path_1 = require("../utils/path");
const log = require("../utils/log");
function createFileWatch(projectPath, ignoredPaths = []) {
log.debug(`Watching for changes: projectPath: ${projectPath}, ignoredPaths: ${ignoredPaths}`);
const watch = chokidar.watch(projectPath, {
ignoreInitial: true,
ignored: [...ignoredPaths, /((^[\/\\])\..)|(\.js$)|(\.map$)|(\.metadata\.json|node_modules)/],
persistent: true,
});
const handleFileChange = (event, filePath, observer) => {
log.debug(`Watch: Path changed. Event: ${event}, Path: ${filePath}`);
if (event === 'unlinkDir' || event === 'addDir') {
// we don't need to trigger on directory removed or renamed as chokidar will fire the changes for each file
return;
}
observer.next({
filePath: path_1.ensureUnixPath(path.resolve(filePath)),
event,
});
};
return rxjs_1.Observable.create((observer) => {
watch.on('all', (event, filePath) => handleFileChange(event, filePath, observer));
return () => watch.close();
});
}
exports.createFileWatch = createFileWatch;
//# sourceMappingURL=file-watcher.js.map