tslint-to-eslint-config
Version:
Converts your TSLint configuration to the closest reasonable ESLint equivalent.
40 lines • 2.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logMissingPackages = void 0;
const chalk_1 = __importDefault(require("chalk"));
const os_1 = require("os");
const utils_1 = require("../../../../utils");
const packageManagers_1 = require("./packageManagers");
const logMissingPackages = async (dependencies, ruleConversionResults, packageConfiguration) => {
var _a, _b;
const packageManager = await dependencies.choosePackageManager();
const existingPackageNames = new Set([
...Object.keys((_a = packageConfiguration === null || packageConfiguration === void 0 ? void 0 : packageConfiguration.dependencies) !== null && _a !== void 0 ? _a : {}),
...Object.keys((_b = packageConfiguration === null || packageConfiguration === void 0 ? void 0 : packageConfiguration.devDependencies) !== null && _b !== void 0 ? _b : {}),
]);
const requiredPackageNames = [
"@typescript-eslint/eslint-plugin",
"@typescript-eslint/parser",
ruleConversionResults.extends.join("").includes("prettier") && "eslint-config-prettier",
ruleConversionResults.missing.length !== 0 && "@typescript-eslint/eslint-plugin-tslint",
"eslint",
...Array.from(ruleConversionResults.plugins),
].filter(utils_1.isTruthy);
const missingPackageNames = requiredPackageNames
.filter((packageName) => !existingPackageNames.has(packageName))
.sort();
if (missingPackageNames.length === 0) {
return;
}
dependencies.logger.stdout.write(chalk_1.default.cyanBright(`${os_1.EOL}⚡ ${missingPackageNames.length}`));
dependencies.logger.stdout.write(chalk_1.default.cyan(` new package${missingPackageNames.length === 1 ? " is" : "s are"} required for this ESLint configuration.`));
dependencies.logger.stdout.write(chalk_1.default.cyanBright(" ⚡"));
dependencies.logger.stdout.write(`${os_1.EOL} `);
dependencies.logger.stdout.write(chalk_1.default.cyan(packageManagers_1.installationMessages[packageManager](missingPackageNames.join(" "))));
dependencies.logger.stdout.write(os_1.EOL);
};
exports.logMissingPackages = logMissingPackages;
//# sourceMappingURL=logMissingPackages.js.map