61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
type Pathname = string
|
|
|
|
interface TestResult {
|
|
ignored: boolean
|
|
unignored: boolean
|
|
}
|
|
|
|
export interface Ignore {
|
|
/**
|
|
* Adds one or several rules to the current manager.
|
|
* @param {string[]} patterns
|
|
* @returns IgnoreBase
|
|
*/
|
|
add(patterns: string | Ignore | readonly (string | Ignore)[]): this
|
|
|
|
/**
|
|
* Filters the given array of pathnames, and returns the filtered array.
|
|
* NOTICE that each path here should be a relative path to the root of your repository.
|
|
* @param paths the array of paths to be filtered.
|
|
* @returns The filtered array of paths
|
|
*/
|
|
filter(pathnames: readonly Pathname[]): Pathname[]
|
|
|
|
/**
|
|
* Creates a filter function which could filter
|
|
* an array of paths with Array.prototype.filter.
|
|
*/
|
|
createFilter(): (pathname: Pathname) => boolean
|
|
|
|
/**
|
|
* Returns Boolean whether pathname should be ignored.
|
|
* @param {string} pathname a path to check
|
|
* @returns boolean
|
|
*/
|
|
ignores(pathname: Pathname): boolean
|
|
|
|
/**
|
|
* Returns whether pathname should be ignored or unignored
|
|
* @param {string} pathname a path to check
|
|
* @returns TestResult
|
|
*/
|
|
test(pathname: Pathname): TestResult
|
|
}
|
|
|
|
interface Options {
|
|
ignorecase?: boolean
|
|
// For compatibility
|
|
ignoreCase?: boolean
|
|
allowRelativePaths?: boolean
|
|
}
|
|
|
|
/**
|
|
* Creates new ignore manager.
|
|
*/
|
|
declare function ignore(options?: Options): Ignore
|
|
|
|
declare namespace ignore {
|
|
export function isPathValid (pathname: string): boolean
|
|
}
|
|
|
|
export default ignore
|