canonical
Version:
Canonical code style linter and formatter for JavaScript, SCSS and CSS.
84 lines (60 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _forEach = require('lodash/collection/forEach');
var _forEach2 = _interopRequireDefault(_forEach);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _lintText = require('./lintText');
var _lintText2 = _interopRequireDefault(_lintText);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var linterMap = undefined;
linterMap = {
'.js': 'js',
'.css': 'scss',
'.scss': 'scss'
};
/**
* @typedef lintFiles~report
* @property {lintText~result[]} results
* @property {number} errorCount
* @property {number} warningCount
*/
/**
* @param {string[]} filePaths
* @return {lintFiles~report}
*/
exports.default = function (filePaths) {
var report = undefined;
report = {};
report.results = [];
report.errorCount = 0;
report.warningCount = 0;
(0, _forEach2.default)(filePaths, function (filePath) {
var extensionName = undefined,
result = undefined,
text = undefined;
extensionName = _path2.default.extname(filePath);
if (linterMap[extensionName]) {
text = _fs2.default.readFileSync(filePath, {
encoding: 'utf8'
});
result = (0, _lintText2.default)(text, {
linter: linterMap[extensionName]
});
result.filePath = filePath;
report.results.push(result);
report.errorCount += result.errorCount;
report.warningCount += result.warningCount;
} else {
/* eslint-disable no-console */
console.warn('Ignoring file "' + filePath + '". No linter mapped to "' + extensionName + '" extension.');
/* eslint-enable no-console */
}
});
return report;
};
//# sourceMappingURL=lintFiles.js.map