'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const noop = require('./noop');
const parallel = require('./parallel');
 
const fs = require('fs');
const path = require('path');
 
exports = function(p, cb) {
    cb = cb || noop;
    p = path.resolve(p);
 
    fs.lstat(p, function(err, stat) {
        if (err) return cb(err);
 
        const isDir = stat.isDirectory();
 
        if (!isDir) {
            return fs.unlink(p, function(err) {
                return err ? cb(err) : cb();
            });
        }
 
        fs.readdir(p, function(err, files) {
            if (err) return cb(err);
 
            const len = files.length;
 
            const cbs = [];
            for (let i = 0; i < len; i++) {
                cbs.push(
                    (function(file) {
                        return function(cb) {
                            exports(file, cb);
                        };
                    })(path.resolve(p, files[i]))
                );
            }
 
            parallel(cbs, function(err) {
                if (err) return cb(err);
 
                fs.rmdir(p, function(err) {
                    return err ? cb(err) : cb();
                });
            });
        });
    });
};
 
module.exports = exports;