async function findSuppressionsFiles()

in eng/tools/suppressions/src/suppressions.ts [168:196]


async function findSuppressionsFiles(path: string): Promise<string[]> {
  const suppressionsFiles: string[] = [];

  path = resolve(path);

  const stats: Stats = await lstat(path);
  let currentDirectory: string = stats.isDirectory() ? path : dirname(path);

  while (true) {
    const suppressionsFile: string = join(currentDirectory, "suppressions.yaml");
    try {
      // Throws if file cannot be read
      await access(suppressionsFile, constants.R_OK);
      suppressionsFiles.push(suppressionsFile);
    } catch {
      // File does not exist (or cannot be read), so skip this directory and check the parent
    }

    const parentDirectory: string = dirname(currentDirectory);
    if (parentDirectory !== currentDirectory) {
      currentDirectory = parentDirectory;
    } else {
      // Reached fs root
      break;
    }
  }

  return suppressionsFiles;
}