scandir-native
v1.0.2
Published
A fs.scandir method with some features
Downloads
40
Maintainers
Readme
scandir-native
A fs.scandir
method with some features.
Donate
If you want to thank me, or promote your Issue.
Sorry, but I have work and support for plugins and modules requires some time after work. I will be glad of your support or PR's.
Install
$ npm i scandir-native
:warning: Compiling on Windows machines requires the node-gyp prerequisites.
Supports
- Node.js (4, 6, 8 and etc.)
- Node.js with ChakraCore (below 8.4.0 on macOS and Linux (works fine on Windows), see this issue)
Why?
- Temporary solution for «A proposal to add fs.scandir method to FS module».
Usage
const scandir = require('scandir-native');
scandir.scandir('.', (err, entries) => {
if (err) {
console.error(err); // Standard FS errors
return;
}
console.dir(entries, { colors: true });
// [{ name: 'filepath', type: 2 }, { name: 'dirpath', type: 1 }]
});
API
FS_TYPE_CONSTANTS
0 is 'FS_UNKNOWN'
1 is 'FS_FILE'
2 is 'FS_DIR'
3 is 'FS_LINK'
4 is 'FS_FIFO'
5 is 'FS_SOCKET'
6 is 'FS_CHAR'
7 is 'FS_BLOCK'
Enum for entry type builded from and for uv_dirent_type_t
.
IScandirEntry
- name
String
- type
FILE_TYPE_CONSTANTS
TypeScript interface for each entry in the directory.
.scandir(path, callback) => void
- path
String
- callback
Function
- err
Error
- entries
IScandirEntry[]
- err
Asynchronous scandir(3)
. Reads the contents of a directory. The callback gets two arguments (err
, entries
) where entries
is an array of objects (name
and type
) of the files in the directory excluding .
and ..
.
.scandirSync(path) => IScandirEntry[]
- path
String
- returns
IScandirEntry[]
Synchronous scandir(3)
. Returns an array of objects (name
and type
) excluding .
and ..
.
Example
const scandir = require('scandir-native');
const dirs: string[] = [];
const nonDirs: string[] = [];
scandir.scandir('.', (err, entries) => {
if (err) {
console.error(err); // Standard FS errors
return;
}
entries.forEach((entry) => {
if (entry.type === scandir.FS_TYPE_CONSTANTS.FS_DIR) {
dirs.push(entry.name);
} else {
nonDirs.push(entry.name);
}
})
});
Changelog
See the Releases section of our GitHub project for changelogs for each release version.
License
This software is released under the terms of the MIT license.