1.0.13 • Published 8 years ago

dir-tree-scanner v1.0.13

Weekly downloads
3
License
ISC
Repository
github
Last release
8 years ago

dir-tree-scanner

dir-tree-scanner is a simple directory tree scanner for node, which supports directory level update, filters, display tree structure and so on.

Install

Assumed you have the node env.

  npm i dir-tree-scanner

Usage

Find

You can use find function as a try.

var dirTree = require('dir-tree-scanner');
var path = './test';
dirTree.find(path)
    .then(function(result){
        console.log(result);
    }, function(err){
        console.log('err:', err);
    }, function(data){
        console.log('progress: ', data);
    });

To make result more intuitive, you can use the display function.

var dirTree = require('dir-tree-scanner');
var path = './test';
dirTree.find(path)
    .then(function(result){
        dirTree.display(result.data);
    }, function(err){
        console.log('err:', err);
    }, function(data){
        console.log('progress: ', data);
    });

You can use filters as well.

var dirTree = require('dir-tree-scanner');
var path = './test';
dirTree.find(path, {
      file: ['.js', '.md'] 
      // the same as regular expression
      // file: /(\.js|\.md)$/
    })
    .then(function(result){
        dirTree.display(result.data);
    }, function(err){
        console.log('err:', err);
    }, function(data){
        console.log('progress: ', data);
    });

#Example

Use It For Mocha Test

Below is an example using dir-tree-scanner to do mocha test. The functionality of the code is the same as mocha cli to some extent. Remember to install all the dependencies to run the example.

var dirTree = require('dir-tree-scanner');
var path = require('path');
var Q = require('q');
var exec = require('child_process').exec;
require('colors');

dir_tree.find('./test', {
  file: /(\.t\.js)$/
}).then(function(srcTree){
  var testSrc = srcTree.data[0].children;
  loopTest(testSrc);
});

function loopTest(testSrc){
  if(testSrc.length > 0){
    doTest(testSrc.shift().name)
      .then(function(){
        loopTest(testSrc);
      }, function(err){
        console.log(err.red);
      })
  }
}

function doTest(testFile) {
  return Q.Promise(function (resolve, reject) {
    var mochaTest = exec('mocha ' + testFile);

    var banner = '----------------------';
    console.log((banner + path.basename(testFile) + ' start ' + banner).green);

    mochaTest.stdout.on('data', function (data) {
      console.log(data);
    });

    mochaTest.stderr.on('data', function (err) {
      console.log(err.red);
    });

    mochaTest.on('close', function (code) {
      console.log((banner + path.basename(testFile) + ' end ' + banner).green);
      console.log('child process exited with code ' + code);
      resolve();
    });

    mochaTest.on('error', function (err) {
      console.log(err);
      reject();
    });
  });
}
1.0.13

8 years ago

1.0.12

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago