tslint-to-eslint-config
Version:
Converts your TSLint configuration to the closest reasonable ESLint equivalent.
48 lines (47 loc) • 1.93 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