root: true env: node: true es2022: true extends: - plugin:json/recommended - plugin:node/recommended-module - eslint:recommended parserOptions: sourceType: module ecmaVersion: "2022" rules: # rules "Possible Problems" https://eslint.org/docs/rules/#possible-problems array-callback-return: [error, { checkForEach: true }] no-await-in-loop: error no-constructor-return: error no-duplicate-imports: error no-promise-executor-return: error no-self-compare: error no-template-curly-in-string: error no-unmodified-loop-condition: error no-unreachable-loop: error no-unused-private-class-members: error no-use-before-define: error require-atomic-updates: error # rules "Suggestions" https://eslint.org/docs/rules/#suggestions accessor-pairs: error arrow-body-style: [warn, as-needed] block-scoped-var: error camelcase: [error, { properties: never }] class-methods-use-this: error complexity: [warn, 10] consistent-return: warn curly: [error, all] default-case: error default-case-last: error default-param-last: warn dot-notation: error eqeqeq: error func-name-matching: warn func-names: warn grouped-accessor-pairs: [error, getBeforeSet] guard-for-in: warn id-length: [error, { min: 3, exceptions: [_, fs] }] init-declarations: error max-classes-per-file: error max-depth: error max-lines: warn max-lines-per-function: warn max-nested-callbacks: [error, 5] max-params: [error, 5] max-statements: [error, 20] multiline-comment-style: warn new-cap: warn no-alert: error no-array-constructor: error no-bitwise: warn no-caller: error no-console: error no-continue: warn no-div-regex: error no-else-return: error no-empty-function: error no-eq-null: error no-eval: error no-extend-native: error no-extra-bind: error no-extra-label: error no-floating-decimal: error no-implicit-coercion: error no-implicit-globals: error no-implied-eval: error no-inline-comments: error no-invalid-this: error no-iterator: error no-label-var: error no-labels: error no-lone-blocks: error no-lonely-if: error no-loop-func: error no-mixed-operators: error no-multi-str: error no-negated-condition: error no-nested-ternary: error no-new: error no-new-func: error no-new-object: error no-new-wrappers: error no-octal-escape: error no-param-reassign: error no-plusplus: [warn, { allowForLoopAfterthoughts: true }] no-proto: error no-return-assign: error no-sequences: error no-shadow: error no-throw-literal: error no-undef-init: error no-undefined: error no-underscore-dangle: error no-unneeded-ternary: error no-unused-expressions: error no-useless-call: error no-useless-computed-key: error no-useless-concat: error no-useless-constructor: error no-useless-rename: error no-useless-return: error no-var: error no-void: error no-warning-comments: error no-with: error object-shorthand: error operator-assignment: error prefer-arrow-callback: error prefer-const: error prefer-destructuring: error prefer-exponentiation-operator: error prefer-named-capture-group: warn prefer-numeric-literals: error prefer-object-has-own: error prefer-object-spread: error prefer-promise-reject-errors: error prefer-regex-literals: error prefer-rest-params: error prefer-spread: error prefer-template: error quote-props: [error, as-needed] radix: error require-await: error sort-imports: [error, { ignoreDeclarationSort: true }] spaced-comment: error strict: error symbol-description: error yoda: error # rules "Layout & Formatting" https://eslint.org/docs/rules/#layout-formatting array-bracket-newline: [error, consistent] array-bracket-spacing: [error, always] array-element-newline: [error, consistent] arrow-parens: error arrow-spacing: error block-spacing: error brace-style: error comma-dangle: [error, always-multiline] comma-spacing: error comma-style: error computed-property-spacing: error dot-location: [error, property] eol-last: error func-call-spacing: error function-call-argument-newline: [error, consistent] function-paren-newline: [error, consistent] generator-star-spacing: error indent: [error, tab] key-spacing: error keyword-spacing: error line-comment-position: error linebreak-style: error lines-around-comment: error lines-between-class-members: [error, always, { exceptAfterSingleLine: true }] max-len: [warn, { code: 100, ignoreStrings: true, ignoreUrls: true, ignoreTemplateLiterals: true }] max-statements-per-line: error multiline-ternary: [error, always-multiline] new-parens: error newline-per-chained-call: error no-extra-parens: error no-multi-spaces: error no-multiple-empty-lines: error no-tabs: [error, { allowIndentationTabs: true }] no-trailing-spaces: error no-whitespace-before-property: error nonblock-statement-body-position: [error, below] object-curly-newline: error object-curly-spacing: [error, always] object-property-newline: [error, { allowAllPropertiesOnSameLine: true }] operator-linebreak: error padding-line-between-statements: error quotes: error rest-spread-spacing: error semi: error semi-spacing: error semi-style: error space-before-blocks: error space-before-function-paren: error space-in-parens: error space-infix-ops: error space-unary-ops: error switch-colon-spacing: error template-curly-spacing: error template-tag-spacing: error unicode-bom: error yield-star-spacing: error node/file-extension-in-import: ["error", "always"] node/no-unsupported-features/es-syntax: off