All files / appsflyer-react-native-plugin .eslintrc.js

100% Statements 1/1
100% Branches 0/0
100% Functions 0/0
100% Lines 1/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72          1x                                                                                                                                    
/**
 * ESLint configuration for react-native-appsflyer plugin
 * Optimized for TypeScript + React Native library development
 */
 
module.exports = {
  root: true,
  parser: '@typescript-eslint/parser',
  parserOptions: {
    ecmaVersion: 2020,
    sourceType: 'module',
    ecmaFeatures: { jsx: true },
  },
 
  env: {
    node: true,
    es6: true,
  },
 
  plugins: [
    '@typescript-eslint',
  ],
 
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
  ],
 
  rules: {
    // JS/TS hygiene
    'no-console': 'off',
    '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
    '@typescript-eslint/no-explicit-any': 'off',
    '@typescript-eslint/no-var-requires': 'off', // Allow require() in CommonJS files
    
    // Import/export rules - disabled because TypeScript handles this
    // and our index.d.ts properly declares all exports for ESLint compatibility
    'import/default': 'off',
    'import/named': 'off',
    'import/no-unresolved': 'off',
  },
  overrides: [
    {
      files: ['expo/**/*.js'],
      rules: {
        '@typescript-eslint/no-var-requires': 'off', // Expo config plugins use require()
      },
    },
    {
      files: ['**/*.ts', '**/*.tsx'],
      rules: {
        // TypeScript-specific rules
        'no-undef': 'off', // TypeScript handles this
      },
    },
  ],
 
  ignorePatterns: [
    'node_modules/**',
    'demos/**',
    'android/**',
    'ios/**',
    'build/**',
    'dist/**',
    '__tests__/**',
    '*.config.js',
    'babel.config.js',
    'metro.config.js',
    'jest.config.js',
    'react-native.config.js',
  ],
};