Optional
encodingSpecifies the character encoding to be used for the output encoding of returned entries.
'utf8'
0.1.0
Optional
recursiveA boolean flag indicating whether to include subdirectories in the listing.
false
0.1.0
Optional
matchA regular expression or string pattern used to filter the listed entries. Only entries matching the pattern will be included in the results.
/.+/
(match all files)
0.1.0
Optional
excludeA regular expression or string pattern used to exclude entries from the listing. Any entries matching this pattern will be filtered out of the results, even if they match the match pattern.
undefined
0.1.0
Optional
rootA string path representing the root directory to resolve the results to relative paths.
This option will be ignored if either one of the absolute
or basename
option are enabled, this is due to their
higher priority. This option have the lowest priority when compared with those
options.
'.'
or process.cwd()
1.0.0
Optional
absoluteDetermines whether to return absolute paths for all entries.
When enabled (i.e., set to true
), each entry of the returned results
will be an absolute path. Otherwise, paths will be relative to the directory
specified in the rootDir
field.
Enabling this option are equivalent with the following code.
Let's assume we want to list all files within a directory named 'foo'
:
const { resolve } = require('node:path');
const { lsFiles } = require('lsfnd');
// Or ESM:
// import { resolve } from 'node:path';
// import { lsFiles } from 'lsfnd';
const absfiles = (await lsFiles('foo/')).map((entry) => resolve(entry));
In previous release (prior to version 0.1.0) you can literally use an
explicit method that makes the returned results as absolute paths entirely.
That is by utilizing the path.resolve
function, here is an example:
const absfiles = await lsFiles(path.resolve('foo/'));
In the above code, the directory path is resolved to an absolute path before
being passed to the lsFiles
function. As a result,
the function treats the specified directory path as a relative path and
does not attempt to resolve it back to a relative path, thus returning
absolute paths. This approach was considered unstable and problematic due
to inconsistencies in the internal logic. Therefore, this option was
introduced as a replacement and will default returns relative paths when
this option are disabled (set to false
or unspecified), they will relative
to the path specified in the rootDir
field. Refer to
rootDir
option for more details.
Optional
basenameWhether to make the returned result paths only have their basenames, trimming any
directories behind the path separator (i.e., \\
in Windows, and /
in POSIX).
When set to true
, the returned paths will only include the file and/or
directory names itself. This can be useful if you need only the names while
listing a directory.
If you enabled both this option and the absolute
option,
the absolute
option will be treated instead due to its higher priority rather
than this option's priority.
Note
Please note, that this option implicitly includes any directories on the returned entries. If you want to only include the filenames, then combine this option with
LS_F
type if you are usingls
function, or use this option withlsFiles
function for better flexibility.
This option achieves the same functionality as the following code:
const path = require('node:path');
// Or ESM:
// import * as path from 'node:path';
// Assume you have `results` variable contains all files paths
// from listing a directory using `lsFiles` function
const baseResults = results.map((res) => res.split(path.sep).pop());
Or even a bit more simple like this:
// ...
const baseResults = results.map((res) => path.basename(res));
Generated using TypeDoc v0.25.12
This interface defines the optional configuration options that can be passed to every
ls*
functions. These options control the behavior of the directory listing.Since
0.1.0