@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
63 lines (60 loc) • 2.18 kB
JavaScript
import 'eslint/use-at-your-own-risk';
import { formatPluginName } from '../utility/format-plugin-name.utility.js';
import { formatRuleName } from '../utility/format-rule-name.utility.js';
import tanstackQueryPlugin from '@tanstack/eslint-plugin-query';
import tanstackRouterPlugin from '@tanstack/eslint-plugin-router';
import tseslint from 'typescript-eslint';
/**
* Loads the ESLint configuration for TanStack Query and Router
* @param {IConfigOptions} _config - Configuration options
* @returns {Array<Linter.Config>} An array of ESLint configurations for TanStack
*/
function loadConfig(_config) {
return [
{
// @ts-ignore
plugins: {
[formatPluginName("@tanstack/query")]: tanstackQueryPlugin,
},
rules: {
[formatRuleName("@tanstack/query/exhaustive-deps")]: "error",
[formatRuleName("@tanstack/query/infinite-query-property-order")]: "error",
[formatRuleName("@tanstack/query/no-rest-destructuring")]: "error",
[formatRuleName("@tanstack/query/no-unstable-deps")]: "error",
[formatRuleName("@tanstack/query/stable-query-client")]: "error",
},
},
{
// @ts-ignore
plugins: {
[formatPluginName("@tanstack/router")]: tanstackRouterPlugin,
},
rules: {
[formatRuleName("@tanstack/router/create-route-property-order")]: "error",
},
},
{
files: ["**/*.ts", "**/*.tsx"],
languageOptions: {
// @ts-ignore
parser: tseslint.parser,
parserOptions: {
projectService: true,
},
},
},
{
files: ["**/*.js", "**/*.jsx"],
languageOptions: {
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: "latest",
},
},
},
];
}
export { loadConfig as default };
//# sourceMappingURL=tanstack.js.map