@appworks/doctor
Version:
Analyse and running codemods over react/rax projects, troubleshooting and automatically fixing errors
48 lines (47 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var path = require("path");
var getFiles_1 = require("./getFiles");
var LANGUAGE_MAP = {
'.html': 'HTML',
'.js': 'JavaScript',
'.jsx': 'JavaScript',
'.ts': 'TypeScript',
'.tsx': 'TypeScript',
'.css': 'CSS',
'.scss': 'SASS',
'.less': 'Less',
'.md': 'Markdown',
'.json': 'JSON',
'.vue': 'VUE',
};
var UNKNOWN_LANGUAGE = 'Other';
var Analyzer = /** @class */ (function () {
function Analyzer(options) {
this.options = options;
}
Analyzer.prototype.analyse = function (directory) {
var report = { languages: [] };
var languageCache = {};
var files = getFiles_1.default(directory, this.options.ignore);
files.forEach(function (file) {
var language = LANGUAGE_MAP[path.extname(file.path)] || UNKNOWN_LANGUAGE;
if (!languageCache[language]) {
languageCache[language] = { language: language, count: 1 };
}
else {
languageCache[language].count++;
}
});
Object.keys(languageCache).forEach(function (key) {
report.languages.push(languageCache[key]);
});
report.filesInfo = {
count: files.length,
lines: files.reduce(function (total, file) { return total + file.LoC; }, 0),
};
return report;
};
return Analyzer;
}());
exports.default = Analyzer;