/* eslint-env node */
/* Vue ESLint Rules: https://eslint.vuejs.org/rules/ */
/* TS ESLint Rules: https://typescript-eslint.io/rules/ */
require("@rushstack/eslint-patch/modern-module-resolution");
module.exports = {
  root: true,
  parser: "vue-eslint-parser",
  extends: [
    "eslint:recommended",
    "plugin:vue/vue3-recommended",
    "@vue/eslint-config-typescript/recommended",
    "@vue/eslint-config-prettier",
    "plugin:storybook/recommended",
  ],
  env: {
    "vue/setup-compiler-macros": true,
  },
  ignorePatterns: [
    "versionize.js",
    "tailwind.config.js",
    "postcss.config.js",
    "src/gql/**/*.ts",
    "src/stories/**/*",
    "src/**/*.stories.ts",
  ],
  rules: {
    "@typescript-eslint/ban-ts-comment": "warn",
    "@typescript-eslint/no-explicit-any": "warn",
    "@typescript-eslint/no-unused-vars": "error",
    "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
    "@typescript-eslint/no-this-alias": "error",
    "vue/no-v-html": "error",
    "vue/no-required-prop-with-default": "error",
  },
};
