eslint-config-regiojet-typescript-react
Version:
Eslint Typescript rules for JS and TS React projects
46 lines (34 loc) • 1.03 kB
JavaScript
import {
a11y, react as basicReactConfig, hooks, reactStylistic,
} from 'eslint-config-regiojet-vanilla-react';
const updateJsxFilenameExtensionRule = () => {
const [{ name: ruleName, rules: baseReactRules, ...restReactConfig }] = basicReactConfig;
const jsfRule = baseReactRules['react/jsx-filename-extension'];
const [type, options] = jsfRule;
if (!type || !options || typeof options === 'string') {
return basicReactConfig;
}
const { extensions, ignoreFilesWithoutCode } = options;
const updatedExtensions = [...extensions, 'tsx'];
const newRule = [
type,
{
extensions: updatedExtensions,
ignoreFilesWithoutCode,
},
];
baseReactRules['react/jsx-filename-extension'] = newRule;
return [{
...restReactConfig,
name: `typescript-react/react extends from ${ruleName}`,
rules: baseReactRules,
}];
};
export const react = updateJsxFilenameExtensionRule();
const config = [
...a11y,
...hooks,
...react,
...reactStylistic,
];
export default config;