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