UNPKG

1.08 kBJavaScriptView Raw
1var Promise = require('bluebird');
2var fs = Promise.promisifyAll(require('fs'));
3var path = require('path');
4var _ = require('lodash');
5var async = require('..').async;
6var await = require('..').await;
7
8
9var descendentFilePaths = async.iterable (function self(yield_, dir, recursive) {
10
11 var files = await (fs.readdirSync(dir));
12 var paths = _.map(files, function (file) { return path.join(dir, file); });
13 var stats = await (_.map(paths, function (path) { return fs.statAsync(path); }));
14
15 _.each(stats, function(stat, i) {
16 if (stat.isFile()) yield_ (paths[i]);
17 else if (recursive) self(yield_, paths[i], true);
18 });
19});
20
21
22var program = async (function(dir) {
23 var paths = descendentFilePaths(dir, true);
24 paths.forEach(console.log);
25 return 'Finished!';
26});
27
28
29console.log('running...');
30program(path.join(__dirname, '.'))
31 .then(function (result) {
32 console.log(result);
33 })
34 .catch(function(err) {
35 console.log('----- rejected: -----');
36 console.log(err);
37 });