.eslintrc.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. module.exports = {
  2. root: true,
  3. env: {
  4. browser: true,
  5. node: true,
  6. jest: true,
  7. },
  8. parserOptions: {
  9. sourceType: "module",
  10. requireConfigFile: false,
  11. },
  12. extends: [
  13. "@nuxtjs",
  14. "@nuxtjs/eslint-config-typescript",
  15. "prettier/prettier",
  16. "eslint:recommended",
  17. "plugin:vue/recommended",
  18. "plugin:prettier/recommended",
  19. "plugin:nuxt/recommended",
  20. ],
  21. ignorePatterns: ["helpers/backend/graphql.ts"],
  22. plugins: ["vue", "prettier"],
  23. // add your custom rules here
  24. rules: {
  25. semi: [2, "never"],
  26. "import/named": "off", // because, named import issue with typescript see: https://github.com/typescript-eslint/typescript-eslint/issues/154
  27. "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
  28. "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
  29. "vue/max-attributes-per-line": "off",
  30. "vue/component-name-in-template-casing": ["error", "PascalCase"],
  31. "vue/html-self-closing": [
  32. "error",
  33. {
  34. html: {
  35. normal: "never",
  36. void: "always",
  37. },
  38. },
  39. ],
  40. "vue/singleline-html-element-content-newline": "off",
  41. "vue/multiline-html-element-content-newline": "off",
  42. "vue/require-default-prop": "warn",
  43. "vue/require-prop-types": "warn",
  44. "vue/multi-word-component-names": "off",
  45. "prettier/prettier": ["warn", { semi: false }],
  46. "import/no-named-as-default": "off",
  47. "import/prefer-default-export": "off",
  48. "import/no-named-as-default-member": "off",
  49. "import/default": "off",
  50. "no-undef": "off",
  51. // localStorage block
  52. "no-restricted-globals": [
  53. "error",
  54. {
  55. name: "localStorage",
  56. message:
  57. "Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
  58. },
  59. ],
  60. // window.localStorage block
  61. "no-restricted-syntax": [
  62. "error",
  63. {
  64. selector: "CallExpression[callee.object.property.name='localStorage']",
  65. message:
  66. "Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
  67. },
  68. ],
  69. },
  70. globals: {
  71. $nuxt: true,
  72. },
  73. }