stalniy/casl

View on GitHub
.eslintrc

Summary

Maintainability
Test Coverage
{
  "root": true,
  "ignorePatterns": [
    "*.d.ts"
  ],
  "plugins": ["import", "@typescript-eslint"],
  "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "project": "./tsconfig.json"
  },
  "settings": {
    // Apply special parsing for TypeScript files
    "import/parsers": {
      "@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"],
    },
    // Append "ts" extensions to Airbnb "import/resolver" setting
    // Original: [".mjs", ".js", ".json"]
    "import/resolver": {
      "node": {
        "extensions": [".mjs", ".js", ".json", ".ts", ".d.ts"],
      },
    },
    // Append "ts" extensions to Airbnb "import/extensions" setting
    // Original: [".js", ".mjs", ".jsx"]
    "import/extensions": [".js", ".mjs", ".jsx", ".ts", ".tsx", ".d.ts"],
    // Resolve type definition packages
    "import/external-module-folders": ["node_modules", "node_modules/@types"],
  },
  "rules": {
    "max-len": ["error", {
      "code": 100,
      "ignoreComments": true,
      "ignoreStrings": true,
      "ignoreTemplateLiterals": true
    }],
    "@typescript-eslint/lines-between-class-members": ["error", "always", {
      "exceptAfterSingleLine": true
    }],
    "@typescript-eslint/comma-dangle": "off",
    "no-redeclare": "off",
    "@typescript-eslint/no-redeclare": ["error"],
    "@typescript-eslint/ban-ts-comment": "off",
    "@typescript-eslint/ban-types": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "@typescript-eslint/no-use-before-define": "off"
  },
  "overrides": [
    {
      "files": [
        "./packages/*/spec/**/*.{js,ts}"
      ],
      "env": {
        "jest": true
      },
      "globals": {
        "expect": true,
        "spy": true,
        "fail": true
      },
      "rules": {
        "@typescript-eslint/semi": ["error", "never"],
        "@typescript-eslint/no-unused-expressions": "off",
        "import/no-extraneous-dependencies": "off"
      }
    },
    {
      "files": [
        "./docs-src/**/*.{js,ts}"
      ],
      "env": {
        "browser": true
      },
      "rules": {
        "class-methods-use-this": ["error", { "exceptMethods": ["render"] }],
        "import/no-unresolved": ["error", {
          "ignore": ["\\.pages$", "\\.i18n$", "/assets/"]
        }],
        "import/no-extraneous-dependencies": "off"
      }
    },
    {
      "files": [
        "./packages/casl-vue/spec/**/*.{js,ts}"
      ],
      "env": {
        "browser": true
      }
    }
  ]
}