@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
36 lines (33 loc) • 1.46 kB
JavaScript
import 'eslint/use-at-your-own-risk';
import { extractSubPlugin } from '../utility/extract-sub-plugin.utility.js';
import { formatConfig } from '../utility/format-config.utility.js';
import { formatPluginName } from '../utility/format-plugin-name.utility.js';
import { formatRuleName } from '../utility/format-rule-name.utility.js';
import nPlugin from 'eslint-plugin-n';
/**
* Loads the ESLint configuration for Node.js
* @param {IConfigOptions} config - Configuration options
* @returns {Array<Linter.Config>} An array of ESLint configurations for Node.js
*/
function loadConfig(config) {
return [
{
...formatConfig([nPlugin.configs["flat/recommended"]])[0],
files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
plugins: {
[formatPluginName("n")]: nPlugin,
[formatPluginName("n/no-unsupported-features")]: extractSubPlugin(nPlugin, "no-unsupported-feature"),
},
},
{
files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"],
rules: {
[formatRuleName("n/exports-style")]: ["error", "exports"],
[formatRuleName("n/no-missing-import")]: "off",
[formatRuleName("n/no-process-exit")]: config.withUnicorn ? "off" : "error", // Disable the rule if the Unicorn plugin is enabled.
},
},
];
}
export { loadConfig as default };
//# sourceMappingURL=node.js.map