@perfective/eslint-config
Version:
ESLint shareable rules configuration
46 lines • 1.46 kB
JavaScript
import { flatConfigs } from 'eslint-plugin-import';
import { javascriptFiles, typescriptFiles } from "../../linter/glob.js";
import { javascriptLanguageOptions, typescriptLanguageOptions } from "../../linter/language-options.js";
import { helpfulWarningsRules } from "./helpful-warnings-rules.js";
import { moduleSystemsRules } from "./module-systems-rules.js";
import { staticAnalysisRules } from "./static-analysis-rules.js";
import { styleGuideRules } from "./style-guide-rules.js";
export function importConfig() {
return {
plugins: {
import: flatConfigs.recommended.plugins.import
},
rules: Object.assign(Object.assign(Object.assign(Object.assign({}, staticAnalysisRules), helpfulWarningsRules), moduleSystemsRules), styleGuideRules)
};
}
export function importJavascriptConfig() {
return {
files: javascriptFiles,
languageOptions: javascriptLanguageOptions(),
plugins: {},
settings: {
'import/extensions': ['.js', '.jsx']
},
rules: {
'import/no-commonjs': 'off',
'import/unambiguous': 'off'
}
};
}
export function importTypescriptConfig() {
return {
files: typescriptFiles,
languageOptions: typescriptLanguageOptions(),
settings: {
'import/parsers': {
'@typescript-eslint/parser': ['.ts', '.tsx']
},
'import/resolver': {
typescript: {
alwaysTryTypes: true,
project: './tsconfig.json'
}
}
}
};
}