rollup-plugin-require-context2
Version:
rollup-plugin for webpack requrie-context
37 lines (33 loc) • 1 kB
JavaScript
const fs = require('fs');
const Path = require('path');
function readDirRecursive(dir) {
return fs.statSync(dir).isDirectory() ?
Array.prototype.concat(
...fs.readdirSync(dir).map(f => readDirRecursive(Path.join(dir, f)))
)
: dir;
}
function readDir(dir, recursive) {
const isDirectory = fs.statSync(dir).isDirectory();
if (recursive) {
return readDirRecursive(dir);
} else if (isDirectory) {
const files = fs.readdirSync(dir);
if (files) {
return files.map(file => Path.resolve(dir, file));
}
} else {
return [ dir ];
}
}
module.exports = function resolveRequireModules(baseDirname = './', recursive = false, regexp = /^\.\//) {
let files = readDir(baseDirname, recursive);
if (!Array.isArray(files)) {
files = [files];
}
files = files.map(file => {
const fileAbsolutePath = `./${Path.relative(baseDirname, file)}`;
return fileAbsolutePath;
});
return files.filter(file => regexp.test(file.replace(/\\/g, '/')));
};