From a94fdaf47046f7065fb066f9468834ff6d3a413d Mon Sep 17 00:00:00 2001 From: Peter Burns Date: Tue, 27 Mar 2018 20:44:49 -0700 Subject: [PATCH 1/2] Get the configured analyzer from the project config object itself. --- npm-shrinkwrap.json | 246 ++++++++++++++++++++++++++++++++--------- package.json | 8 +- src/analyze/analyze.ts | 3 +- src/lint/lint.ts | 4 +- src/util.ts | 28 ----- 5 files changed, 203 insertions(+), 86 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 9b852eb7..56f438e8 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -414,8 +414,7 @@ "@types/node": { "version": "6.0.65", "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.65.tgz", - "integrity": "sha1-wA+qf/z8mEK13Xv2UIclYlBNVnA=", - "dev": true + "integrity": "sha1-wA+qf/z8mEK13Xv2UIclYlBNVnA=" }, "@types/opn": { "version": "3.0.28", @@ -10469,9 +10468,9 @@ } }, "polymer-analyzer": { - "version": "3.0.0-pre.17", - "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.17.tgz", - "integrity": "sha512-iBNhCEFMAqiMKHdSlIEBpW9EM7j4tI5R0yRzLQ4//J1ZTvnoJCcXS81SZerG5BeSPITCTJweioutm30HwzhfiQ==", + "version": "3.0.0-pre.18", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.18.tgz", + "integrity": "sha512-3tTtq/96tdJMkDL3TycD+gfTs0Z5I1DghjMRn6jU27e2De38VTVsFuHt36PmW+pVs1n7n5itwK0Py56Fsl3Eog==", "requires": { "@types/babel-generator": "6.25.1", "@types/babel-traverse": "6.25.3", @@ -10484,7 +10483,7 @@ "@types/doctrine": "0.0.1", "@types/is-windows": "0.2.0", "@types/minimatch": "3.0.3", - "@types/node": "6.0.102", + "@types/node": "6.0.65", "@types/parse5": "2.2.34", "@types/resolve": "0.0.6", "babel-generator": "6.26.1", @@ -10503,7 +10502,7 @@ "minimatch": "3.0.4", "parse5": "4.0.0", "path-is-inside": "1.0.2", - "polymer-project-config": "3.10.0", + "polymer-project-config": "3.11.1", "resolve": "1.6.0", "shady-css-parser": "0.1.0", "stable": "0.1.6", @@ -10512,17 +10511,12 @@ "whatwg-url": "6.4.0" }, "dependencies": { - "@types/node": { - "version": "6.0.102", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", - "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==" - }, "@types/resolve": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", "requires": { - "@types/node": "6.0.102" + "@types/node": "6.0.65" } }, "is-windows": { @@ -10538,9 +10532,9 @@ } }, "polymer-build": { - "version": "3.0.0-pre.1", - "resolved": "https://registry.npmjs.org/polymer-build/-/polymer-build-3.0.0-pre.1.tgz", - "integrity": "sha512-aV18VDqRjs8cmEgqAWqiSmx98VTGYZPK4A+uBIKQYN4cakypW2HV1DDlRiT6V0d4n3yjS5ECD5u/hAsl4TdaCA==", + "version": "3.0.0-pre.2", + "resolved": "https://registry.npmjs.org/polymer-build/-/polymer-build-3.0.0-pre.2.tgz", + "integrity": "sha512-WnQqktn7g/E7qd3EBcFLS6j3p+jtMiCB+cLH0qNmdSnJQBmRsokzu4iF72cZ84PFflbFmYncC0N+iWW9AHMeTw==", "requires": { "@types/babel-core": "6.25.3", "@types/babel-traverse": "6.25.3", @@ -10548,7 +10542,7 @@ "@types/html-minifier": "3.5.1", "@types/is-windows": "0.2.0", "@types/mz": "0.0.31", - "@types/node": "6.0.102", + "@types/node": "6.0.103", "@types/parse5": "2.2.34", "@types/resolve": "0.0.7", "@types/uuid": "3.4.3", @@ -10583,7 +10577,7 @@ "plylog": "0.5.0", "polymer-analyzer": "3.0.0-pre.17", "polymer-bundler": "4.0.0-pre.2", - "polymer-project-config": "3.10.0", + "polymer-project-config": "3.11.1", "resolve": "1.6.0", "stream": "0.0.2", "sw-precache": "5.2.1", @@ -10594,16 +10588,24 @@ }, "dependencies": { "@types/node": { - "version": "6.0.102", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", - "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==" + "version": "6.0.103", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.103.tgz", + "integrity": "sha512-EHU5B9OlENiGEziLiC2XjhjBoVTiX6s4JwZrMHkLQzrzOA0bfZKfcT3fZaalgujcrs2O97VgKaxqguwV+12UJQ==" }, "@types/resolve": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.7.tgz", "integrity": "sha512-GPewdjkb0Q76o459qgp6pBLzJj/bD3oveS2kfLhIkZ9U3t3AFKtl5DlFB6lGTw0iZmcmxoGC8lpLW3NNJKrN9A==", "requires": { - "@types/node": "6.0.102" + "@types/node": "6.0.103" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "1.9.1" } }, "babel-code-frame": { @@ -10654,7 +10656,7 @@ "integrity": "sha1-+CBJdb0NrLvltYqKk//B/tD/zSo=", "requires": { "@types/clone": "0.1.30", - "@types/node": "6.0.102", + "@types/node": "6.0.103", "@types/parse5": "2.2.34", "clone": "2.1.2", "parse5": "2.2.3" @@ -10691,6 +10693,165 @@ "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==" } } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.17", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.17.tgz", + "integrity": "sha512-iBNhCEFMAqiMKHdSlIEBpW9EM7j4tI5R0yRzLQ4//J1ZTvnoJCcXS81SZerG5BeSPITCTJweioutm30HwzhfiQ==", + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.103", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.42", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.11.1", + "resolve": "1.6.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "requires": { + "@types/node": "6.0.103" + } + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==" + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + } + }, + "babylon": { + "version": "7.0.0-beta.42", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.42.tgz", + "integrity": "sha512-h6E/OkkvcBw/JimbL0p8dIaxrcuQn3QmIYGC/GtJlRYif5LTKBYPHXYwqluJpfS/kOXoz0go+9mkmOVC0M+zWw==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==" + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "requires": { + "has-flag": "3.0.0" + } } } }, @@ -10706,23 +10867,18 @@ "espree": "3.5.4", "mkdirp": "0.5.1", "parse5": "2.2.3", - "polymer-analyzer": "3.0.0-pre.17", + "polymer-analyzer": "3.0.0-pre.18", "source-map": "0.5.7", "vscode-uri": "1.0.3" }, "dependencies": { - "@types/node": { - "version": "6.0.102", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", - "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==" - }, "dom5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/dom5/-/dom5-2.3.0.tgz", "integrity": "sha1-+CBJdb0NrLvltYqKk//B/tD/zSo=", "requires": { "@types/clone": "0.1.30", - "@types/node": "6.0.102", + "@types/node": "6.0.65", "@types/parse5": "2.2.34", "clone": "2.1.2", "parse5": "2.2.3" @@ -10736,9 +10892,9 @@ } }, "polymer-linter": { - "version": "3.0.0-pre.3", - "resolved": "https://registry.npmjs.org/polymer-linter/-/polymer-linter-3.0.0-pre.3.tgz", - "integrity": "sha512-JURkuXcdljyEtHQ/5Z/JuSWrOtrrRDjmQvjlk8aHty3kei3vtbco0bqG+jDJGmF7bj2vdRQU0b+fyrN9JZFD4w==", + "version": "3.0.0-pre.4", + "resolved": "https://registry.npmjs.org/polymer-linter/-/polymer-linter-3.0.0-pre.4.tgz", + "integrity": "sha512-TztEGDuGQgg7I9P80TobqziWrAm2u7EMEoaqry7f1L2Ti7oSzRZ820v4U/kTi9vaXNblSz/nSHw9d2D3/43Gcg==", "requires": { "@types/fast-levenshtein": "0.0.1", "@types/parse5": "2.2.34", @@ -10747,8 +10903,8 @@ "css-what": "2.1.0", "dom5": "3.0.0", "fast-levenshtein": "2.0.6", - "parse5": "2.2.3", - "polymer-analyzer": "3.0.0-pre.17", + "parse5": "4.0.0", + "polymer-analyzer": "3.0.0-pre.18", "shady-css-parser": "0.1.0", "stable": "0.1.6", "strip-indent": "2.0.0", @@ -10802,11 +10958,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, - "parse5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", - "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=" - }, "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", @@ -10815,21 +10966,16 @@ } }, "polymer-project-config": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.10.0.tgz", - "integrity": "sha512-+vrx5aAZM3rpViqnYhTX1bIpXXTlGpiAGZEsk7WzN6EqSMQPI5eYRw4XD1kmjo1W6GShIhPfvhh+Ik/pywGGkw==", + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.11.1.tgz", + "integrity": "sha512-sz5ooBVkoIPUj+CvPwWcrs5OkdwzBAcD8z+KMM9R1IHdqkj4B7mu2qAk8166lr5edIJJ0HoEQxa3Dx10YqJWdw==", "requires": { - "@types/node": "6.0.102", + "@types/node": "6.0.65", "jsonschema": "1.2.2", "minimatch-all": "1.1.0", "plylog": "0.5.0" }, "dependencies": { - "@types/node": { - "version": "6.0.102", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", - "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==" - }, "plylog": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", @@ -11092,7 +11238,7 @@ "plylog": "0.5.0", "polymer-analyzer": "2.7.0", "polymer-bundler": "3.1.1", - "polymer-project-config": "3.10.0", + "polymer-project-config": "3.11.1", "resolve": "1.6.0", "stream": "0.0.2", "sw-precache": "5.2.1", diff --git a/package.json b/package.json index d77005d1..5a536c1a 100644 --- a/package.json +++ b/package.json @@ -59,10 +59,10 @@ "merge-stream": "^1.0.1", "mz": "^2.6.0", "plylog": "^0.4.0", - "polymer-analyzer": "^3.0.0-pre.14", - "polymer-build": "^3.0.0-pre.1", - "polymer-linter": "^3.0.0-pre.3", - "polymer-project-config": "^3.10.0", + "polymer-analyzer": "^3.0.0-pre.18", + "polymer-build": "^3.0.0-pre.2", + "polymer-linter": "^3.0.0-pre.4", + "polymer-project-config": "^3.11.1", "polyserve": "^0.25.2", "request": "^2.72.0", "rimraf": "^2.6.1", diff --git a/src/analyze/analyze.ts b/src/analyze/analyze.ts index e7d6835a..49eea664 100644 --- a/src/analyze/analyze.ts +++ b/src/analyze/analyze.ts @@ -16,11 +16,10 @@ import * as globby from 'globby'; import {AnalysisFormat, generateAnalysis} from 'polymer-analyzer'; import {Feature} from 'polymer-analyzer/lib/model/model'; import {ProjectConfig} from 'polymer-project-config'; -import {getConfiguredAnalyzer} from '../util'; export async function analyze(config: ProjectConfig, inputs: string[]): Promise { - const {analyzer} = getConfiguredAnalyzer(config); + const {analyzer} = await config.initializeAnalyzer(); const isInTests = /(\b|\/|\\)(test)(\/|\\)/; const isNotTest = (f: Feature) => diff --git a/src/lint/lint.ts b/src/lint/lint.ts index e46133fd..d590a6ae 100644 --- a/src/lint/lint.ts +++ b/src/lint/lint.ts @@ -26,7 +26,7 @@ import {ProjectConfig} from 'polymer-project-config'; import {CommandResult} from '../commands/command'; import {Options} from '../commands/lint'; -import {getConfiguredAnalyzer, indent, prompt} from '../util'; +import {indent, prompt} from '../util'; const logger = logging.getLogger('cli.lint'); @@ -54,7 +54,7 @@ export async function lint(options: Options, config: ProjectConfig) { filesToIgnore: lintOptions.filesToIgnore, }); - const {analyzer, urlLoader, urlResolver} = getConfiguredAnalyzer(config); + const {analyzer, urlLoader, urlResolver} = await config.initializeAnalyzer(); const linter = new lintLib.Linter(rules, analyzer); if (options.watch) { diff --git a/src/util.ts b/src/util.ts index e7678deb..4394c040 100644 --- a/src/util.ts +++ b/src/util.ts @@ -14,8 +14,6 @@ import * as inquirer from 'inquirer'; import {execSync} from 'mz/child_process'; -import {Analyzer, FsUrlLoader, PackageUrlResolver} from 'polymer-analyzer'; -import {ProjectConfig} from 'polymer-project-config'; /** * Check if the current shell environment is MinGW. MinGW can't handle some @@ -70,29 +68,3 @@ export function indent(str: string, additionalIndentation = ' ') { export function dashToCamelCase(text: string): string { return text.replace(/-([a-z])/g, (v) => v[1].toUpperCase()); } - -export function getConfiguredAnalyzer(config: ProjectConfig) { - const urlLoader = new FsUrlLoader(config.root); - const urlResolver = new PackageUrlResolver( - {packageDir: config.root, componentDir: config.componentDir}); - - const analyzer = new Analyzer({ - urlLoader, - urlResolver, - moduleResolution: convertModuleResolution(config.moduleResolution) - }); - return {urlLoader, urlResolver, analyzer}; -} - -function convertModuleResolution(moduleResolution: 'node'|'none'): 'node'| - undefined { - switch (moduleResolution) { - case 'node': - return 'node'; - case 'none': - return undefined; - default: - const never: never = moduleResolution; - throw new Error(`Unknown module resolution parameter: ${never}`); - } -} From b4d3358a7318675ce10523f78a5568c2df69a885 Mon Sep 17 00:00:00 2001 From: Peter Burns Date: Tue, 27 Mar 2018 21:03:05 -0700 Subject: [PATCH 2/2] Let the config construct the warning filter too. --- src/lint/lint.ts | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/lint/lint.ts b/src/lint/lint.ts index d590a6ae..71496d4a 100644 --- a/src/lint/lint.ts +++ b/src/lint/lint.ts @@ -48,21 +48,28 @@ export async function lint(options: Options, config: ProjectConfig) { } const rules = lintLib.registry.getRules(ruleCodes); - const filter = new WarningFilter({ - warningCodesToIgnore: new Set(lintOptions.ignoreWarnings || []), - minimumSeverity: Severity.WARNING, - filesToIgnore: lintOptions.filesToIgnore, - }); - - const {analyzer, urlLoader, urlResolver} = await config.initializeAnalyzer(); + const {analyzer, urlLoader, urlResolver, warningFilter} = + await config.initializeAnalyzer(); const linter = new lintLib.Linter(rules, analyzer); if (options.watch) { return watchLoop( - analyzer, urlLoader, urlResolver, linter, options, config, filter); + analyzer, + urlLoader, + urlResolver, + linter, + options, + config, + warningFilter); } else { return run( - analyzer, urlLoader, urlResolver, linter, options, config, filter); + analyzer, + urlLoader, + urlResolver, + linter, + options, + config, + warningFilter); } }