UNPKG

pcf-scripts

Version:

This package contains a module for building PowerApps Component Framework (PCF) controls. See project homepage how to install.

42 lines (40 loc) 1.55 kB
"use strict"; // Copyright (C) Microsoft Corporation. All rights reserved. Object.defineProperty(exports, "__esModule", { value: true }); exports.EslintValidate = EslintValidate; const diagnosticMessages_generated_1 = require("./diagnosticMessages.generated"); const eslint_1 = require("eslint"); const lodash_1 = require("lodash"); async function EslintValidate(diag, controlName, fix = false, overrides) { let options = { errorOnUnmatchedPattern: false, fix, }; // Eslint >= 9 doesn't support extensions, so only add it for versions < 9 if (Number(eslint_1.ESLint.version?.split(".")?.[0] ?? 0) < 9) { options.extensions = [".ts", ".tsx"]; } if (overrides) { options = (0, lodash_1.merge)(options, overrides); } const eslint = new eslint_1.ESLint(options); // Lint files const results = await eslint.lintFiles(controlName); // Modify the files with the fixed code. if (fix) await eslint_1.ESLint.outputFixes(results); let errorCount = 0; results.forEach((result) => (errorCount += result.errorCount)); // Format the results. const formatter = await eslint.loadFormatter("stylish"); const resultText = await formatter.format(results); if (errorCount > 0) { diag.pushA(diagnosticMessages_generated_1.strings.eslint_validation_error, [resultText]); return Promise.reject(new Error()); } else if (resultText) { console.log(resultText); } return true; } //# sourceMappingURL=eslintValidator.js.map