Esempio n. 1
0
var requiredir = (dir: string, predicate: (fileName: string) => string = _.identity, recursive = false): any => {

    if(!fs.existsSync(dir))
        fail(dir + ' doesn\'t exists')

    if(!fs.isDirectorySync(dir))
        fail(dir + ' is not a directory')

    var predicate_ = _.isFunction(predicate)? predicate: _.identity
    var directoryList = fs.readdirSync(dir)

    return _.reduce(directoryList, function(modules, file: string) {
        file = path.join(dir, file)

        if(fs.isDirectorySync(file) && recursive) {

            // Recursive call
            var directoryBasename = path.basename(file)
            modules[directoryBasename] = requiredir(file, predicate_, recursive)

        } else {

            var fileBasename = predicate_(path.basename(file))

            // If predicate returns false, file is ommited
            if(!fileBasename) return modules

            var module = require(path.relative(__dirname, file))
            modules[fileBasename] = module

        }

        return modules
    }, {})
}
    fs.absolute(path.join("~", "does", "not", "exist")) ===
        path.join(homeDir, "does", "not", "exist")
);

console.log(fs.normalize("~/foo") === path.join(homeDir, "foo"));

console.log(fs.tildify(homeDir) === "~");

console.log(
    fs.getAppDataDirectory() ===
        path.join(fs.getHomeDirectory(), "Library", "Application Support")
);

console.log(fs.isAbsolute("/a/b/c"));

console.log(fs.existsSync("/a/b/c"));

console.log(fs.isDirectorySync("/a/b/c"));

fs.isDirectory("a/b/c", result => {
    console.log(result);
});

console.log(fs.isFileSync("/a/b/c"));

console.log(fs.isSymbolicLinkSync("/a/b/c"));

fs.isSymbolicLink("a/b/c", result => {
    console.log(result);
});