analyze-es6-modules
Version:
Performs static analysis of ES6 modules in your codebase.
65 lines (54 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var fs = require('fs');
var path = require('path');
var glob = require('glob');
var Promise = require('bluebird');
var expandFilePatterns = function expandFilePatterns(cwd, patterns) {
var sources = patterns.filter(function (pattern) {
return pattern[0] !== '!';
});
var ignore = patterns.filter(function (pattern) {
return pattern[0] === '!';
}).map(function (pattern) {
return pattern.substring(1);
}).concat(['node_modules/**']);
var globSearches = sources.map(function (pattern) {
return new Promise(function (resolve, reject) {
var options = { cwd: cwd, ignore: ignore };
glob(pattern, options, function (error, filePaths) {
if (error) {
reject(error);
} else {
resolve(filePaths);
}
});
});
});
return Promise.all(globSearches).then(function (allMatches) {
var allPaths = {};
for (var i = 0; i < allMatches.length; ++i) {
var matches = allMatches[i];
for (var j = 0; j < matches.length; ++j) {
var absolute = path.resolve(cwd, matches[j]);
allPaths[absolute] = true;
}
}
return Object.keys(allPaths);
});
};
var readFileFromFileSystem = function readFileFromFileSystem(filePath) {
return new Promise(function (resolve, reject) {
fs.readFile(filePath, 'utf8', function (error, contents) {
if (error) {
reject(error);
} else {
resolve(contents);
}
});
});
};
exports.expandFilePatterns = expandFilePatterns;
exports.readFileFromFileSystem = readFileFromFileSystem;