element-web-Github/.eslintrc.js

95 lines
3.9 KiB
JavaScript
Raw Normal View History

module.exports = {
plugins: ["matrix-org"],
2022-12-09 20:28:29 +08:00
extends: ["plugin:matrix-org/babel", "plugin:matrix-org/react"],
parserOptions: {
project: ["./tsconfig.json"],
},
2021-06-30 20:19:04 +08:00
env: {
browser: true,
node: true,
},
2021-06-30 20:19:04 +08:00
rules: {
// Things we do that break the ideal style
2022-12-09 20:28:29 +08:00
quotes: "off",
},
settings: {
react: {
2022-12-09 20:28:29 +08:00
version: "detect",
2022-10-13 16:22:34 +08:00
},
},
2022-12-09 20:28:29 +08:00
overrides: [
{
files: ["src/**/*.{ts,tsx}", "test/**/*.{ts,tsx}", "scripts/*.ts"],
2022-12-09 20:28:29 +08:00
extends: ["plugin:matrix-org/typescript", "plugin:matrix-org/react"],
// NOTE: These rules are frozen and new rules should not be added here.
// New changes belong in https://github.com/matrix-org/eslint-plugin-matrix-org/
rules: {
// Things we do that break the ideal style
"prefer-promise-reject-errors": "off",
"quotes": "off",
2022-12-09 20:28:29 +08:00
// We disable this while we're transitioning
"@typescript-eslint/no-explicit-any": "off",
// We're okay with assertion errors when we ask for them
"@typescript-eslint/no-non-null-assertion": "off",
2022-12-09 20:28:29 +08:00
// Ban matrix-js-sdk/src imports in favour of matrix-js-sdk/src/matrix imports to prevent unleashing hell.
"no-restricted-imports": [
"error",
{
paths: [
{
name: "matrix-js-sdk",
message: "Please use matrix-js-sdk/src/matrix instead",
},
{
name: "matrix-js-sdk/",
message: "Please use matrix-js-sdk/src/matrix instead",
},
{
name: "matrix-js-sdk/src",
message: "Please use matrix-js-sdk/src/matrix instead",
},
{
name: "matrix-js-sdk/src/",
message: "Please use matrix-js-sdk/src/matrix instead",
},
{
name: "matrix-js-sdk/src/index",
message: "Please use matrix-js-sdk/src/matrix instead",
},
{
name: "matrix-react-sdk",
message: "Please use matrix-react-sdk/src/index instead",
},
{
name: "matrix-react-sdk/",
message: "Please use matrix-react-sdk/src/index instead",
},
],
patterns: [
{
group: ["matrix-js-sdk/lib", "matrix-js-sdk/lib/", "matrix-js-sdk/lib/**"],
message: "Please use matrix-js-sdk/src/* instead",
},
{
group: ["matrix-react-sdk/lib", "matrix-react-sdk/lib/", "matrix-react-sdk/lib/**"],
message: "Please use matrix-react-sdk/src/* instead",
},
],
},
],
},
},
2022-12-09 20:28:29 +08:00
{
files: ["test/**/*.{ts,tsx}"],
rules: {
// We don't need super strict typing in test utilities
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-member-accessibility": "off",
"@typescript-eslint/ban-ts-comment": "off",
2022-12-09 20:28:29 +08:00
},
},
2022-12-09 20:28:29 +08:00
],
};