UNPKG

analyze-es6-modules

Version:

Performs static analysis of ES6 modules in your codebase.

65 lines (54 loc) 1.55 kB
'use strict'; 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;