scandir-native
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

scandir-native

A fs.scandir method with some features.

Donate

If you want to thank me, or promote your Issue.

Donate

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

⚠️ 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?

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

TypeScript interface for each entry in the directory.

.scandir(path, callback) => void

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[]

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.

Package Sidebar

Install

npm i scandir-native

Weekly Downloads

8

Version

1.0.2

License

MIT

Unpacked Size

11.6 kB

Total Files

11

Last publish

Collaborators

  • mrmlnc