react-cosmos
Version:
CLI for running React Cosmos inside webpack-powered apps
45 lines (35 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.findUserModulePaths = findUserModulePaths;
var _glob = _interopRequireDefault(require("glob"));
var _micromatch = _interopRequireDefault(require("micromatch"));
var _shared = require("./shared");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function findUserModulePaths(_ref) {
var rootDir = _ref.rootDir,
fixturesDir = _ref.fixturesDir,
fixtureFileSuffix = _ref.fixtureFileSuffix;
var paths = _glob.default.sync('**/*', {
cwd: rootDir,
absolute: true,
ignore: (0, _shared.getIgnorePatterns)()
});
var fixturePatterns = (0, _shared.getFixturePatterns)(fixturesDir, fixtureFileSuffix);
var fixturePaths = getMatchingPaths(paths, fixturePatterns);
var decoratorPaths = getMatchingPaths(paths, (0, _shared.getDecoratorPatterns)()); // Omit decorators from fixture paths, which happens when decorators are
// placed inside fixture dirs.
var nonDecoratorFixturePaths = fixturePaths.filter(function (fixturePath) {
return decoratorPaths.indexOf(fixturePath) === -1;
});
return {
fixturePaths: nonDecoratorFixturePaths,
decoratorPaths: decoratorPaths
};
}
function getMatchingPaths(paths, patterns) {
return (0, _micromatch.default)(paths, patterns, {
dot: true
});
}