UNPKG

hexo-bilibili-bangumi

Version:
166 lines (139 loc) 4.65 kB
import { defineConfig, globalIgnores } from "eslint/config"; import path from "node:path"; import { fileURLToPath } from "node:url"; import js from "@eslint/js"; import { FlatCompat } from "@eslint/eslintrc"; import globals from "globals"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, allConfig: js.configs.all, }); export default defineConfig([ globalIgnores([".history/**/*"]), { extends: compat.extends("eslint:recommended"), plugins: {}, files: ["./src/**/*.js"], languageOptions: { ecmaVersion: 12, sourceType: "module", globals: { ...globals.browser, ...globals.node, hexoBilibiliBangumiOptions: true, axios: true, hexo: true, }, }, rules: { indent: ["error", 2, { SwitchCase: 1, }], "linebreak-style": ["error", "windows"], quotes: ["error", "single"], semi: ["error", "always"], "prefer-const": ["error", { destructuring: "any", ignoreReadBeforeAssign: false, }], "no-var": "error", "no-new-object": "error", "object-shorthand": "error", "quote-props": ["error", "as-needed"], "prefer-object-spread": "error", "no-array-constructor": "error", "array-callback-return": "error", "prefer-destructuring": ["error", { array: true, object: true, }], "prefer-template": "error", "template-curly-spacing": ["error", "never"], "no-eval": "error", "func-style": "off", "wrap-iife": ["error", "outside"], "no-loop-func": "error", "prefer-rest-params": "error", "default-param-last": "error", "no-new-func": "error", "space-before-function-paren": ["error", { anonymous: "always", named: "never", asyncArrow: "always", }], "space-before-blocks": "error", "no-param-reassign": "off", "prefer-spread": "error", "prefer-arrow-callback": "error", "arrow-spacing": "error", "arrow-parens": "error", "arrow-body-style": "error", "no-confusing-arrow": ["error", { allowParens: true, }], "implicit-arrow-linebreak": ["error", "beside"], "no-useless-constructor": "error", "class-methods-use-this": 0, "no-duplicate-imports": "error", "object-curly-newline": ["error", { ObjectPattern: { multiline: true, }, }], "no-iterator": "error", "generator-star-spacing": ["error", "after"], "dot-notation": "error", "one-var": ["error", "never"], "no-multi-assign": "error", "no-plusplus": "off", "operator-linebreak": ["error", "after", { overrides: { "?": "before", ":": "before", }, }], eqeqeq: "error", "no-nested-ternary": "error", "no-unneeded-ternary": "error", "no-mixed-operators": "error", "nonblock-statement-body-position": ["error", "beside"], "brace-style": ["error", "1tbs", { allowSingleLine: true, }], "no-else-return": "error", "spaced-comment": ["error", "always"], "keyword-spacing": "error", "space-infix-ops": "error", "eol-last": ["error", "always"], "newline-per-chained-call": [2, { ignoreChainWithDepth: 3, }], "no-whitespace-before-property": "error", "padded-blocks": ["error", "never"], "no-multiple-empty-lines": ["error", { max: 1, }], "space-in-parens": ["error", "never"], "array-bracket-spacing": ["error", "never"], "object-curly-spacing": ["error", "always"], "max-len": "off", "block-spacing": "error", "comma-spacing": ["error", { before: false, after: true, }], "computed-property-spacing": ["error", "never"], "func-call-spacing": ["error", "never"], "key-spacing": "error", "no-trailing-spaces": "error", "comma-style": "error", "comma-dangle": ["error", "never"], "no-new-wrappers": "error", radix: "error", "id-length": "off", "no-underscore-dangle": "error", }, }]);