Add eslint-plugin-relay rules (warning only)

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-01-23 15:16:41 +04:00
parent 188ae13d58
commit 3899656730
8 changed files with 73 additions and 0 deletions

View File

@@ -14,6 +14,7 @@
"#baseConfigs": "./src/baseConfigs.ts",
"#tsConfigs": "./src/tsConfigs.ts",
"#reactConfigs": "./src/reactConfigs.ts",
"#relayConfigs": "./src/relayConfigs.ts",
"#importsConfigs": "./src/importsConfigs.ts",
"#languageOptionsConfigs": "./src/languageOptionsConfigs.ts",
"#stylisticConfigs": "./src/stylisticConfigs.ts"
@@ -30,10 +31,12 @@
"eslint-plugin-import-x": "^4.16.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-relay": "^2.0.0",
"globals": "^17.0.0",
"typescript-eslint": "^8.53.1"
},
"devDependencies": {
"@types/eslint-plugin-relay": "^1.0.0",
"eslint": "^9.39.2",
"typescript": "^5.8.3"
}

View File

@@ -2,6 +2,7 @@ import { baseConfigs } from "#baseConfigs";
import { importsConfigs } from "#importsConfigs";
import { browserLanguageOptionsConfigs, nodeLanguageOptionsConfigs } from "#languageOptionsConfigs";
import { reactConfigs } from "#reactConfigs";
import { relayConfigs } from "#relayConfigs";
import { stylisticConfigs } from "#stylisticConfigs";
import { tsConfigs } from "#tsConfigs";
@@ -10,6 +11,7 @@ export const configs = {
imports: importsConfigs,
ts: tsConfigs,
react: reactConfigs,
relay: relayConfigs,
stylistic: stylisticConfigs,
languageOptions: {
browser: browserLanguageOptionsConfigs,

View File

@@ -0,0 +1,11 @@
import relay from "eslint-plugin-relay";
import type { FlatConfig } from "typescript-eslint";
export const relayConfigs: FlatConfig.ConfigArray = [
{
plugins: {
relay: relay,
},
...relay.configs["ts-recommended"],
},
];

29
packages/eslint-relay-plugin/index.d.ts vendored Normal file
View File

@@ -0,0 +1,29 @@
declare module "eslint-plugin-relay" {
import type { Linter, Rule } from "eslint";
export const rules: {
"graphql-syntax": Rule.RuleModule;
"graphql-naming": Rule.RuleModule;
"generated-typescript-types": Rule.RuleModule;
"no-future-added-value": Rule.RuleModule;
"unused-fields": Rule.RuleModule;
"must-colocate-fragment-spreads": Rule.RuleModule;
"function-required-argument": Rule.RuleModule;
"hook-required-argument": Rule.RuleModule;
};
export const configs: {
recommended: {
rules: Linter.RulesRecord;
};
"ts-recommended": {
rules: Linter.RulesRecord;
};
strict: {
rules: Linter.RulesRecord;
};
"ts-strict": {
rules: Linter.RulesRecord;
};
};
}

View File

@@ -0,0 +1,7 @@
{
"name": "@types/eslint-plugin-relay",
"version": "1.0.0",
"private": true,
"description": "Shared ESLint configuration for Probo monorepo",
"types": "./index.d.ts"
}