From d8537faa1cc21f2fb6665aa2c136d129c589363a Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Thu, 1 Apr 2021 12:17:27 +0200 Subject: [PATCH] feat: enable ESLint plugin in migrate --- lib/controllers/migrate-controller.ts | 33 +++++++++++++++++++-------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/lib/controllers/migrate-controller.ts b/lib/controllers/migrate-controller.ts index 401f64826e..5bfc8d76bf 100644 --- a/lib/controllers/migrate-controller.ts +++ b/lib/controllers/migrate-controller.ts @@ -1640,16 +1640,29 @@ export class MigrateController } private async runESLint(projectDir: string) { - // todo: run @nativescript/eslint-plugin on project folder to update imports - // const childProcess = injector.resolve('childProcess') as IChildProcess; - // const args = [ - // 'npx', - // '--package typescript', - // '--package @nativescript/eslint-plugin', - // '-c eslint-plugin', - // projectDir - // ] - // await childProcess.exec(args.join(' ')) + this.spinner.start(`Running ESLint fixes`); + try { + const childProcess = injector.resolve("childProcess") as IChildProcess; + const npxVersion = await childProcess.exec("npx -v"); + + const npxFlags = []; + + if (semver.gt(semver.coerce(npxVersion), "7.0.0")) { + npxFlags.push("-y"); + } + + const args = [ + "npx", + ...npxFlags, + "@nativescript/eslint-plugin", + projectDir, + ]; + await childProcess.exec(args.join(" ")); + this.spinner.succeed(`Applied ESLint fixes`); + } catch (err) { + this.spinner.fail(`Failed to apply ESLint fixes`); + this.$logger.trace("Failed to apply ESLint fixes. Error is:", err); + } } }