mirror of
https://github.com/philomena-dev/philomena.git
synced 2024-11-27 13:47:58 +01:00
2417f40d37
* Switch jest unit tests to vitest * Cleanup vite config after debugging
289 lines
7 KiB
YAML
289 lines
7 KiB
YAML
env:
|
|
browser: true
|
|
es6: true
|
|
|
|
parser: '@typescript-eslint/parser'
|
|
|
|
parserOptions:
|
|
ecmaVersion: 6
|
|
sourceType: module
|
|
|
|
plugins:
|
|
- '@typescript-eslint'
|
|
- vitest
|
|
|
|
globals:
|
|
ga: false
|
|
md5: false
|
|
Sortable: false
|
|
ActionCable: false
|
|
|
|
extends:
|
|
- 'plugin:@typescript-eslint/recommended'
|
|
|
|
rules:
|
|
accessor-pairs: 2
|
|
array-bracket-spacing: 0
|
|
array-callback-return: 2
|
|
arrow-body-style: 0
|
|
arrow-parens: [2, 'as-needed']
|
|
arrow-spacing: 2
|
|
block-scoped-var: 2
|
|
block-spacing: 2
|
|
brace-style: [2, 'stroustrup', {allowSingleLine: true}]
|
|
callback-return: 0
|
|
camelcase: [2, {allow: ['camo_url', 'spoiler_image_uri','image_ids']}]
|
|
class-methods-use-this: 0
|
|
comma-dangle: [2, 'only-multiline']
|
|
comma-spacing: 2
|
|
comma-style: 2
|
|
complexity: 0
|
|
computed-property-spacing: [2, 'never']
|
|
consistent-return: 0
|
|
consistent-this: [2, 'that']
|
|
constructor-super: 2
|
|
curly: [2, 'multi-line', 'consistent']
|
|
default-case: 2
|
|
dot-location: [2, 'property']
|
|
dot-notation: [2, {allowKeywords: true}]
|
|
eol-last: 2
|
|
eqeqeq: 2
|
|
func-call-spacing: 0
|
|
func-name-matching: 2
|
|
func-names: 0
|
|
func-style: 0
|
|
generator-star-spacing: 2
|
|
global-require: 2
|
|
guard-for-in: 0
|
|
handle-callback-err: 2
|
|
id-blacklist: 0
|
|
id-length: 0
|
|
id-match: 2
|
|
indent: [2, 2, {SwitchCase: 1, VariableDeclarator: {var: 2, let: 2, const: 3}}]
|
|
init-declarations: 0
|
|
jsx-quotes: 0
|
|
key-spacing: 0
|
|
keyword-spacing: 2
|
|
line-comment-position: 0
|
|
linebreak-style: [2, 'unix']
|
|
lines-around-comment: 0
|
|
lines-around-directive: 2
|
|
max-depth: 0
|
|
max-len: 0
|
|
max-lines: 0
|
|
max-nested-callbacks: 0
|
|
max-params: 0
|
|
max-statements-per-line: 0
|
|
max-statements: 0
|
|
multiline-ternary: 0
|
|
new-cap: 2
|
|
new-parens: 2
|
|
newline-after-var: 0
|
|
newline-before-return: 0
|
|
newline-per-chained-call: 0
|
|
no-alert: 0
|
|
no-array-constructor: 2
|
|
no-caller: 2
|
|
no-case-declarations: 2
|
|
no-catch-shadow: 2
|
|
no-class-assign: 2
|
|
no-cond-assign: 2
|
|
no-confusing-arrow: 2
|
|
no-console: 0
|
|
no-const-assign: 2
|
|
no-constant-condition: 2
|
|
no-control-regex: 2
|
|
no-debugger: 2
|
|
no-delete-var: 2
|
|
no-div-regex: 2
|
|
no-dupe-args: 2
|
|
no-dupe-class-members: 2
|
|
no-dupe-keys: 2
|
|
no-duplicate-case: 2
|
|
no-duplicate-imports: 2
|
|
no-else-return: 2
|
|
no-empty-character-class: 2
|
|
no-empty-function: 0
|
|
no-empty-pattern: 2
|
|
no-empty: 2
|
|
no-eq-null: 2
|
|
no-eval: 2
|
|
no-ex-assign: 2
|
|
no-extend-native: 2
|
|
no-extra-bind: 2
|
|
no-extra-boolean-cast: 2
|
|
no-extra-label: 2
|
|
no-extra-parens: [2, 'all', {nestedBinaryExpressions: false}]
|
|
no-extra-semi: 2
|
|
no-fallthrough: 2
|
|
no-floating-decimal: 2
|
|
no-func-assign: 2
|
|
no-global-assign: 2
|
|
no-implicit-coercion: 2
|
|
no-implicit-globals: 2
|
|
no-implied-eval: 2
|
|
no-inline-comments: 0
|
|
no-inner-declarations: [2, 'both']
|
|
no-invalid-regexp: 2
|
|
no-invalid-this: 2
|
|
no-irregular-whitespace: 2
|
|
no-iterator: 2
|
|
no-label-var: 2
|
|
no-labels: 2
|
|
no-lone-blocks: 2
|
|
no-lonely-if: 0
|
|
no-loop-func: 2
|
|
no-magic-numbers: 0
|
|
no-mixed-operators: 0
|
|
no-mixed-requires: 0
|
|
no-mixed-spaces-and-tabs: 2
|
|
no-multi-spaces: 0
|
|
no-multi-str: 2
|
|
no-multiple-empty-lines: [2, {max: 3, maxBOF: 0, maxEOF: 1}]
|
|
no-native-reassign: 2
|
|
no-negated-condition: 0
|
|
no-negated-in-lhs: 2
|
|
no-nested-ternary: 2
|
|
no-new-func: 2
|
|
no-new-object: 2
|
|
no-new-require: 2
|
|
no-new-symbol: 2
|
|
no-new-wrappers: 2
|
|
no-new: 2
|
|
no-obj-calls: 2
|
|
no-octal-escape: 2
|
|
no-octal: 2
|
|
no-param-reassign: 2
|
|
no-path-concat: 2
|
|
no-plusplus: 0
|
|
no-process-env: 2
|
|
no-process-exit: 2
|
|
no-proto: 2
|
|
no-prototype-builtins: 0
|
|
no-redeclare: 2
|
|
no-regex-spaces: 2
|
|
no-restricted-globals: [2, 'event']
|
|
no-restricted-imports: 2
|
|
no-restricted-modules: 2
|
|
no-restricted-properties: 0
|
|
no-restricted-syntax: 2
|
|
no-return-assign: 0
|
|
no-script-url: 2
|
|
no-self-assign: 2
|
|
no-self-compare: 2
|
|
no-sequences: 2
|
|
no-shadow-restricted-names: 2
|
|
no-shadow: 2
|
|
no-spaced-func: 2
|
|
no-sparse-arrays: 2
|
|
no-sync: 0
|
|
no-tabs: 2
|
|
no-template-curly-in-string: 2
|
|
no-ternary: 0
|
|
no-this-before-super: 2
|
|
no-throw-literal: 2
|
|
no-trailing-spaces: 2
|
|
no-undef-init: 2
|
|
no-undef: 2
|
|
no-undefined: 2
|
|
no-underscore-dangle: 0
|
|
no-unexpected-multiline: 2
|
|
no-unmodified-loop-condition: 2
|
|
no-unneeded-ternary: 2
|
|
no-unreachable: 2
|
|
no-unsafe-finally: 2
|
|
no-unsafe-negation: 2
|
|
no-unused-expressions: [2, {allowShortCircuit: true, allowTernary: true}]
|
|
no-unused-labels: 2
|
|
no-unused-vars: [2, {vars: 'all', args: 'after-used'}]
|
|
no-use-before-define: [2, 'nofunc']
|
|
no-useless-call: 2
|
|
no-useless-computed-key: 2
|
|
no-useless-concat: 2
|
|
no-useless-constructor: 2
|
|
no-useless-escape: 2
|
|
no-useless-rename: 2
|
|
no-var: 2
|
|
no-void: 2
|
|
no-warning-comments: 0
|
|
no-whitespace-before-property: 2
|
|
no-with: 2
|
|
object-curly-newline: 0
|
|
object-curly-spacing: 0
|
|
object-property-newline: 0
|
|
object-shorthand: 2
|
|
one-var-declaration-per-line: 0
|
|
one-var: 0
|
|
operator-assignment: [2, 'always']
|
|
operator-linebreak: 0
|
|
padded-blocks: 0
|
|
prefer-arrow-callback: 2
|
|
prefer-const: 2
|
|
prefer-numeric-literals: 2
|
|
prefer-reflect: 0
|
|
prefer-rest-params: 2
|
|
prefer-spread: 0
|
|
prefer-template: 2
|
|
quote-props: [2, 'as-needed']
|
|
quotes: [2, 'single']
|
|
radix: 2
|
|
require-jsdoc: 0
|
|
require-yield: 2
|
|
rest-spread-spacing: 2
|
|
semi-spacing: [2, {before: false, after: true}]
|
|
semi: 2
|
|
sort-imports: 0
|
|
sort-keys: 0
|
|
sort-vars: 0
|
|
space-before-blocks: [2, 'always']
|
|
space-before-function-paren: [2, 'never']
|
|
space-in-parens: [2, 'never']
|
|
space-infix-ops: 2
|
|
space-unary-ops: [2, {words: true, nonwords: false}]
|
|
spaced-comment: 0
|
|
strict: [2, 'function']
|
|
symbol-description: 2
|
|
template-curly-spacing: [2, 'never']
|
|
unicode-bom: 2
|
|
use-isnan: 2
|
|
valid-jsdoc: 0
|
|
valid-typeof: 2
|
|
vars-on-top: 2
|
|
wrap-iife: 2
|
|
wrap-regex: 0
|
|
yield-star-spacing: 2
|
|
yoda: [2, 'never']
|
|
|
|
overrides:
|
|
# JavaScript Files
|
|
# Disable rules which are impossible to satisfy (types require .ts extension)
|
|
- files:
|
|
- '*.js'
|
|
rules:
|
|
'@typescript-eslint/explicit-module-boundary-types': 0
|
|
# TypeScript Files
|
|
# Some ESLint rules report false errors due to lacking type information. Replacement rules are provided for these, and the originals need to be disabled
|
|
- files:
|
|
- '*.ts'
|
|
rules:
|
|
# https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/FAQ.md#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors
|
|
no-undef: 0
|
|
no-unused-vars: 0
|
|
'@typescript-eslint/no-unused-vars': [2, {vars: 'all', args: 'after-used'}]
|
|
no-redeclare: 0
|
|
'@typescript-eslint/no-redeclare': 2
|
|
no-extra-parens: 0
|
|
'@typescript-eslint/no-extra-parens': 2
|
|
no-shadow: 0
|
|
'@typescript-eslint/no-shadow': 2
|
|
# Unit Tests (also written in TypeScript)
|
|
# Disable rules that do not make sense in test files (e.g. testing for undefined input values should be allowed)
|
|
- files:
|
|
- '*.spec.ts'
|
|
- 'test/*.ts'
|
|
extends:
|
|
- 'plugin:vitest/legacy-recommended'
|
|
rules:
|
|
no-undefined: 0
|
|
no-unused-expressions: 0
|
|
vitest/valid-expect: 0
|