UNPKG

1.77 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const NormalizedMessage_1 = require("./NormalizedMessage");
4const FsHelper_1 = require("./FsHelper");
5const NormalizedMessageFactories_1 = require("./NormalizedMessageFactories");
6const path = require("path");
7function createEslinter(eslintOptions) {
8 // tslint:disable-next-line:no-implicit-dependencies
9 const eslint = require('eslint');
10 // See https://eslint.org/docs/1.0.0/developer-guide/nodejs-api#cliengine
11 const eslinter = new eslint.CLIEngine(eslintOptions);
12 const createNormalizedMessageFromEsLintFailure = NormalizedMessageFactories_1.makeCreateNormalizedMessageFromEsLintFailure();
13 function getLintsForFile(filepath) {
14 try {
15 if (eslinter.isPathIgnored(filepath) ||
16 path.extname(filepath).localeCompare('.json', undefined, {
17 sensitivity: 'accent'
18 }) === 0) {
19 return undefined;
20 }
21 const lints = eslinter.executeOnFiles([filepath]);
22 return lints;
23 }
24 catch (e) {
25 FsHelper_1.throwIfIsInvalidSourceFileError(filepath, e);
26 }
27 return undefined;
28 }
29 function getFormattedLints(lintReports) {
30 const allEsLints = [];
31 for (const value of lintReports) {
32 for (const lint of value.results) {
33 allEsLints.push(...lint.messages.map(message => createNormalizedMessageFromEsLintFailure(message, lint.filePath)));
34 }
35 }
36 return NormalizedMessage_1.NormalizedMessage.deduplicate(allEsLints);
37 }
38 return { getLints: getLintsForFile, getFormattedLints };
39}
40exports.createEslinter = createEslinter;
41//# sourceMappingURL=createEslinter.js.map
\No newline at end of file