• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import * as fs from "fs";
2
3if (process.argv.length < 3) {
4    process.exit(1);
5}
6const directoryName = process.argv[2];
7// main reason why we need separate process to check if it is safe to watch some path
8// is to guard against crashes that cannot be intercepted with protected blocks and
9// code in tsserver already can handle normal cases, like non-existing folders.
10// This means that here we treat any result (success or exception) from fs.watch as success since it does not tear down the process.
11// The only case that should be considered as failure - when watchGuard process crashes.
12try {
13    const watcher = fs.watch(directoryName, { recursive: true }, () => ({}));
14    watcher.close();
15}
16catch { /*ignore*/ }
17process.exit(0);
18