UNPKG

@tylertech/forge-build-tools

Version:
26 lines 4.87 kB
import { ESLint } from 'eslint'; import { log } from '../utils/index.js'; /** * Runs ESLint on a set of files. * @param paths The paths or glob patterns to use for finding files to lint. * @param config The linting configuration. * @returns A `Promise` containing the results of the linting process. */ export async function lintESLint(paths, config) { const eslint = new ESLint(config?.options); const results = await eslint.lintFiles(paths); if (config?.options?.fix && config?.commitFixes) { await ESLint.outputFixes(results); } const hasError = results.some(r => r.errorCount > 0); const hasWarning = results.some(r => r.warningCount > 0); const formatter = await eslint.loadFormatter(config?.formatter || 'codeframe'); const resultText = await formatter.format(results); const errorResults = ESLint.getErrorResults(results); const canReport = config?.report || config?.report === undefined; if (canReport && resultText && (hasError || hasWarning)) { log(resultText); } return { hasError, hasWarning, errorResults, results, resultText }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpbnQvZXNsaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBbUJ4Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVSxDQUFDLEtBQXdCLEVBQUUsTUFBaUM7SUFDMUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFDO0lBQy9FLE1BQU0sVUFBVSxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELE1BQU0sU0FBUyxHQUFHLE1BQU0sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sS0FBSyxTQUFTLENBQUM7SUFFakUsSUFBSSxTQUFTLElBQUksVUFBVSxJQUFJLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDeEQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFU0xpbnQgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHsgbG9nIH0gZnJvbSAnLi4vdXRpbHMvaW5kZXguanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMaW50RVNMaW50UmVzdWx0IHtcbiAgaGFzRXJyb3I6IGJvb2xlYW47XG4gIGhhc1dhcm5pbmc6IGJvb2xlYW47XG4gIGVycm9yUmVzdWx0czogRVNMaW50LkxpbnRSZXN1bHRbXTtcbiAgcmVzdWx0czogRVNMaW50LkxpbnRSZXN1bHRbXTtcbiAgcmVzdWx0VGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaW50RVNMaW50Q29uZmlndXJhdGlvbiB7XG4gIG9wdGlvbnM/OiBJTGludEVTTGludE9wdGlvbnM7XG4gIGNvbW1pdEZpeGVzPzogYm9vbGVhbjtcbiAgcmVwb3J0PzogYm9vbGVhbjtcbiAgZm9ybWF0dGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaW50RVNMaW50T3B0aW9ucyBleHRlbmRzIEVTTGludC5PcHRpb25zIHt9XG5cbi8qKlxuICogUnVucyBFU0xpbnQgb24gYSBzZXQgb2YgZmlsZXMuXG4gKiBAcGFyYW0gcGF0aHMgVGhlIHBhdGhzIG9yIGdsb2IgcGF0dGVybnMgdG8gdXNlIGZvciBmaW5kaW5nIGZpbGVzIHRvIGxpbnQuXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBsaW50aW5nIGNvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyBBIGBQcm9taXNlYCBjb250YWluaW5nIHRoZSByZXN1bHRzIG9mIHRoZSBsaW50aW5nIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW50RVNMaW50KHBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSwgY29uZmlnPzogSUxpbnRFU0xpbnRDb25maWd1cmF0aW9uKTogUHJvbWlzZTxJTGludEVTTGludFJlc3VsdD4ge1xuICBjb25zdCBlc2xpbnQgPSBuZXcgRVNMaW50KGNvbmZpZz8ub3B0aW9ucyk7XG4gIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBlc2xpbnQubGludEZpbGVzKHBhdGhzKTtcblxuICBpZiAoY29uZmlnPy5vcHRpb25zPy5maXggJiYgY29uZmlnPy5jb21taXRGaXhlcykge1xuICAgIGF3YWl0IEVTTGludC5vdXRwdXRGaXhlcyhyZXN1bHRzKTtcbiAgfVxuXG4gIGNvbnN0IGhhc0Vycm9yID0gcmVzdWx0cy5zb21lKHIgPT4gci5lcnJvckNvdW50ID4gMCk7XG4gIGNvbnN0IGhhc1dhcm5pbmcgPSByZXN1bHRzLnNvbWUociA9PiByLndhcm5pbmdDb3VudCA+IDApO1xuICBjb25zdCBmb3JtYXR0ZXIgPSBhd2FpdCBlc2xpbnQubG9hZEZvcm1hdHRlcihjb25maWc/LmZvcm1hdHRlciB8fCAnY29kZWZyYW1lJyk7XG4gIGNvbnN0IHJlc3VsdFRleHQgPSBhd2FpdCBmb3JtYXR0ZXIuZm9ybWF0KHJlc3VsdHMpO1xuICBjb25zdCBlcnJvclJlc3VsdHMgPSBFU0xpbnQuZ2V0RXJyb3JSZXN1bHRzKHJlc3VsdHMpO1xuICBjb25zdCBjYW5SZXBvcnQgPSBjb25maWc/LnJlcG9ydCB8fCBjb25maWc/LnJlcG9ydCA9PT0gdW5kZWZpbmVkO1xuICBcbiAgaWYgKGNhblJlcG9ydCAmJiByZXN1bHRUZXh0ICYmIChoYXNFcnJvciB8fCBoYXNXYXJuaW5nKSkge1xuICAgIGxvZyhyZXN1bHRUZXh0KTtcbiAgfVxuXG4gIHJldHVybiB7IGhhc0Vycm9yLCBoYXNXYXJuaW5nLCBlcnJvclJlc3VsdHMsIHJlc3VsdHMsIHJlc3VsdFRleHQgfTtcbn1cbiJdfQ==