mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 07:35:16 +00:00
43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
var path = require('path');
|
|
var Immutable = require('immutable');
|
|
var fresh = require('fresh-require');
|
|
|
|
var fs = require('../utils/fs');
|
|
var FS = require('../models/fs');
|
|
|
|
function fsReadDir(folder) {
|
|
return fs.readdir(folder)
|
|
.then(function(files) {
|
|
files = Immutable.List(files);
|
|
|
|
return files
|
|
.map(function(file) {
|
|
if (file == '.' || file == '..') return;
|
|
|
|
var stat = fs.statSync(path.join(folder, file));
|
|
if (stat.isDirectory()) file = file + path.sep;
|
|
return file;
|
|
})
|
|
.filter(function(file) {
|
|
return Boolean(file);
|
|
});
|
|
});
|
|
}
|
|
|
|
function fsLoadObject(filename) {
|
|
return fresh(filename, require);
|
|
}
|
|
|
|
module.exports = function createNodeFS(root) {
|
|
return FS.create({
|
|
root: root,
|
|
|
|
fsExists: fs.exists,
|
|
fsReadFile: fs.readFile,
|
|
fsStatFile: fs.stat,
|
|
fsReadDir: fsReadDir,
|
|
fsLoadObject: fsLoadObject,
|
|
fsReadAsStream: fs.readStream
|
|
});
|
|
};
|