123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /* eslint-env node */
- /* eslint import/no-nodejs-modules:0 */
- const process = require('process');
- const isRelaxed = !!process.env.SENTRY_ESLINT_RELAXED;
- const isCi = !!process.env.CI;
- // Strict ruleset that runs on pre-commit and in local environments
- const ADDITIONAL_HOOKS_TO_CHECK_DEPS_FOR =
- '(useEffectAfterFirstRender|useMemoWithPrevious)';
- const strictRulesNotCi = {
- 'react-hooks/exhaustive-deps': [
- 'error',
- {additionalHooks: ADDITIONAL_HOOKS_TO_CHECK_DEPS_FOR},
- ],
- };
- module.exports = {
- extends: [isRelaxed ? 'sentry-app' : 'sentry-app/strict'],
- globals: {
- require: false,
- expect: false,
- sinon: false,
- MockApiClient: true,
- TestStubs: true,
- tick: true,
- jest: true,
- },
- rules: {
- 'react/function-component-definition': [
- 'error',
- {namedComponents: 'function-declaration'},
- ],
- 'react-hooks/exhaustive-deps': [
- 'warn',
- {additionalHooks: ADDITIONAL_HOOKS_TO_CHECK_DEPS_FOR},
- ],
- ...(!isRelaxed && !isCi ? strictRulesNotCi : {}),
- },
- overrides: [
- {
- files: ['*.ts', '*.tsx'],
- rules: {},
- },
- {
- files: ['**/js-sdk-loader.ts'],
- rules: {
- 'no-console': 'off',
- },
- },
- ],
- };
|