@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
41 lines (40 loc) • 1.52 kB
JavaScript
import { isEnabled } from "../utils/isEnabled.mjs";
import path from "node:path";
//#region src/rules/importX.ts
function getImportXRules(options) {
const { packageDir, configs: { typescript } } = options;
const isTypescriptEnabled = isEnabled(typescript);
return {
"import-x/export": isTypescriptEnabled ? "off" : "error",
"import-x/no-deprecated": "warn",
"import-x/no-empty-named-blocks": "error",
"import-x/no-extraneous-dependencies": ["error", {
includeTypes: true,
packageDir: path.resolve(packageDir)
}],
"import-x/no-mutable-exports": "error",
"import-x/no-named-as-default": "error",
"import-x/no-amd": "error",
"import-x/no-commonjs": "error",
"import-x/no-import-module-exports": "error",
"import-x/named": isTypescriptEnabled ? "off" : "error",
"import-x/default": isTypescriptEnabled ? "off" : "error",
"import-x/namespace": ["error", { allowComputed: true }],
"import-x/no-absolute-path": "warn",
"import-x/no-cycle": ["error", {
maxDepth: 1,
ignoreExternal: true
}],
"import-x/no-self-import": "error",
"import-x/no-unresolved": isTypescriptEnabled ? "off" : "error",
"import-x/no-useless-path-segments": "error",
"import-x/consistent-type-specifier-style": "warn",
"import-x/exports-last": "warn",
"import-x/first": ["warn", "disable-absolute-first"],
"import-x/group-exports": "warn",
"import-x/no-duplicates": ["error", { considerQueryString: true }],
"import-x/no-named-default": "error"
};
}
//#endregion
export { getImportXRules };