elearning/Frontend-Learner/node_modules/vite-plugin-checker/dist/checkers/oxlint/server.js
2026-01-13 10:48:02 +07:00

51 lines
No EOL
1.7 KiB
JavaScript

import path from "node:path";
import chokidar from "chokidar";
import { filterLogLevel } from "../../logger.js";
import { runOxlint } from "./cli.js";
import { dispatchDiagnostics } from "./diagnostics.js";
async function setupDevServer(root, options, manager, displayTargets) {
const initial = await runOxlint(options.command, root);
manager.initWith(initial);
dispatchDiagnostics(
filterLogLevel(manager.getDiagnostics(), options.logLevel),
displayTargets
);
const watcher = chokidar.watch(options.watchTarget, {
cwd: root,
ignored: (path2) => path2.includes("node_modules")
});
watcher.on("change", async (filePath) => {
await handleFileChange(root, options.command, filePath, manager);
dispatchDiagnostics(
filterLogLevel(manager.getDiagnostics(), options.logLevel),
displayTargets
);
});
watcher.on("unlink", (filePath) => {
handleFileUnlink(root, filePath, manager);
dispatchDiagnostics(
filterLogLevel(manager.getDiagnostics(), options.logLevel),
displayTargets
);
});
watcher.add(".");
}
function handleFileUnlink(root, filePath, manager) {
const absPath = path.resolve(root, filePath);
manager.updateByFileId(absPath, []);
}
async function handleFileChange(root, command, filePath, manager) {
const absPath = path.resolve(root, filePath);
const isConfigFile = path.basename(absPath) === ".oxlintrc.json";
if (isConfigFile) {
const diagnostics = await runOxlint(`${command} ${root}`, root);
manager.initWith(diagnostics);
} else {
const diagnostics = await runOxlint(`${command} ${absPath}`, root);
manager.updateByFileId(absPath, diagnostics);
}
}
export {
setupDevServer
};
//# sourceMappingURL=server.js.map