PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/nx/src/daemon/server/file-watching
Просмотр файла: file-watcher-sockets.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.notifyFileWatcherSockets = exports.hasRegisteredFileWatcherSockets = exports.removeRegisteredFileWatcherSocket = exports.registeredFileWatcherSockets = void 0;
const tslib_1 = require("tslib");
const project_graph_utils_1 = require("../../../utils/project-graph-utils");
const promised_based_queue_1 = require("../../../utils/promised-based-queue");
const project_graph_incremental_recomputation_1 = require("../project-graph-incremental-recomputation");
const server_1 = require("../server");
const changed_projects_1 = require("./changed-projects");
const queue = new promised_based_queue_1.PromisedBasedQueue();
exports.registeredFileWatcherSockets = [];
function removeRegisteredFileWatcherSocket(socket) {
exports.registeredFileWatcherSockets = exports.registeredFileWatcherSockets.filter((watcher) => watcher.socket !== socket);
}
exports.removeRegisteredFileWatcherSocket = removeRegisteredFileWatcherSocket;
function hasRegisteredFileWatcherSockets() {
return exports.registeredFileWatcherSockets.length > 0;
}
exports.hasRegisteredFileWatcherSockets = hasRegisteredFileWatcherSockets;
function notifyFileWatcherSockets(createdFiles, updatedFiles, deletedFiles) {
if (!hasRegisteredFileWatcherSockets()) {
return;
}
queue.sendToQueue(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
const projectAndGlobalChanges = (0, changed_projects_1.getProjectsAndGlobalChanges)(createdFiles, updatedFiles, deletedFiles);
yield Promise.all(exports.registeredFileWatcherSockets.map(({ socket, config }) => {
const changedProjects = [];
const changedFiles = [];
if (config.watchProjects === 'all') {
for (const [projectName, projectFiles] of Object.entries(projectAndGlobalChanges.projects)) {
changedProjects.push(projectName);
changedFiles.push(...projectFiles);
}
}
else {
const watchedProjects = new Set(config.watchProjects);
if (config.includeDependentProjects) {
for (const project of config.watchProjects) {
for (const dep of (0, project_graph_utils_1.findAllProjectNodeDependencies)(project, project_graph_incremental_recomputation_1.currentProjectGraphCache)) {
watchedProjects.add(dep);
}
}
}
for (const watchedProject of watchedProjects) {
if (!!projectAndGlobalChanges.projects[watchedProject]) {
changedProjects.push(watchedProject);
changedFiles.push(...projectAndGlobalChanges.projects[watchedProject]);
}
}
}
if (config.includeGlobalWorkspaceFiles) {
changedFiles.push(...projectAndGlobalChanges.globalFiles);
}
if (changedProjects.length > 0 || changedFiles.length > 0) {
return (0, server_1.handleResult)(socket, {
description: 'File watch changed',
response: JSON.stringify({
changedProjects,
changedFiles,
}),
});
}
}));
}));
}
exports.notifyFileWatcherSockets = notifyFileWatcherSockets;
//# sourceMappingURL=file-watcher-sockets.js.mapВыполнить команду
Для локальной разработки. Не используйте в интернете!