vfile-find-down
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatvfile utility to find files by searching the file system downwards.
Contents
* [`findDown(test[, paths][, callback])`](#finddowntest-paths-callback)
* [`findDownAll(test[, paths][, callback])`](#finddownalltest-paths-callback)
* [`Assert`](#assert)
* [`Callback`](#callback)
* [`CallbackAll`](#callbackall)
* [`Result`](#result)
* [`Test`](#test)
What is this?
This utility lets you find one or many files downwards.When should I use this?
You can use this utility if you want to find files in, say, a folder. One example is all markdown files. If you instead want to find files upwards, such as config files, you can usevfile-find-up
vfile-find-up.Install
This package is ESM onlyesm. In Node.js (version 16), install with npm:npm install vfile-find-down
Use
import {findDown} from 'vfile-find-down'
console.log(await findDown('.md'))
Yields:
VFile {
cwd: '/Users/tilde/Projects/oss/vfile-find-down',
data: {},
history: [ '/Users/tilde/Projects/oss/vfile-find-down/readme.md' ],
messages: []
}
API
This package exports the identifiersfindDown
api-find-down and
findDownAll
api-find-down-all.
There is no default export.findDown(test[, paths][, callback])
Find the first file or folder downwards.👉 Note: files are not read (theirvalue
is not populated). useto-vfile
to-vfile for that.
Signatures
(test[, paths], callback) => undefined
(test[, paths]) => Promise<VFile>
Parameters
— things to search for
paths
(Array<URL | string> | URL | string
, default:process.cwd()
)
— places to search from
callback
(Callback
api-callback, optional)
— callback called when done
Returns
Nothing whencallback
is given (undefined
), otherwise a promise that
resolves to a file (VFile
vfile or undefined
).findDownAll(test[, paths][, callback])
Find files or folders downwards.👉 Note: files are not read (theirvalue
is not populated). useto-vfile
to-vfile for that.
Signatures
(test[, paths], callback) => undefined
(test[, paths]) => Promise<Array<VFile>>
Parameters
— things to search for
paths
(Array<URL | string> | URL | string
, default:process.cwd()
)
— places to search from
callback
(CallbackAll
api-callback-all, optional)
— callback called when done
Returns
Nothing whencallback
is given (undefined
), otherwise a promise that
resolves to files (Array<VFile>
vfile).Assert
Handle a file (TypeScript type).Parameters
— file to handle
— stats from `fs.stat`
Returns
How to handle this file (Result
api-result, optional).Callback
Callback called when done finding one file (TypeScript type).Parameters
error
(Error
orundefined
)
— error; errors are currently never passed
— file
Returns
Nothing (undefined
).CallbackAll
Callback called when done (TypeScript type).Parameters
error
(Error
orundefined
)
— error; errors are currently never passed
files
(Array<VFile>
vfile)
— files
Returns
Nothing (undefined
).Result
What to do when collecting a file or folder (TypeScript type).Fields
break
(boolean
, default:false
)
— stop searching after this file or folder
include
(boolean
, default:false
)
— include this file or folder
skip
(boolean
, default:false
)
— do not search inside this folder
Test
Things to search for (TypeScript type).For strings, the
basename
or extname
of files must match them and
hidden folders and node_modules
will not be searched.
For arrays, any test in them must match.Type
type Test = Array<Assert | string> | Assert | string
Types
This package is fully typed with TypeScript. It exports the additional typesAssert
api-assert,
Callback
api-callback,
CallbackAll
api-callback-all,
Result
api-result, and
Test
api-test.Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line,
vfile-find-down@^7
,
compatible with Node.js 16.Contribute
Seecontributing.md
contributing in vfile/.github
health for ways to
get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.