Initial commit
This commit is contained in:
132
themes/keepit/node_modules/@babel/cli/lib/babel/watcher.js
generated
vendored
Normal file
132
themes/keepit/node_modules/@babel/cli/lib/babel/watcher.js
generated
vendored
Normal file
@@ -0,0 +1,132 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.enable = enable;
|
||||
exports.onFilesChange = onFilesChange;
|
||||
exports.updateExternalDependencies = updateExternalDependencies;
|
||||
exports.watch = watch;
|
||||
|
||||
function _module() {
|
||||
const data = require("module");
|
||||
|
||||
_module = function () {
|
||||
return data;
|
||||
};
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
function _path() {
|
||||
const data = require("path");
|
||||
|
||||
_path = function () {
|
||||
return data;
|
||||
};
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
const fileToDeps = new Map();
|
||||
const depToFiles = new Map();
|
||||
let isWatchMode = false;
|
||||
let watcher;
|
||||
|
||||
function enable({
|
||||
enableGlobbing
|
||||
}) {
|
||||
isWatchMode = true;
|
||||
const {
|
||||
FSWatcher
|
||||
} = requireChokidar();
|
||||
watcher = new FSWatcher({
|
||||
disableGlobbing: !enableGlobbing,
|
||||
persistent: true,
|
||||
ignoreInitial: true,
|
||||
awaitWriteFinish: {
|
||||
stabilityThreshold: 50,
|
||||
pollInterval: 10
|
||||
}
|
||||
});
|
||||
watcher.on("unlink", unwatchFile);
|
||||
}
|
||||
|
||||
function watch(filename) {
|
||||
if (!isWatchMode) {
|
||||
throw new Error("Internal Babel error: .watch called when not in watch mode.");
|
||||
}
|
||||
|
||||
watcher.add(_path().resolve(filename));
|
||||
}
|
||||
|
||||
function onFilesChange(callback) {
|
||||
if (!isWatchMode) {
|
||||
throw new Error("Internal Babel error: .onFilesChange called when not in watch mode.");
|
||||
}
|
||||
|
||||
watcher.on("all", (event, filename) => {
|
||||
var _depToFiles$get;
|
||||
|
||||
if (event !== "change" && event !== "add") return;
|
||||
|
||||
const absoluteFile = _path().resolve(filename);
|
||||
|
||||
callback([absoluteFile, ...((_depToFiles$get = depToFiles.get(absoluteFile)) != null ? _depToFiles$get : [])], event, absoluteFile);
|
||||
});
|
||||
}
|
||||
|
||||
function updateExternalDependencies(filename, dependencies) {
|
||||
if (!isWatchMode) return;
|
||||
|
||||
const absFilename = _path().resolve(filename);
|
||||
|
||||
const absDependencies = new Set(Array.from(dependencies, dep => _path().resolve(dep)));
|
||||
|
||||
if (fileToDeps.has(absFilename)) {
|
||||
for (const dep of fileToDeps.get(absFilename)) {
|
||||
if (!absDependencies.has(dep)) {
|
||||
removeFileDependency(absFilename, dep);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const dep of absDependencies) {
|
||||
if (!depToFiles.has(dep)) {
|
||||
depToFiles.set(dep, new Set());
|
||||
watcher.add(dep);
|
||||
}
|
||||
|
||||
depToFiles.get(dep).add(absFilename);
|
||||
}
|
||||
|
||||
fileToDeps.set(absFilename, absDependencies);
|
||||
}
|
||||
|
||||
function removeFileDependency(filename, dep) {
|
||||
depToFiles.get(dep).delete(filename);
|
||||
|
||||
if (depToFiles.get(dep).size === 0) {
|
||||
depToFiles.delete(dep);
|
||||
watcher.unwatch(dep);
|
||||
}
|
||||
}
|
||||
|
||||
function unwatchFile(filename) {
|
||||
if (!fileToDeps.has(filename)) return;
|
||||
|
||||
for (const dep of fileToDeps.get(filename)) {
|
||||
removeFileDependency(filename, dep);
|
||||
}
|
||||
|
||||
fileToDeps.delete(filename);
|
||||
}
|
||||
|
||||
function requireChokidar() {
|
||||
try {
|
||||
return parseInt(process.versions.node) >= 8 ? require("chokidar") : require("@nicolo-ribaudo/chokidar-2");
|
||||
} catch (err) {
|
||||
console.error("The optional dependency chokidar failed to install and is required for " + "--watch. Chokidar is likely not supported on your platform.");
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user