tslint-to-eslint-config
Version:
Converts your TSLint configuration to the closest reasonable ESLint equivalent.
65 lines (64 loc) • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.retrieveExtendsValues = void 0;
const configurationError_1 = require("../../../errors/configurationError");
const resolveExtensionNames_1 = require("./resolveExtensionNames");
const builtInExtensions = new Map([
["eslint:all", "eslint/conf/eslint-all"],
["eslint:recommended", "eslint/conf/eslint-recommended"],
]);
const pluginExtensions = new Map([
["eslint-plugin-prettier", "node_modules/eslint-config-prettier/index.js"],
[
"plugin:@typescript-eslint/all",
"node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.json",
],
[
"plugin:@typescript-eslint/recommended",
"node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.json",
],
[
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.json",
],
["plugin:react/recommended", "node_modules/eslint-plugin-react/index.js"],
]);
/**
* Imports any extended ESLint rulesets as ESLint configurations.
*/
const retrieveExtendsValues = async (dependencies, rawExtensionNames) => {
const importedExtensions = [];
const configurationErrors = [];
const extensionNames = (0, resolveExtensionNames_1.resolveExtensionNames)(rawExtensionNames);
await Promise.all(
extensionNames.map(async (extensionName) => {
const builtInExtension = builtInExtensions.get(extensionName);
if (builtInExtension !== undefined) {
importedExtensions.push(await dependencies.importer(builtInExtension));
return;
}
const pluginExtension = pluginExtensions.get(extensionName);
if (pluginExtension !== undefined) {
const importedTypeScriptPlugin = await dependencies.importer(pluginExtension);
importedExtensions.push({
rules: importedTypeScriptPlugin.rules,
});
return;
}
const imported = await dependencies.importer(extensionName);
if (imported instanceof Error) {
configurationErrors.push(
new configurationError_1.ConfigurationError(
imported,
`Could not resolve ESLint extension '${extensionName}'.`,
),
);
} else {
importedExtensions.push(imported);
}
}),
);
return { configurationErrors, importedExtensions };
};
exports.retrieveExtendsValues = retrieveExtendsValues;
//# sourceMappingURL=retrieveExtendsValues.js.map