Skip to content

Commit

Permalink
Merge pull request #136 from kristianmandrup/type-declarations
Browse files Browse the repository at this point in the history
Better type declarations that work with Node16 modules etc
  • Loading branch information
kaelzhang authored Sep 11, 2024
2 parents ee70c66 + 425eeb5 commit 16e9680
Showing 1 changed file with 53 additions and 57 deletions.
110 changes: 53 additions & 57 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -1,61 +1,57 @@
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
declare module "ignore" {
export type Pathname = string;

export 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;
}

export interface Options {
ignorecase?: boolean;
// For compatibility
ignoreCase?: boolean;
allowRelativePaths?: boolean;
}

/**
* Returns Boolean whether pathname should be ignored.
* @param {string} pathname a path to check
* @returns boolean
* Creates new ignore manager.
*/
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
}

export interface Options {
ignorecase?: boolean
// For compatibility
ignoreCase?: boolean
allowRelativePaths?: boolean
export default function ignore(options?: Options): Ignore;
}

/**
* Creates new ignore manager.
*/
declare function ignore(options?: Options): Ignore

declare namespace ignore {
export function isPathValid (pathname: string): boolean
}

export default ignore

0 comments on commit 16e9680

Please sign in to comment.