Ghost/core/server/utils/read-themes.js
vdemedes 05f44c4c64 Add readThemes() utility to get a list of themes
refs #5923
- add read-themes module to get a list of themes
- replace readDirectory() usage with readThemes(), where only themes are needed
- test read-themes
- test read-directory
- test validate-themes
- test parse-package-json
- add tempfile testing utility to generate temporary paths
2015-10-13 15:54:41 +02:00

47 lines
910 B
JavaScript

/**
* Dependencies
*/
var readDirectory = require('./read-directory'),
Promise = require('bluebird'),
join = require('path').join,
fs = require('fs'),
statFile = Promise.promisify(fs.stat);
/**
* Read themes
*/
function readThemes(dir) {
var originalTree;
return readDirectory(dir)
.tap(function (tree) {
originalTree = tree;
})
.then(Object.keys)
.filter(function (file) {
var path = join(dir, file);
return statFile(path).then(function (stat) {
return stat.isDirectory();
});
})
.then(function (directories) {
var themes = {};
directories.forEach(function (name) {
themes[name] = originalTree[name];
});
return themes;
});
}
/**
* Expose `read-themes`
*/
module.exports = readThemes;