eslint-config-mitodl
Version:
JavaScript style rules for MITODL
104 lines (103 loc) • 2.85 kB
JavaScript
module.exports = {
"parser": "@typescript-eslint/parser",
"plugins": [
"react",
"react-hooks",
],
settings: {
react: {
version: 'detect',
},
},
"env": {
"es6": true,
"browser": true,
"node": true,
},
"extends": [
"google",
"eslint:recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
],
"rules": {
"key-spacing": ["error", {
"beforeColon": false,
"afterColon": true,
"align": {
"beforeColon": false,
"afterColon": true,
"mode": "minimum",
"on": "value"
}
}],
"quotes": ["off"], // no opinion on ' vs ", let Prettier decide
"object-curly-spacing": ["off"], // no opinion, let Prettier decide
"new-cap": ["off"], // allows function calls like Immutable.Map(...)
"max-len": ["off"], // no opinion, let Prettier decide
"indent": ["error", 2],
"newline-after-var": ["off"],
"no-unused-vars": [ "error", {
"vars": "local",
"argsIgnorePattern": "action"
}],
"comma-dangle": ["off"],
"semi": ["error", "never"],
"eqeqeq": ["error"],
"no-var": ["error"],
"camelcase": ["error", {
"properties": "never"
}],
"guard-for-in": ["error"],
"prefer-template": ["error"],
"space-infix-ops": ["error"],
"space-before-blocks": ["error"],
"space-in-parens": ["error"],
"no-throw-literal": ["error"],
"arrow-parens": ["error", "as-needed"],
"valid-jsdoc": ["off"],
"require-jsdoc": ["off"],
"spaced-comment": ["off"],
"no-invalid-this": ["off"],
"one-var": ["error", {
"uninitialized": "always"
}],
"no-multi-spaces": ["off"],
"prefer-promise-reject-errors": ["off"],
"quote-props": ["error", "as-needed"],
"no-prototype-builtins": ["off"],
"react/jsx-indent-props": ["error", 2], // no tabs, indent is two spaces
"react/jsx-key": ["error"], // validate that key prop exists
"react/jsx-no-undef": ["error"], // disallow undeclared variables in JSX
"react/prop-types": ["off"],
"react/display-name" : ["off"],
"react/no-unescaped-entities": ["off"],
},
overrides: [
{
files: ["*.ts", "*.tsx"],
plugins: ["@typescript-eslint"],
extends: ["plugin:@typescript-eslint/recommended"],
rules: {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
varsIgnorePattern: "^_",
argsIgnorePattern: "^_",
destructuredArrayIgnorePattern: "^_",
ignoreRestSiblings: true,
}
],
},
overrides: [
{
files: ["*.test.ts?(x)", "*.spec.ts?(x)"],
rules: {
"@typescript-eslint/no-non-null-assertion": "off",
}
}
]
},
]
}