{ "ignorePatterns": [ "dist", "node_modules", "packages/schema/schema", "**/*.tmpl.*", "sw.js" ], "$schema": "https://json.schemastore.org/eslintrc", "globals": { "NodeJS": true, "$fetch": true }, "plugins": ["jsdoc", "no-only-tests"], "extends": [ "plugin:jsdoc/recommended", "@nuxtjs/eslint-config-typescript", "plugin:import/typescript" ], "rules": { "sort-imports": [ "error", { "ignoreDeclarationSort": true } ], "no-only-tests/no-only-tests": "error", "unicorn/prefer-node-protocol": "error", "no-console": "warn", "vue/multi-word-component-names": "off", "vue/one-component-per-file": "off", "vue/require-default-prop": "off", "vue/no-multiple-template-root": "off", "vue/no-v-model-argument": "off", "jsdoc/require-jsdoc": "off", "jsdoc/require-param": "off", "jsdoc/require-returns": "off", "jsdoc/require-param-type": "off", "no-redeclare": "off", "import/order": [ "error", { "pathGroups": [ { "pattern": "@nuxt/test-utils/experimental", "group": "external" }, { "pattern": "@nuxt/test-utils", "group": "external" }, { "pattern": "#vue-router", "group": "external" } ] } ], "import/no-restricted-paths": [ "error", { "zones": [ { "from": "packages/nuxt/src/!(core)/**/*", "target": "packages/nuxt/src/core", "message": "core should not directly import from modules." }, { "from": "packages/nuxt/src/!(app)/**/*", "target": "packages/nuxt/src/app", "message": "app should not directly import from modules." }, { "from": "packages/nuxt/src/app/**/index.ts", "target": "packages/nuxt/src", "message": "should not import from barrel/index files" }, { "from": "packages/nitro", "target": "packages/!(nitro)/**/*", "message": "nitro should not directly import other packages." } ] } ], "@typescript-eslint/consistent-type-imports": [ "error", { "disallowTypeAnnotations": false } ], "@typescript-eslint/ban-ts-comment": [ "error", { "ts-expect-error": "allow-with-description", "ts-ignore": true } ], "@typescript-eslint/prefer-ts-expect-error": "error", "@typescript-eslint/no-unused-vars": [ "error", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_", "ignoreRestSiblings": true } ], "jsdoc/check-tag-names": [ "error", { "definedTags": ["__NO_SIDE_EFFECTS__"] } ] }, "overrides": [ { "files": ["packages/schema/**"], "rules": { "jsdoc/no-undefined-types": "off", "jsdoc/valid-types": "off", "jsdoc/check-tag-names": [ "error", { "definedTags": ["experimental"] } ] } }, { "files": ["packages/nuxt/src/app/**", "test/**", "**/runtime/**"], "rules": { "no-console": "off" } } ], "settings": { "jsdoc": { "ignoreInternal": true, "tagNamePreference": { "warning": "warning", "note": "note" } } } }