globby
Advanced tools
Comparing version 9.1.0 to 9.2.0
233
index.d.ts
import {IOptions as NodeGlobOptions} from 'glob'; | ||
import {Options as FastGlobOptions} from 'fast-glob'; | ||
export type ExpandDirectoriesOption = | ||
| boolean | ||
| ReadonlyArray<string> | ||
| {files: ReadonlyArray<string>; extensions: ReadonlyArray<string>}; | ||
declare namespace globby { | ||
type ExpandDirectoriesOption = | ||
| boolean | ||
| ReadonlyArray<string> | ||
| {files: ReadonlyArray<string>; extensions: ReadonlyArray<string>}; | ||
export interface GlobbyOptions extends FastGlobOptions { | ||
/** | ||
* If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. | ||
* | ||
* Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. | ||
* | ||
* @default true | ||
* | ||
* @example | ||
* | ||
* import globby from 'globby'; | ||
* | ||
* (async () => { | ||
* const paths = await globby('images', { | ||
* expandDirectories: { | ||
* files: ['cat', 'unicorn', '*.jpg'], | ||
* extensions: ['png'] | ||
* } | ||
* }); | ||
* console.log(paths); | ||
* //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] | ||
* })(); | ||
*/ | ||
readonly expandDirectories?: ExpandDirectoriesOption; | ||
interface GlobbyOptions extends FastGlobOptions { | ||
/** | ||
If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. | ||
/** | ||
* Respect ignore patterns in `.gitignore` files that apply to the globbed files. | ||
* | ||
* @default false | ||
*/ | ||
readonly gitignore?: boolean; | ||
} | ||
Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. | ||
/** | ||
* @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
* @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. | ||
* @returns A `Promise<Array>` of matching paths. | ||
*/ | ||
export default function globby( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: GlobbyOptions | ||
): Promise<string[]>; | ||
@default true | ||
/** | ||
* @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
* @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. | ||
* @returns An `Array` of matching paths. | ||
*/ | ||
export function sync( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: GlobbyOptions | ||
): string[]; | ||
@example | ||
``` | ||
import globby = require('globby'); | ||
export interface GlobTask { | ||
readonly pattern: string; | ||
readonly options: GlobbyOptions; | ||
} | ||
(async () => { | ||
const paths = await globby('images', { | ||
expandDirectories: { | ||
files: ['cat', 'unicorn', '*.jpg'], | ||
extensions: ['png'] | ||
} | ||
}); | ||
console.log(paths); | ||
//=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] | ||
})(); | ||
``` | ||
*/ | ||
readonly expandDirectories?: ExpandDirectoriesOption; | ||
/** | ||
* Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. | ||
* | ||
* @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
* @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. | ||
* @returns An `Array<Object>` in the format `{ pattern: string, options: Object }`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. | ||
*/ | ||
export function generateGlobTasks( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: GlobbyOptions | ||
): GlobTask[]; | ||
/** | ||
Respect ignore patterns in `.gitignore` files that apply to the globbed files. | ||
/** | ||
* Note that the options affect the results. If `noext: true` is set, then `+(a|b)` will not be considered a magic pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`, then that is considered magical, unless `nobrace: true` is set. | ||
* | ||
* This function is backed by [`node-glob`](https://github.com/isaacs/node-glob#globhasmagicpattern-options). | ||
* | ||
* @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
* @param options - See the [`node-glob` options](https://github.com/isaacs/node-glob#globhasmagicpattern-options). | ||
* @returns A boolean of whether there are any special glob characters in the `patterns`. | ||
*/ | ||
export function hasMagic( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: NodeGlobOptions | ||
): boolean; | ||
@default false | ||
*/ | ||
readonly gitignore?: boolean; | ||
} | ||
export interface GitignoreOptions { | ||
readonly cwd?: string; | ||
readonly ignore?: ReadonlyArray<string>; | ||
interface GlobTask { | ||
readonly pattern: string; | ||
readonly options: globby.GlobbyOptions; | ||
} | ||
interface GitignoreOptions { | ||
readonly cwd?: string; | ||
readonly ignore?: ReadonlyArray<string>; | ||
} | ||
type FilterFunction = (path: string) => boolean; | ||
} | ||
export type FilterFunction = (path: string) => boolean; | ||
interface Gitignore { | ||
/** | ||
`.gitignore` files matched by the ignore config are not used for the resulting filter function. | ||
export interface Gitignore { | ||
(options?: GitignoreOptions): Promise<FilterFunction>; | ||
@returns A `Promise` for a filter function indicating whether a given path is ignored via a `.gitignore` file. | ||
@example | ||
``` | ||
import {gitignore} from 'globby'; | ||
(async () => { | ||
const isIgnored = await gitignore(); | ||
console.log(isIgnored('some/file')); | ||
})(); | ||
``` | ||
*/ | ||
(options?: globby.GitignoreOptions): Promise<globby.FilterFunction>; | ||
/** | ||
* @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. | ||
*/ | ||
sync(options?: GitignoreOptions): FilterFunction; | ||
@returns A filter function indicating whether a given path is ignored via a `.gitignore` file. | ||
*/ | ||
sync(options?: globby.GitignoreOptions): globby.FilterFunction; | ||
} | ||
/** | ||
* `.gitignore` files matched by the ignore config are not used for the resulting filter function. | ||
* | ||
* @returns A `Promise` for a filter function indicating whether a given path is ignored via a `.gitignore` file. | ||
* | ||
* @example | ||
* | ||
* import {gitignore} from 'globby'; | ||
* | ||
* (async () => { | ||
* const isIgnored = await gitignore(); | ||
* console.log(isIgnored('some/file')); | ||
* })(); | ||
*/ | ||
export const gitignore: Gitignore; | ||
declare const globby: { | ||
/** | ||
@param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. | ||
@returns A `Promise<Array>` of matching paths. | ||
@example | ||
``` | ||
import globby = require('globby'); | ||
(async () => { | ||
const paths = await globby(['*', '!cake']); | ||
console.log(paths); | ||
//=> ['unicorn', 'rainbow'] | ||
})(); | ||
``` | ||
*/ | ||
( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: globby.GlobbyOptions | ||
): Promise<string[]>; | ||
/** | ||
@param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. | ||
@returns An `Array` of matching paths. | ||
*/ | ||
sync( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: globby.GlobbyOptions | ||
): string[]; | ||
/** | ||
Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. | ||
@param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. | ||
@returns An `Array<Object>` in the format `{ pattern: string, options: Object }`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. | ||
*/ | ||
generateGlobTasks( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: globby.GlobbyOptions | ||
): globby.GlobTask[]; | ||
/** | ||
Note that the options affect the results. If `noext: true` is set, then `+(a|b)` will not be considered a magic pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`, then that is considered magical, unless `nobrace: true` is set. | ||
This function is backed by [`node-glob`](https://github.com/isaacs/node-glob#globhasmagicpattern-options). | ||
@param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). | ||
@param options - See the [`node-glob` options](https://github.com/isaacs/node-glob#globhasmagicpattern-options). | ||
@returns A boolean of whether there are any special glob characters in the `patterns`. | ||
*/ | ||
hasMagic( | ||
patterns: string | ReadonlyArray<string>, | ||
options?: NodeGlobOptions | ||
): boolean; | ||
readonly gitignore: Gitignore; | ||
// TODO: Remove this for the next major release | ||
default: typeof globby; | ||
}; | ||
export = globby; |
@@ -118,2 +118,3 @@ 'use strict'; | ||
module.exports = globby; | ||
// TODO: Remove this for the next major release | ||
module.exports.default = globby; | ||
@@ -120,0 +121,0 @@ |
{ | ||
"name": "globby", | ||
"version": "9.1.0", | ||
"version": "9.2.0", | ||
"description": "Extends `glob` with support for multiple patterns and exposes a Promise API", | ||
@@ -17,3 +17,3 @@ "license": "MIT", | ||
"bench": "npm update glob-stream fast-glob && matcha bench.js", | ||
"test": "xo && ava && tsd-check" | ||
"test": "xo && ava && tsd" | ||
}, | ||
@@ -62,3 +62,3 @@ "files": [ | ||
"array-union": "^1.0.2", | ||
"dir-glob": "^2.2.1", | ||
"dir-glob": "^2.2.2", | ||
"fast-glob": "^2.2.6", | ||
@@ -71,3 +71,3 @@ "glob": "^7.1.3", | ||
"devDependencies": { | ||
"ava": "^1.2.1", | ||
"ava": "^1.4.1", | ||
"glob-stream": "^6.1.0", | ||
@@ -77,3 +77,3 @@ "globby": "sindresorhus/globby#master", | ||
"rimraf": "^2.6.3", | ||
"tsd-check": "^0.3.0", | ||
"tsd": "^0.7.1", | ||
"xo": "^0.24.0" | ||
@@ -80,0 +80,0 @@ }, |
17947
318
Updateddir-glob@^2.2.2