@swplabs/peanutforwp
Version:
Peanut for WordPress. Build your themes and blocks with components.
72 lines (67 loc) • 1.69 kB
JavaScript
const babelConfig = require('../webpack/config.babel.js');
const customReactRules = {
'react/jsx-indent': 'off',
'react/jsx-indent-props': 'off',
'react/jsx-curly-spacing': 'off'
};
const generateConfig = ({ buildType, srcType }) => {
const lintConfig = {
root: true,
globals: {
System: true
},
parser: require.resolve('@babel/eslint-parser'),
parserOptions: {
ecmaVersion: 6,
requireConfigFile: false,
sourceType: 'module',
ecmaFeatures: {
modules: true,
classes: true
},
allowImportExportEverywhere: false,
codeFrame: false,
babelOptions: {
configFile: false,
...babelConfig({ buildType, srcType })
}
},
extends: ['components', 'whiteboard'].includes(srcType)
? []
: ['plugin:@wordpress/eslint-plugin/react'],
rules: {
...customReactRules
},
env: {
browser: true,
es6: true,
node: true,
commonjs: true
},
overrides:
srcType === 'whiteboard'
? [
{
files: [
'./src/whiteboard/shared/routes/**/*.js',
'./src/whiteboard/shared/components/**/*.js'
],
extends: ['plugin:@wordpress/eslint-plugin/react'],
parserOptions: {
babelOptions: {
configFile: false,
...babelConfig({ buildType, srcType, enableReactPreset: true })
}
},
rules: {
...customReactRules
}
}
]
: []
};
return lintConfig;
};
module.exports = {
generateConfig
};