themes-switch
Version:
Toolset for switch multiple themes in application based on webpack
67 lines (54 loc) • 1.46 kB
JavaScript
;
var path = require('path');
var fs = require('fs-extra');
function collectFiles(filePath, results, fileFilter, dirFilter) {
var files = fs.readdirSync(filePath);
if (!files) {
console.warn(err);
} else {
files.forEach(function (filename) {
var filedir = path.posix.join(filePath, filename);
var stats = fs.statSync(filedir);
if (!stats) {
console.warn("".concat(filedir, ": invalid file stats."));
} else {
var isFile = stats.isFile();
var isDir = stats.isDirectory();
if (isFile) {
if (fileFilter && typeof fileFilter === 'function') {
if (fileFilter(filedir)) {
results.push(filedir);
}
} else {
results.push(filedir);
}
}
var digIn = true;
if (dirFilter && typeof dirFilter === 'function') {
if (!dirFilter(filedir)) {
digIn = false;
}
}
if (isDir && digIn) {
collectFiles(filedir, results, fileFilter, dirFilter);
}
}
});
}
}
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
function recursiveIssuer(m) {
if (m.issuer) {
return recursiveIssuer(m.issuer);
} else if (m.name) {
return m.name;
}
return false;
}
module.exports = {
collectFiles: collectFiles,
randomNum: randomNum,
recursiveIssuer: recursiveIssuer
};