From ac98699b2836aaec43d471b912c55bfb36041619 Mon Sep 17 00:00:00 2001 From: Alex Kanunnikov Date: Tue, 29 Nov 2022 13:07:57 +0300 Subject: [PATCH] feat: workingDir for ember-template-lint --- src/template-linter.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/template-linter.ts b/src/template-linter.ts index cdf9ecc2..41ffa14c 100644 --- a/src/template-linter.ts +++ b/src/template-linter.ts @@ -16,7 +16,8 @@ import { getFileRanges, RangeWalker } from './utils/glimmer-script'; type FindUp = (name: string, opts: { cwd: string; type: string }) => Promise; type LinterVerifyArgs = { source: string; moduleId: string; filePath: string }; class Linter { - constructor() { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + constructor(_config?: { workingDir?: string }) { return this; } // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -153,6 +154,7 @@ export default class TemplateLinter { const linterMeta = project.dependenciesMeta.find((dep) => dep.name === 'ember-template-lint'); const linterVersion = linterMeta?.version.split('.')[0] || 'unknown'; + const literSupportWorkingDir = linterVersion === '5' || linterVersion === '4'; let sources = []; @@ -175,11 +177,19 @@ export default class TemplateLinter { let linter: Linter; try { - setCwd(project.root); - linter = new TemplateLinterKlass(); + if (!literSupportWorkingDir) { + setCwd(project.root); + linter = new TemplateLinterKlass(); + } else { + linter = new TemplateLinterKlass({ + workingDir: project.root, + }); + } } catch (e) { try { - setCwd(cwd); + if (!literSupportWorkingDir) { + setCwd(cwd); + } } catch (e) { logDebugInfo(e.stack); } @@ -212,7 +222,9 @@ export default class TemplateLinter { } try { - setCwd(cwd); + if (!literSupportWorkingDir) { + setCwd(cwd); + } } catch (e) { logDebugInfo(e.stack); }