UNPKG

1.63 kBJavaScriptView Raw
1const fs = require('fs');
2const config = {
3 'env': {
4 'browser': true,
5 'es6': true,
6 'mocha': true,
7 'node': true
8 },
9 'parserOptions': {
10 "ecmaVersion": 2017,
11 'sourceType': 'module'
12 },
13 'rules': {
14 'eqeqeq': 2,
15 'guard-for-in': 2,
16 'new-cap': 0,
17 'no-caller': 2,
18 'no-console': 2,
19 'no-extend-native': 2,
20 'no-irregular-whitespace': 2,
21 'no-loop-func': 2,
22 'no-multi-spaces': 2,
23 'no-undef': 2,
24 'no-underscore-dangle': 0,
25 'no-unused-vars': 2,
26 'no-var': 2,
27 'one-var': [2, 'never'],
28 'quotes': [2, 'single'],
29 'semi': [1, 'always'],
30 'space-before-function-paren': [2, 'always'],
31 'wrap-iife': 2
32 },
33 'globals': {
34 'fetch': true,
35 'requireText': true
36 },
37 'plugins': [],
38 'extends': []
39};
40
41const packageJson = fs.existsSync('./package.json') && require('./package.json');
42
43if (
44 (packageJson && packageJson.dependencies && (packageJson.dependencies.react || packageJson.dependencies.preact)) ||
45 (packageJson && packageJson.devDependencies && (packageJson.devDependencies.react || packageJson.devDependencies.preact))
46) {
47 config.plugins.push('react');
48 config.extends.push('plugin:react/recommended');
49
50 Object.assign(config.rules, {
51 'react/display-name': 0,
52 'react/prop-types': 0,
53 'react/no-danger': 0,
54 'react/no-render-return-value': 0
55 });
56}
57
58if (packageJson && packageJson.eslintConfig) {
59 Object.assign(config.env, packageJson.eslintConfig.env);
60 Object.assign(config.parserOptions, packageJson.eslintConfig.parserOptions);
61 Object.assign(config.rules, packageJson.eslintConfig.rules);
62 Object.assign(config.globals, packageJson.eslintConfig.globals);
63}
64
65module.exports = config;