mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 10:33:59 -05:00
182 lines
4.7 KiB
YAML
182 lines
4.7 KiB
YAML
---
|
|
root: true
|
|
plugins:
|
|
- import
|
|
- jsdoc
|
|
- n
|
|
- promise
|
|
- sonarjs
|
|
- prettier
|
|
- unicorn
|
|
- '@typescript-eslint'
|
|
- unused-imports
|
|
extends:
|
|
- ./.eslint-license-header.yml
|
|
- eslint:recommended
|
|
- plugin:import/recommended
|
|
- plugin:n/recommended
|
|
- plugin:unicorn/recommended
|
|
- prettier
|
|
- plugin:@typescript-eslint/eslint-recommended
|
|
- plugin:@typescript-eslint/recommended
|
|
- plugin:import/typescript
|
|
env:
|
|
node: true
|
|
es6: true
|
|
rules:
|
|
prettier/prettier: error
|
|
comma-dangle:
|
|
- error
|
|
- arrays: always-multiline
|
|
objects: always-multiline
|
|
imports: always-multiline
|
|
exports: always-multiline
|
|
functions: always-multiline
|
|
eol-last:
|
|
- error
|
|
- always
|
|
eqeqeq:
|
|
- error
|
|
- smart
|
|
import/default: off # fs-extra trips this. the ts compiler catches actual errors
|
|
import/extensions: error
|
|
import/first: error
|
|
import/newline-after-import: error
|
|
import/no-absolute-path: error
|
|
#import/no-cycle: error # TODO(jeremy-rifkin) disabled for now due to compilation types
|
|
import/no-default-export: error
|
|
import/no-deprecated: error
|
|
import/no-mutable-exports: error
|
|
import/no-named-as-default-member: off # Far too many things (express, morgan, fs) trip this
|
|
import/no-self-import: error
|
|
import/no-useless-path-segments: error
|
|
import/no-webpack-loader-syntax: error
|
|
import/no-unresolved: off # Doesn't like .js files
|
|
import/order:
|
|
- error
|
|
- alphabetize:
|
|
order: asc
|
|
caseInsensitive: true
|
|
newlines-between: always
|
|
max-len:
|
|
- error
|
|
- 120
|
|
- ignoreRegExpLiterals: true
|
|
max-statements:
|
|
- error
|
|
- 100 # TODO reduce...was 50
|
|
no-console: error
|
|
no-control-regex: 0
|
|
no-duplicate-imports: error
|
|
no-useless-call: error
|
|
no-useless-computed-key: error
|
|
no-useless-concat: error
|
|
'@typescript-eslint/no-useless-constructor': error
|
|
no-useless-escape: error
|
|
no-useless-rename: error
|
|
no-useless-return: error
|
|
no-empty:
|
|
- error
|
|
- allowEmptyCatch: true
|
|
quote-props:
|
|
- error
|
|
- as-needed
|
|
quotes:
|
|
- error
|
|
- single
|
|
- allowTemplateLiterals: true
|
|
avoidEscape: true
|
|
semi:
|
|
- error
|
|
- always
|
|
space-before-function-paren:
|
|
- error
|
|
- anonymous: always
|
|
asyncArrow: always
|
|
named: never
|
|
keyword-spacing:
|
|
- error
|
|
- after: true
|
|
yoda:
|
|
- error
|
|
- never
|
|
- onlyEquality: true
|
|
prefer-const:
|
|
- error
|
|
- destructuring: all
|
|
jsdoc/check-alignment: error
|
|
jsdoc/check-param-names: error
|
|
jsdoc/check-syntax: error
|
|
jsdoc/check-tag-names: off
|
|
jsdoc/check-types: error
|
|
jsdoc/empty-tags: error
|
|
jsdoc/require-hyphen-before-param-description: error
|
|
jsdoc/valid-types: error
|
|
no-multiple-empty-lines:
|
|
- error
|
|
- max: 1
|
|
maxBOF: 0
|
|
maxEOF: 0
|
|
n/no-process-exit: off
|
|
promise/catch-or-return: error
|
|
promise/no-new-statics: error
|
|
promise/no-return-wrap: error
|
|
promise/param-names: error
|
|
promise/valid-params: error
|
|
sonarjs/no-collection-size-mischeck: error
|
|
sonarjs/no-redundant-boolean: error
|
|
sonarjs/no-unused-collection: error
|
|
sonarjs/prefer-immediate-return: error
|
|
sonarjs/prefer-object-literal: error
|
|
sonarjs/prefer-single-boolean-return: error
|
|
sort-imports:
|
|
- error
|
|
- ignoreCase: true
|
|
ignoreDeclarationSort: true
|
|
unicorn/catch-error-name: off
|
|
unicorn/consistent-function-scoping: off
|
|
unicorn/empty-brace-spaces: off
|
|
unicorn/no-fn-reference-in-iterator: off
|
|
unicorn/no-hex-escape: off
|
|
unicorn/no-null: off
|
|
unicorn/no-reduce: off
|
|
unicorn/numeric-separators-style: off
|
|
unicorn/prefer-add-event-listener: off
|
|
unicorn/prefer-flat-map: error
|
|
unicorn/prefer-optional-catch-binding: off
|
|
unicorn/prefer-node-protocol: off # until we get node 16+
|
|
unicorn/prefer-number-properties: off
|
|
unicorn/prefer-string-slice: off
|
|
unicorn/prevent-abbreviations: off
|
|
# things we'd like to turn on but need fairly extensive code changes:
|
|
unicorn/prefer-ternary: off
|
|
unicorn/prefer-array-some: off
|
|
unicorn/prefer-spread: off
|
|
unicorn/no-lonely-if: off
|
|
unicorn/no-array-reduce: off
|
|
unicorn/prefer-array-flat: off # can't turn off yet without tests blowing up; lodash vs underscore?
|
|
unicorn/no-array-callback-reference: off
|
|
unicorn/prefer-switch: off
|
|
unicorn/no-static-only-class: off
|
|
unicorn/no-process-exit: off
|
|
unicorn/no-useless-undefined:
|
|
- error
|
|
- checkArguments: false
|
|
'unused-imports/no-unused-imports': error
|
|
'@typescript-eslint/no-empty-function': off
|
|
'@typescript-eslint/no-unused-vars': off
|
|
'@typescript-eslint/no-explicit-any': off
|
|
unicorn/prefer-at: off
|
|
unicorn/prefer-negative-index: off
|
|
parserOptions:
|
|
sourceType: module
|
|
ecmaVersion: 2020
|
|
globals:
|
|
BigInt: true
|
|
settings:
|
|
node:
|
|
tryExtensions: [.js, .ts]
|
|
import/parsers:
|
|
'@typescript-eslint/parser': [.ts, .tsx]
|
|
import/resolver: 'typescript'
|