eslint.config.mjs (42 lines of code) (raw):
import guardian from '@guardian/eslint-config';
// eslint-disable-next-line import/default -- can we switch to https://github.com/gajus/eslint-plugin-jsdoc
import tsdocRequired from '@guardian/eslint-plugin-tsdoc-required';
import customRules from 'eslint-plugin-custom-rules';
export default [
...guardian.configs.recommended,
...guardian.configs.jest,
{
languageOptions: {
parserOptions: {
project: "./tsconfig.eslint.json",
projectService: false
}
},
rules: {
"custom-rules/valid-constructors": "error",
},
plugins: {
"@guardian/tsdoc-required": tsdocRequired,
"custom-rules": customRules
}
},
{
files: ["src/bin/**"],
rules: {
"custom-rules/valid-constructors": "off",
},
},
// This rule is applied within `overrides` as it only applies to the `experimental` directory, and the rule's test.
{
files: ["src/experimental/**", "tools/eslint/rules/experimental-classes.test.ts"],
rules: {
"custom-rules/experimental-classes": "error",
},
},
{
files: ["src/patterns/**"],
rules: {
"@guardian/tsdoc-required/tsdoc-required": "error",
}
}
];