.eslintrc.js (2868B)
1 'use strict'; 2 3 const legacyFiles = require('./eslint_rules/legacy_files_list'); 4 5 const vendoredFiles = './src/vendored/**/*.js'; 6 const protobufFiles = './src/**/*_pb.js'; 7 8 module.exports = { 9 root: true, 10 ignorePatterns: ['node_modules', 'build', 'deploy'], 11 extends: ['./eslint_rules/base.js', './eslint_rules/imports.js'], 12 overrides: [ 13 /* all new js code */ 14 { 15 files: './**/*.js', 16 excludedFiles: [...legacyFiles, vendoredFiles, protobufFiles], 17 extends: ['./eslint_rules/prettier.js'], 18 }, 19 /* web application */ 20 { 21 files: './src/**/*.js', 22 extends: ['./eslint_rules/relax_webapp_js.js', './eslint_rules/imports_webapp.js'], 23 env: { 24 browser: true, 25 es2020: true, 26 commonjs: true, 27 }, 28 parser: 'babel-eslint', 29 parserOptions: { 30 sourceType: 'module', 31 }, 32 globals: { 33 NODE_ENV: true, 34 RELEASE_VER: true, 35 }, 36 }, 37 /* web application legacy code*/ 38 { 39 files: legacyFiles, 40 extends: ['./eslint_rules/relax_legacy.js', './eslint_rules/imports_relax_legacy.js'], 41 }, 42 /* vendored files*/ 43 { 44 files: vendoredFiles, 45 extends: ['./eslint_rules/relax_vendored.js', './eslint_rules/imports_relax_vendored.js'], 46 }, 47 /* auto-generated files */ 48 { 49 files: protobufFiles, 50 extends: ['./eslint_rules/relax_protobuf.js', './eslint_rules/imports_relax_protobuf.js'], 51 }, 52 /* tests code */ 53 { 54 files: './test/**/*.js', 55 excludedFiles: './test/karma.conf.js', 56 parser: 'babel-eslint', 57 extends: ['./eslint_rules/relax_tests.js', './eslint_rules/imports_tests.js'], 58 env: { 59 browser: true, 60 mocha: true, 61 es2020: true, 62 }, 63 parserOptions: { 64 sourceType: 'module', 65 }, 66 globals: { 67 require: true, 68 assert: true, 69 }, 70 }, 71 /* config code */ 72 { 73 files: [ 74 './webpack/**/*.js', 75 './test/karma.conf.js', 76 './scripts/**/*.js', 77 './eslint_rules/*.js', 78 './.eslintrc.js', 79 ], 80 env: { 81 node: true, 82 es2017: true, 83 }, 84 extends: ['./eslint_rules/imports_configs.js'], 85 }, 86 /* command line scripts */ 87 { 88 files: ['./scripts/build.js', './webpack/webpack.config.js'], 89 rules: { 90 'no-console': 'off', 91 }, 92 }, 93 ], 94 };