2018-05-28 04:54:38 -04:00
|
|
|
extends:
|
2020-03-18 11:09:45 -04:00
|
|
|
- plugin:@gitlab/default
|
|
|
|
- plugin:@gitlab/i18n
|
2019-12-16 16:08:00 -05:00
|
|
|
- plugin:no-jquery/slim
|
2019-12-17 13:07:48 -05:00
|
|
|
- plugin:no-jquery/deprecated-3.4
|
2021-08-18 02:11:01 -04:00
|
|
|
- ./tooling/eslint-config/conditionally_ignore.js
|
2018-05-28 04:54:38 -04:00
|
|
|
globals:
|
|
|
|
__webpack_public_path__: true
|
|
|
|
gl: false
|
|
|
|
gon: false
|
|
|
|
localStorage: false
|
2019-07-04 07:36:49 -04:00
|
|
|
IS_EE: false
|
2018-05-28 04:54:38 -04:00
|
|
|
plugins:
|
2019-09-19 17:06:29 -04:00
|
|
|
- no-jquery
|
2018-05-28 04:54:38 -04:00
|
|
|
settings:
|
|
|
|
import/resolver:
|
|
|
|
webpack:
|
2018-10-09 11:25:53 -04:00
|
|
|
config: './config/webpack.config.js'
|
2018-05-28 04:54:38 -04:00
|
|
|
rules:
|
|
|
|
import/no-commonjs: error
|
2020-08-21 20:10:21 -04:00
|
|
|
import/no-default-export: off
|
2018-05-28 04:54:38 -04:00
|
|
|
no-underscore-dangle:
|
|
|
|
- error
|
|
|
|
- allow:
|
2018-10-09 11:25:53 -04:00
|
|
|
- __
|
|
|
|
- _links
|
2019-12-05 07:07:43 -05:00
|
|
|
import/no-unresolved:
|
|
|
|
- error
|
2022-06-10 20:09:17 -04:00
|
|
|
- ignore:
|
|
|
|
# In FOSS, these import paths are rewritten using
|
|
|
|
# NormalModuleReplacementPlugin, which import/no-unresolved doesn't
|
|
|
|
# consider. See
|
|
|
|
# https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89831.
|
|
|
|
- '^(ee|jh)_component/'
|
2020-04-29 20:09:37 -04:00
|
|
|
# Disabled for now, to make the airbnb-base 12.1.0 -> 13.1.0 update smoother
|
|
|
|
no-else-return:
|
|
|
|
- error
|
|
|
|
- allowElseIf: true
|
2018-09-19 18:42:20 -04:00
|
|
|
lines-between-class-members: off
|
2019-12-16 22:07:45 -05:00
|
|
|
# all offenses of no-jquery/no-animate-toggle are false positives ( $toast.show() )
|
2019-12-16 16:08:00 -05:00
|
|
|
no-jquery/no-animate-toggle: off
|
2019-12-17 13:07:48 -05:00
|
|
|
no-jquery/no-event-shorthand: off
|
2019-09-19 17:06:29 -04:00
|
|
|
no-jquery/no-serialize: error
|
2019-09-24 14:06:05 -04:00
|
|
|
promise/always-return: off
|
|
|
|
promise/no-callback-in-promise: off
|
2021-02-15 16:08:59 -05:00
|
|
|
'@gitlab/no-global-event-off': error
|
2022-05-03 14:07:53 -04:00
|
|
|
'@gitlab/vue-no-new-non-primitive-in-template':
|
|
|
|
- error
|
|
|
|
- allowNames:
|
|
|
|
- 'class(es)?$'
|
|
|
|
- '^style$'
|
|
|
|
- '^to$'
|
|
|
|
- '^$'
|
|
|
|
- '^variables$'
|
|
|
|
- 'attrs?$'
|
2021-03-12 10:09:33 -05:00
|
|
|
no-param-reassign:
|
|
|
|
- error
|
|
|
|
- props: true
|
|
|
|
ignorePropertyModificationsFor:
|
|
|
|
- acc
|
|
|
|
- accumulator
|
|
|
|
- el
|
|
|
|
- element
|
|
|
|
- state
|
|
|
|
ignorePropertyModificationsForRegex:
|
|
|
|
- '^draft'
|
2021-02-04 04:09:30 -05:00
|
|
|
import/order:
|
2021-02-15 16:08:59 -05:00
|
|
|
- error
|
|
|
|
- groups:
|
|
|
|
- builtin
|
|
|
|
- external
|
|
|
|
- internal
|
|
|
|
- parent
|
|
|
|
- sibling
|
|
|
|
- index
|
|
|
|
pathGroups:
|
|
|
|
- pattern: ~/**
|
|
|
|
group: internal
|
|
|
|
- pattern: emojis/**
|
|
|
|
group: internal
|
2021-11-28 22:12:46 -05:00
|
|
|
- pattern: '{ee_,jh_,}empty_states/**'
|
2021-02-15 16:08:59 -05:00
|
|
|
group: internal
|
2021-11-28 22:12:46 -05:00
|
|
|
- pattern: '{ee_,jh_,}icons/**'
|
2021-02-15 16:08:59 -05:00
|
|
|
group: internal
|
2021-11-28 22:12:46 -05:00
|
|
|
- pattern: '{ee_,jh_,}images/**'
|
2021-02-15 16:08:59 -05:00
|
|
|
group: internal
|
|
|
|
- pattern: vendor/**
|
|
|
|
group: internal
|
|
|
|
- pattern: shared_queries/**
|
|
|
|
group: internal
|
|
|
|
- pattern: '{ee_,}spec/**'
|
|
|
|
group: internal
|
2021-11-28 22:12:46 -05:00
|
|
|
- pattern: '{ee_,jh_,}jest/**'
|
2021-02-15 16:08:59 -05:00
|
|
|
group: internal
|
2021-11-28 22:12:46 -05:00
|
|
|
- pattern: '{ee_,jh_,any_}else_ce/**'
|
2021-02-15 16:08:59 -05:00
|
|
|
group: internal
|
|
|
|
- pattern: ee/**
|
|
|
|
group: internal
|
2021-11-28 22:12:46 -05:00
|
|
|
- pattern: '{ee_,jh_,}component/**'
|
|
|
|
group: internal
|
|
|
|
- pattern: jh_else_ee/**
|
|
|
|
group: internal
|
|
|
|
- pattern: jh/**
|
2021-02-15 16:08:59 -05:00
|
|
|
group: internal
|
|
|
|
- pattern: '{test_,}helpers/**'
|
|
|
|
group: internal
|
|
|
|
- pattern: test_fixtures/**
|
|
|
|
group: internal
|
|
|
|
alphabetize:
|
2021-09-20 20:09:28 -04:00
|
|
|
order: ignore
|
2022-03-31 17:08:16 -04:00
|
|
|
'no-restricted-syntax':
|
|
|
|
- error
|
|
|
|
- selector: ImportSpecifier[imported.name='GlSkeletonLoading']
|
|
|
|
message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.'
|
2022-04-26 17:08:42 -04:00
|
|
|
# See https://gitlab.com/gitlab-org/gitlab/-/issues/360551
|
|
|
|
vue/multi-word-component-names: off
|
2022-06-17 11:08:29 -04:00
|
|
|
unicorn/prefer-dom-node-dataset:
|
|
|
|
- error
|
2019-06-13 15:15:25 -04:00
|
|
|
overrides:
|
2020-02-18 04:09:24 -05:00
|
|
|
- files:
|
2022-04-21 14:10:22 -04:00
|
|
|
- '{,ee/,jh/}spec/frontend*/**/*'
|
2020-02-18 04:09:24 -05:00
|
|
|
rules:
|
2021-02-15 16:08:59 -05:00
|
|
|
'@gitlab/require-i18n-strings': off
|
|
|
|
'@gitlab/no-runtime-template-compiler': off
|
2022-07-01 08:08:08 -04:00
|
|
|
'import/no-dynamic-require': off
|
|
|
|
'no-import-assign': off
|
2021-12-29 10:10:45 -05:00
|
|
|
'no-restricted-syntax':
|
|
|
|
- error
|
|
|
|
- selector: CallExpression[callee.object.name=/(wrapper|vm)/][callee.property.name="setData"]
|
|
|
|
message: 'Avoid using "setData" on VTU wrapper'
|
2022-01-27 07:11:41 -05:00
|
|
|
- selector: MemberExpression[object.type!='ThisExpression'][property.type='Identifier'][property.name='$nextTick']
|
|
|
|
message: 'Using $nextTick from a component instance is discouraged. Import nextTick directly from the Vue package.'
|
2022-02-22 10:18:06 -05:00
|
|
|
- selector: Identifier[name='setImmediate']
|
|
|
|
message: 'Prefer explicit waitForPromises (or equivalent), or jest.runAllTimers (or equivalent) to vague setImmediate calls.'
|
2022-03-31 17:08:16 -04:00
|
|
|
- selector: ImportSpecifier[imported.name='GlSkeletonLoading']
|
|
|
|
message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.'
|
2021-03-10 10:09:11 -05:00
|
|
|
- files:
|
|
|
|
- 'config/**/*'
|
|
|
|
- 'scripts/**/*'
|
|
|
|
- '*.config.js'
|
2021-03-15 02:09:35 -04:00
|
|
|
- '*.config.*.js'
|
2021-10-04 23:11:53 -04:00
|
|
|
- 'jest_resolver.js'
|
2021-09-30 14:11:31 -04:00
|
|
|
- storybook/config/*.js
|
2021-03-10 10:09:11 -05:00
|
|
|
rules:
|
|
|
|
'@gitlab/require-i18n-strings': off
|
|
|
|
import/no-extraneous-dependencies: off
|
|
|
|
import/no-commonjs: off
|
|
|
|
import/no-nodejs-modules: off
|
|
|
|
filenames/match-regex: off
|
|
|
|
no-console: off
|
2021-06-18 08:10:03 -04:00
|
|
|
- files:
|
|
|
|
- '*.stories.js'
|
|
|
|
rules:
|
|
|
|
filenames/match-regex: off
|
2021-11-08 01:09:59 -05:00
|
|
|
- files:
|
|
|
|
- '*.graphql'
|
|
|
|
plugins:
|
|
|
|
- '@graphql-eslint'
|
|
|
|
parserOptions:
|
|
|
|
parser: '@graphql-eslint/eslint-plugin'
|
|
|
|
operations:
|
2021-11-30 10:14:19 -05:00
|
|
|
- '{,ee/,jh/}app/**/*.graphql'
|
2022-05-17 17:08:51 -04:00
|
|
|
schema: './tmp/tests/graphql/gitlab_schema_apollo.graphql'
|
2021-11-08 01:09:59 -05:00
|
|
|
rules:
|
|
|
|
filenames/match-regex: off
|
|
|
|
spaced-comment: off
|
2022-04-21 14:10:22 -04:00
|
|
|
# TODO: We need a way to include this rule + support ee_else_ce fragments
|
|
|
|
#'@graphql-eslint/unique-fragment-name': error
|
2021-11-08 01:09:59 -05:00
|
|
|
# TODO: Uncomment these rules when then `schema` is available
|
|
|
|
#'@graphql-eslint/fragments-on-composite-type': error
|
2022-06-16 17:09:48 -04:00
|
|
|
#'@graphql-eslint/known-argument-names': error
|
|
|
|
#'@graphql-eslint/known-type-names': error
|
2021-11-08 01:09:59 -05:00
|
|
|
'@graphql-eslint/no-anonymous-operations': error
|
|
|
|
'@graphql-eslint/unique-operation-name': error
|
2021-12-02 10:10:48 -05:00
|
|
|
'@graphql-eslint/require-id-when-available': error
|