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
JavaScript
// 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
;