tslint-to-eslint-config
Version:
Converts your TSLint configuration to the closest reasonable ESLint equivalent.
32 lines • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertLintConfig = void 0;
const types_1 = require("../../types");
const formatOutput_1 = require("./formatting/formatOutput");
const joinConfigConversionResults_1 = require("./joinConfigConversionResults");
/**
* Root-level driver to convert a TSLint configuration to ESLint.
* @see `/docs/Architecture/Linters.md` for documentation.
*/
const convertLintConfig = async (dependencies, settings, originalConfigurations, ruleEquivalents) => {
// 1. Deduplicated ESLint rules and metadata are generated from raw TSLint rules.
const summarizedConfiguration = await dependencies.createESLintConfiguration(originalConfigurations, settings.prettier, ruleEquivalents);
// 2. Those deduplicated rules and metadata are written to the output configuration file.
const output = (0, joinConfigConversionResults_1.joinConfigConversionResults)(summarizedConfiguration, originalConfigurations);
// 3. That ESLint configuration output is written to the output configuration file.
const fileWriteError = await dependencies.fileSystem.writeFile(settings.config, (0, formatOutput_1.formatOutput)(settings.config, output));
if (fileWriteError !== undefined) {
return {
errors: [fileWriteError],
status: types_1.ResultStatus.Failed,
};
}
// 5. A summary of conversion results is printed, along with any now-missing packages.
await dependencies.reportConfigConversionResults(settings.config, summarizedConfiguration);
await dependencies.logMissingPackages(summarizedConfiguration, originalConfigurations.packages);
return {
status: types_1.ResultStatus.Succeeded,
};
};
exports.convertLintConfig = convertLintConfig;
//# sourceMappingURL=convertLintConfig.js.map