{
  "extends": [
    "eslint:recommended"
  ],
  "env": {
    "browser": true,
    "commonjs": true,
    "node": true,
    "es6": true
  },
  "parser": "@babel/eslint-parser",
  "plugins": [
    "@babel"
  ],
  "overrides": [
    {
      "files": ["*.jsx", "*.js"]
    },
    {
      "files": ["*.{ts,tsx}"],
      "parser": "@typescript-eslint/parser",
      "plugins": ["@typescript-eslint"],
      "extends": ["plugin:@typescript-eslint/recommended"],
      "rules": {
        "comma-dangle": "off",
        "no-unused-vars": "off",
        "max-len": "off",
        "no-console": "off",
        "no-extra-boolean-cast": "off",
        "prefer-const": ["error", {
          "destructuring": "all"
        }],
        "no-var": "error",
        "no-empty": "off",
        "no-fallthrough": "off",
        "@typescript-eslint/no-explicit-any": "off",
        "@typescript-eslint/no-extra-semi": "error",
        "@typescript-eslint/no-this-alias": "off",
        "@typescript-eslint/no-unused-vars": "off",
        "@typescript-eslint/no-empty-function": "off",
        "@typescript-eslint/ban-ts-comment": "off",
        "@typescript-eslint/no-inferrable-types": "off",
        "@typescript-eslint/no-empty-interface": "off"
      }
    }

  ],
  "globals" : {
    "THREE" : true,
    "CSG" : true,
    "PNLTRI" : true,
    "__DEBUG__": true,
    "__CAD_APP": true,
    "Module": true,
    "_free": true,
    "_malloc": true,
    "writeAsciiToMemory": true,
    "__E0_ENGINE_EXCHANGE_VAL": true,
    "verb": true,
    "$": true
  },
  "rules": {
    "comma-dangle": "off",
    "no-unused-vars": "off",
    "max-len": "off",
    "no-console": "off",
    "no-extra-boolean-cast": "off",
    "no-var": "error",
    "prefer-const": ["error", {
      "destructuring": "all"
    }]
  },
  "ignorePatterns": [
    "/modules/math/optim/*.js",
    "/modules/math/qr.js"
  ]
}
