Giter Site home page Giter Site logo

node-divesync's Introduction

diveSync is a tiny module for node that is able to recursively walk („dive“) a directory tree. diveSync is the synchronous version of dive.

Usage

var diveSync = require("diveSync");

diveSync(process.cwd(), function(err, file) {
  if (err) throw err;

  console.log(file);
});

This will list all files in your current working directory. The function call blocks until all files are handled.

You may also apply options to the function call.

dive(dir[, opt], action);

The default options are

{
  recursive: true,    // - If set to false, this will ignore subdirectories.
  all: false,         // - If set to true, this will show "dot files" and
                      //   files in "dot directories", e.g. ".gitinore" or
                      //   ".git/HEAD".
  directories: false  // - If set to true, this will show directories, too.
  filter: function filter(path, dir) { return true; }
                      // - Function that returns true for all paths that should
                      //   not be ignored.
}

filter takes two arguments (path, dir). path defines the path to file in the file system. dir is true, if path is a directory, otherwise false.

You can use this to filter out specific files or directories by their pathname.

node-divesync's People

Contributors

geddski avatar pvorb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

node-divesync's Issues

Nesting

You can't nest diveSync as they sharing the same opt.

Suggest you move var defaultOpt into the function?

ENOENT "no such file or directory" when encountering a symlink that is invalid

I got this error while traversing a directory:

Uncaught (in promise) Error: ENOENT: no such file or directory, stat '/home/manu/Apps/firefox/Link to firefox'
    at fs.statSync (fs.js:960)
    at Object.fs.statSync (ELECTRON_ASAR.js:279)
    at /home/manu/Documents/electron-app/node_modules/diveSync/diveSync.js:39
    at Array.some (<anonymous>)
    at diveSync (/home/manu/Documents/electron-app/node_modules/diveSync/diveSync.js:33)
    at /home/manu/Documents/electron-app/node_modules/diveSync/diveSync.js:50
    at Array.some (<anonymous>)

The file mentioned above is a symlink, pointing to a file that does not exist.

The error is valid - but if I use diveSync, I don't want it to choke on an invalid symlink but just ignore it.
Could you adapt diveSync handle that edge case?

Or do I have to use dive for that?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.