123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import eslintPluginJest from "eslint-plugin-jest";
- import eslintPluginJs from "@eslint/js";
- import eslintPluginStylistic from "@stylistic/eslint-plugin";
- import globals from "globals";
- const config = [
- eslintPluginJs.configs.recommended,
- {
- files: ["**/*.js"],
- languageOptions: {
- ecmaVersion: "latest",
- globals: {
- ...globals.browser,
- ...globals.node,
- ...globals.jest,
- Log: "readonly",
- MM: "readonly",
- Module: "readonly",
- config: "readonly",
- moment: "readonly"
- }
- },
- plugins: {
- ...eslintPluginStylistic.configs["all-flat"].plugins,
- ...eslintPluginJest.configs["flat/recommended"].plugins
- },
- rules: {
- ...eslintPluginStylistic.configs["all-flat"].rules,
- ...eslintPluginJest.configs["flat/recommended"].rules,
- "@stylistic/array-element-newline": ["error", "consistent"],
- "@stylistic/arrow-parens": ["error", "always"],
- "@stylistic/brace-style": "off",
- "@stylistic/comma-dangle": ["error", "never"],
- "@stylistic/dot-location": ["error", "property"],
- "@stylistic/function-call-argument-newline": ["error", "consistent"],
- "@stylistic/function-paren-newline": ["error", "consistent"],
- "@stylistic/implicit-arrow-linebreak": ["error", "beside"],
- "@stylistic/indent": ["error", "tab"],
- "@stylistic/max-statements-per-line": ["error", {max: 2}],
- "@stylistic/multiline-comment-style": "off",
- "@stylistic/multiline-ternary": ["error", "always-multiline"],
- "@stylistic/newline-per-chained-call": ["error", {ignoreChainWithDepth: 4}],
- "@stylistic/no-extra-parens": "off",
- "@stylistic/no-tabs": "off",
- "@stylistic/object-curly-spacing": ["error", "always"],
- "@stylistic/object-property-newline": ["error", {allowAllPropertiesOnSameLine: true}],
- "@stylistic/operator-linebreak": ["error", "before"],
- "@stylistic/padded-blocks": "off",
- "@stylistic/quote-props": ["error", "as-needed"],
- "@stylistic/quotes": ["error", "double"],
- "@stylistic/semi": ["error", "always"],
- "@stylistic/space-before-function-paren": ["error", "always"],
- "@stylistic/spaced-comment": "off",
- eqeqeq: "error",
- "id-length": "off",
- "init-declarations": "off",
- "jest/consistent-test-it": "warn",
- "jest/no-done-callback": "warn",
- "jest/prefer-expect-resolves": "warn",
- "jest/prefer-mock-promise-shorthand": "warn",
- "jest/prefer-to-be": "warn",
- "jest/prefer-to-have-length": "warn",
- "max-lines-per-function": ["warn", 350],
- "max-statements": "off",
- "no-global-assign": "off",
- "no-inline-comments": "off",
- "no-magic-numbers": "off",
- "no-param-reassign": "error",
- "no-plusplus": "off",
- "no-prototype-builtins": "off",
- "no-ternary": "off",
- "no-throw-literal": "error",
- "no-undefined": "off",
- "no-unused-vars": "off",
- "no-useless-return": "error",
- "no-warning-comments": "off",
- "object-shorthand": ["error", "methods"],
- "one-var": "off",
- "prefer-destructuring": "off",
- "prefer-template": "error",
- "sort-keys": "off"
- }
- },
- {
- files: ["**/*.mjs"],
- languageOptions: {
- ecmaVersion: "latest",
- globals: {
- ...globals.node
- },
- sourceType: "module"
- },
- plugins: {
- ...eslintPluginStylistic.configs["all-flat"].plugins
- },
- rules: {
- ...eslintPluginStylistic.configs["all-flat"].rules,
- "@stylistic/array-element-newline": "off",
- "@stylistic/indent": ["error", "tab"],
- "@stylistic/padded-blocks": ["error", "never"],
- "@stylistic/quote-props": ["error", "as-needed"],
- "func-style": "off",
- "import/namespace": "off",
- "max-lines-per-function": ["error", 100],
- "no-magic-numbers": "off",
- "one-var": "off",
- "prefer-destructuring": "off"
- }
- },
- {
- files: ["tests/configs/modules/weather/*.js"],
- rules: {
- "@stylistic/quotes": "off"
- }
- },
- {
- ignores: ["config/**", "modules/**", "!modules/default/**", "js/positions.js"]
- }
- ];
- export default config;
|