/* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution")
module.exports = {
  root: true,
  env: {
    browser: true,
    node: true,
    jest: true,
  },
  parserOptions: {
    sourceType: "module",
    requireConfigFile: false,
  },
  extends: [
    "@vue/typescript/recommended",
    "plugin:vue/vue3-recommended",
    "plugin:prettier/recommended",
    "plugin:storybook/recommended",
  ],
  ignorePatterns: [
    "static/**/*",
    "./helpers/backend/graphql.ts",
    "**/*.d.ts",
    "types/**/*",
  ],
  plugins: ["vue", "prettier"],
  // add your custom rules here
  rules: {
    semi: [2, "never"],
    "import/named": "off",
    // because, named import issue with typescript see: https://github.com/typescript-eslint/typescript-eslint/issues/154
    "no-console": "off",
    "no-debugger": process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
    "prettier/prettier":
      process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
    "vue/multi-word-component-names": "off",
    "vue/no-side-effects-in-computed-properties": "off",
    "import/no-named-as-default": "off",
    "import/no-named-as-default-member": "off",
    "@typescript-eslint/no-unused-vars":
      process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
    "@typescript-eslint/no-non-null-assertion": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "import/default": "off",
    "no-undef": "off",
  },
}