UNPKG

@adguard/aglint

Version:

Universal adblock filter list linter.

65 lines (64 loc) 2.58 kB
import { type LinterConfig } from '../common'; /** * Callback for the config finder, called when a potential config file is found. * If you want to stop the search, return `true` from the callback, otherwise * return `false`. * * @param path Path to the config file. * * @returns `true` if the search should be stopped, `false` otherwise. */ export type ConfigFinderCallback = (path: string) => boolean | Promise<boolean>; /** * Result of the config finder. */ export type ConfigFinderResult = { /** * Path to the config file. */ path: string; /** * Parsed config object. */ config: LinterConfig; }; /** * Discovers every AGLint config files in the current working directory and its parent directories. * It only checks file names, not the contents of the files, so it doesn't validate the config files. * If you didn't abort the search meanwhile, it will scan until it reaches the root directory. * * @param cwd Current working directory. * @param callback Callback function that will be called with the path to the config file * if it is found. * * @throws If multiple config files are found in the same directory. */ export declare function configFinder(cwd: string, callback: ConfigFinderCallback): Promise<void>; /** * Finds the next config file in the current working directory and its parent directories. * It just searches for the first config file and returns its path. * * @param cwd Current working directory. * * @returns The path to the config file and the parsed config object or `null` if no config file was found. * * @throws If multiple config files are found in the same directory. * @throws If a config file is found, but it is not valid. */ export declare function findNextConfig(cwd: string): Promise<ConfigFinderResult | null>; /** * Finds the first root config file in the current working directory and its parent directories. * It parses the config files and stops the search when it finds the root config file, which * is the first config file that has the "root" property set to `true`. * * If it doesn't find a root config file, but it finds a config file, it will return the first * config file. * * @param cwd Current working directory. * * @returns The path to the config file and the parsed config object or `null` if no config file was found. * * @throws If multiple config files are found in the same directory. * @throws If a config file is found, but it is not valid. */ export declare function findNextRootConfig(cwd: string): Promise<ConfigFinderResult | null>;