eslint-config-ksv741/ts-react.js

50 lines
1.2 KiB
JavaScript

const {rules: reactRules, settings: reactSettings} = require('./rules/react/.eslint-react.js');
const reactFilenameExtensionRule = reactRules['react/jsx-filename-extension'];
module.exports = {
extends: [
'./js-react',
'./ts-base',
].map(require.resolve),
settings: {
'import/resolver': {
...reactSettings['import/resolver'],
node: {
...reactSettings['import/resolver'].node,
extensions: [
...reactSettings['import/resolver'].node.extensions,
'.ts',
'.tsx'
]
}
},
'import/extensions': [
...reactSettings['import/extensions'],
'.ts',
'.tsx'
],
},
rules: {
"@typescript-eslint/class-methods-use-this": reactRules['class-methods-use-this'],
'import/extensions': [
reactRules['import/extensions'][0],
reactRules['import/extensions'][1],
{
...reactRules['import/extensions'][2],
'ts': 'never',
'tsx': 'never',
},
],
"react/jsx-filename-extension": [reactFilenameExtensionRule[0], {
...reactFilenameExtensionRule[1],
'extensions': [
...reactFilenameExtensionRule[1].extensions,
'.ts',
'.tsx'
],
}],
'react/require-default-props': 'off'
}
};