⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.45
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
invoice
/
node_modules
/
webpack
/
lib
/
node
/
View File Name :
NodeWatchFileSystem.js
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const Watchpack = require("watchpack"); const objectToMap = require("../util/objectToMap"); class NodeWatchFileSystem { constructor(inputFileSystem) { this.inputFileSystem = inputFileSystem; this.watcherOptions = { aggregateTimeout: 0 }; this.watcher = new Watchpack(this.watcherOptions); } watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) { if (!Array.isArray(files)) { throw new Error("Invalid arguments: 'files'"); } if (!Array.isArray(dirs)) { throw new Error("Invalid arguments: 'dirs'"); } if (!Array.isArray(missing)) { throw new Error("Invalid arguments: 'missing'"); } if (typeof callback !== "function") { throw new Error("Invalid arguments: 'callback'"); } if (typeof startTime !== "number" && startTime) { throw new Error("Invalid arguments: 'startTime'"); } if (typeof options !== "object") { throw new Error("Invalid arguments: 'options'"); } if (typeof callbackUndelayed !== "function" && callbackUndelayed) { throw new Error("Invalid arguments: 'callbackUndelayed'"); } const oldWatcher = this.watcher; this.watcher = new Watchpack(options); if (callbackUndelayed) { this.watcher.once("change", callbackUndelayed); } const cachedFiles = files; const cachedDirs = dirs; this.watcher.once("aggregated", (changes, removals) => { changes = changes.concat(removals); if (this.inputFileSystem && this.inputFileSystem.purge) { this.inputFileSystem.purge(changes); } const times = objectToMap(this.watcher.getTimes()); files = new Set(files); dirs = new Set(dirs); missing = new Set(missing); removals = new Set(removals.filter(file => files.has(file))); callback( null, changes.filter(file => files.has(file)).sort(), changes.filter(file => dirs.has(file)).sort(), changes.filter(file => missing.has(file)).sort(), times, times, removals ); }); this.watcher.watch( cachedFiles.concat(missing), cachedDirs.concat(missing), startTime ); if (oldWatcher) { oldWatcher.close(); } return { close: () => { if (this.watcher) { this.watcher.close(); this.watcher = null; } }, pause: () => { if (this.watcher) { this.watcher.pause(); } }, getFileTimestamps: () => { if (this.watcher) { return objectToMap(this.watcher.getTimes()); } else { return new Map(); } }, getContextTimestamps: () => { if (this.watcher) { return objectToMap(this.watcher.getTimes()); } else { return new Map(); } } }; } } module.exports = NodeWatchFileSystem;