UNPKG

@elsikora/eslint-config

Version:

ESLint configuration vision of ElsiKora

63 lines (60 loc) 2.18 kB
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