Package Exports
- walk-sync
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (walk-sync) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-walk-sync
Return an array containing all recursive files and directories under a given
directory, similar to Unix find
. Follows symlinks. Bare-bones, but
very fast.
Similar to wrench.readdirSyncRecursive
,
but adds trailing slashes to directories.
Not to be confused with node-walk, which has both an asynchronous and a synchronous API.
Installation
npm install --save walk-sync
Usage
var walkSync = require('walk-sync');
var paths = walkSync('project')
Given project/one.txt
and project/subdir/two.txt
, paths
will be the following
array:
['one.txt', 'subdir/', 'subdir/two.txt']
Note: directories come before their contents, and have a trailing slash.
Symlinks are followed.
Entries
Sometimes, it is important to get additional information from a walk of a directory; for instance if the downstream consumer needs to stat the files we can leverage the stats from the walk.
To accommodate, walkSync.entries(path [, options])
is also provided, instead
of returning a list of files and/or directories it returns an array of objects
which correspond to a given file or directory, except with more data.
entry.relativePath
entry.mode // => fs.statSync(fullPath).mode
entry.size // => fs.statSync(fullPath).size
entry.mtime // => fs.statSync(fullPath).mtime.getTime()
entry.isDirectory() // => true if directory
Options
globs
: An array of globs. Only files and directories that match at least one of the provided globs will be returned.var paths = walkSync('project', { globs: ['subdir/**/*.txt'] }); // => ['subdir/two.txt']
As an alternative to string globs, you can pass an array of precompiled
minimatch.Minimatch
instances. This is faster and allows to specify your own globbing options.directories
(default: true): Passfalse
to only return files, not directories:var paths = walkSync('project', { directories: false }) // => ['one.txt', 'subdir/two.txt']
Background
walkSync(baseDir)
is a faster substitute for
glob.sync('**', {
cwd: baseDir,
dot: true,
mark: true,
strict: true
})