@xylabs/eslint-config-react-flat 8.2.9 → 8.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/neutral/index.mjs +14 -14
- package/dist/neutral/index.mjs.map +2 -2
- package/dist/neutral/tiers/index.d.ts +2 -2
- package/dist/neutral/tiers/index.d.ts.map +1 -1
- package/dist/node/index.mjs +14 -14
- package/dist/node/index.mjs.map +2 -2
- package/dist/node/tiers/index.d.ts +2 -2
- package/dist/node/tiers/index.d.ts.map +1 -1
- package/package.json +9 -10
package/README.md
CHANGED
|
@@ -60,8 +60,8 @@ React layers are added at **tier 2 (best practices)** and above. Lower tiers mat
|
|
|
60
60
|
| `configReactTier0Correctness` / `configReactTier0CorrectnessTypeChecked` | Base tier 0 only |
|
|
61
61
|
| `configReactTier1Consistency` / `configReactTier1ConsistencyTypeChecked` | Base tier 1 only |
|
|
62
62
|
| `configReactTier2BestPractices` / `configReactTier2BestPracticesTypeChecked` | Base + React |
|
|
63
|
-
| `configReactTier3OpinionatedTypeChecked` |
|
|
64
|
-
| `
|
|
63
|
+
| `configReactTier3OpinionatedTypeChecked` | SonarJS + optional rules at error severity; preferred default |
|
|
64
|
+
| `configReactTier4Experimental` / `configReactTier4ExperimentalTypeChecked` | Opinionated + newly introduced unicorn rules as warnings |
|
|
65
65
|
|
|
66
66
|
`config` is deprecated. Use `configReactTier3OpinionatedTypeChecked` instead, and add `configReactStorybook` explicitly if needed.
|
|
67
67
|
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
configTier2BestPracticesTypeChecked,
|
|
13
13
|
configTier3Opinionated,
|
|
14
14
|
configTier3OpinionatedTypeChecked,
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
configTier4Experimental,
|
|
16
|
+
configTier4ExperimentalTypeChecked
|
|
17
17
|
} from "@xylabs/eslint-config-flat";
|
|
18
18
|
|
|
19
19
|
// src/react/index.ts
|
|
@@ -29,8 +29,8 @@ var reactFiles = ["**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}"];
|
|
|
29
29
|
function currentWorkingDirectory() {
|
|
30
30
|
return globalThis.process?.cwd?.();
|
|
31
31
|
}
|
|
32
|
-
function typeCheckedParserOptions(
|
|
33
|
-
if (!
|
|
32
|
+
function typeCheckedParserOptions(isTypeChecked) {
|
|
33
|
+
if (!isTypeChecked) return {};
|
|
34
34
|
const tsconfigRootDir = currentWorkingDirectory();
|
|
35
35
|
const parserOptions = { projectService: true };
|
|
36
36
|
if (tsconfigRootDir !== void 0) {
|
|
@@ -38,7 +38,7 @@ function typeCheckedParserOptions(typeChecked) {
|
|
|
38
38
|
}
|
|
39
39
|
return parserOptions;
|
|
40
40
|
}
|
|
41
|
-
function scopeReactConfigs(configs,
|
|
41
|
+
function scopeReactConfigs(configs, isTypeChecked = false) {
|
|
42
42
|
return (Array.isArray(configs) ? configs : [configs]).map((config2) => ({
|
|
43
43
|
...config2,
|
|
44
44
|
files: reactFiles,
|
|
@@ -52,19 +52,19 @@ function scopeReactConfigs(configs, typeChecked = false) {
|
|
|
52
52
|
parserOptions: {
|
|
53
53
|
ecmaFeatures: { jsx: true },
|
|
54
54
|
...config2.languageOptions?.parserOptions,
|
|
55
|
-
...typeCheckedParserOptions(
|
|
55
|
+
...typeCheckedParserOptions(isTypeChecked)
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
}));
|
|
59
59
|
}
|
|
60
|
-
function createReactOverride(
|
|
60
|
+
function createReactOverride(isTypeChecked = false) {
|
|
61
61
|
return {
|
|
62
62
|
files: reactFiles,
|
|
63
63
|
languageOptions: {
|
|
64
64
|
parser: tsParser,
|
|
65
65
|
parserOptions: {
|
|
66
66
|
ecmaFeatures: { jsx: true },
|
|
67
|
-
...typeCheckedParserOptions(
|
|
67
|
+
...typeCheckedParserOptions(isTypeChecked)
|
|
68
68
|
},
|
|
69
69
|
globals: { ...globals.browser }
|
|
70
70
|
},
|
|
@@ -121,12 +121,12 @@ var configReactTier3OpinionatedTypeChecked = mergeTierConfigs(
|
|
|
121
121
|
configTier3OpinionatedTypeChecked,
|
|
122
122
|
reactBestPracticesTypeCheckedConfig
|
|
123
123
|
);
|
|
124
|
-
var
|
|
125
|
-
|
|
124
|
+
var configReactTier4Experimental = mergeTierConfigs(
|
|
125
|
+
configTier4Experimental,
|
|
126
126
|
reactBestPracticesTypeCheckedConfig
|
|
127
127
|
);
|
|
128
|
-
var
|
|
129
|
-
|
|
128
|
+
var configReactTier4ExperimentalTypeChecked = mergeTierConfigs(
|
|
129
|
+
configTier4ExperimentalTypeChecked,
|
|
130
130
|
reactBestPracticesTypeCheckedConfig
|
|
131
131
|
);
|
|
132
132
|
var recommendedConfig = configReactTier2BestPractices;
|
|
@@ -147,8 +147,8 @@ export {
|
|
|
147
147
|
configReactTier2BestPracticesTypeChecked,
|
|
148
148
|
configReactTier3Oopinionated,
|
|
149
149
|
configReactTier3OpinionatedTypeChecked,
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
configReactTier4Experimental,
|
|
151
|
+
configReactTier4ExperimentalTypeChecked,
|
|
152
152
|
recommendedConfig,
|
|
153
153
|
recommendedTypeCheckedConfig,
|
|
154
154
|
recommendedTypeCheckedWithStorybookConfig,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/storybook/index.ts", "../../src/tiers/index.ts", "../../src/react/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Linter } from 'eslint'\nimport storybook from 'eslint-plugin-storybook'\n\nexport const storybookConfig: Linter.Config[] = storybook.configs['flat/recommended'] as Linter.Config[]\n", "import {\n configTier0Correctness, configTier0CorrectnessTypeChecked, configTier1Consistency,\n configTier1ConsistencyTypeChecked,\n configTier2BestPractices,\n configTier2BestPracticesTypeChecked,\n configTier3Opinionated,\n configTier3OpinionatedTypeChecked,\n
|
|
5
|
-
"mappings": ";AACA,OAAO,eAAe;AAEf,IAAM,kBAAmC,UAAU,QAAQ,kBAAkB;;;ACHpF;AAAA,EACE;AAAA,EAAwB;AAAA,EAAmC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACTP,OAAO,cAAc;AAErB,OAAO,oBAAoB;AAC3B,OAAO,sBAAsB;AAC7B,OAAO,iCAAiC;AACxC,OAAO,8BAA8B;AACrC,OAAO,uBAAuB;AAC9B,OAAO,iBAAiB;AACxB,OAAO,aAAa;AAEpB,IAAM,aAAa,CAAC,sCAAsC;AAE1D,SAAS,0BAA8C;AACrD,SAAQ,WAAoD,SAAS,MAAM;AAC7E;AAEA,SAAS,yBAAyB,
|
|
4
|
+
"sourcesContent": ["import type { Linter } from 'eslint'\nimport storybook from 'eslint-plugin-storybook'\n\nexport const storybookConfig: Linter.Config[] = storybook.configs['flat/recommended'] as Linter.Config[]\n", "import {\n configTier0Correctness, configTier0CorrectnessTypeChecked, configTier1Consistency,\n configTier1ConsistencyTypeChecked,\n configTier2BestPractices,\n configTier2BestPracticesTypeChecked,\n configTier3Opinionated,\n configTier3OpinionatedTypeChecked,\n configTier4Experimental,\n configTier4ExperimentalTypeChecked,\n} from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nimport {\n reactBestPracticesConfig,\n reactBestPracticesTypeCheckedConfig,\n} from '../react/index.ts'\nimport { storybookConfig } from '../storybook/index.ts'\n\nfunction mergeTierConfigs(...parts: readonly Linter.Config[][]): Linter.Config[] {\n return parts.flat()\n}\n\nexport const configReactStorybook: Linter.Config[] = [...storybookConfig]\n\nexport const configReactTier0Correctness: Linter.Config[] = [...configTier0Correctness]\n\nexport const configReactTier0CorrectnessTypeChecked: Linter.Config[] = [...configTier0CorrectnessTypeChecked]\n\nexport const configReactTier1Consistency: Linter.Config[] = [...configTier1Consistency]\n\nexport const configReactTier1ConsistencyTypeChecked: Linter.Config[] = [...configTier1ConsistencyTypeChecked]\n\nexport const configReactTier2BestPractices: Linter.Config[] = mergeTierConfigs(\n configTier2BestPractices,\n reactBestPracticesConfig,\n)\n\nexport const configReactTier2BestPracticesTypeChecked: Linter.Config[] = mergeTierConfigs(\n configTier2BestPracticesTypeChecked,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier3Oopinionated: Linter.Config[] = mergeTierConfigs(\n configTier3Opinionated,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier3OpinionatedTypeChecked: Linter.Config[] = mergeTierConfigs(\n configTier3OpinionatedTypeChecked,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier4Experimental: Linter.Config[] = mergeTierConfigs(\n configTier4Experimental,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier4ExperimentalTypeChecked: Linter.Config[] = mergeTierConfigs(\n configTier4ExperimentalTypeChecked,\n reactBestPracticesTypeCheckedConfig,\n)\n\n/** @deprecated Use `configReactTier2BestPractices` instead. */\nexport const recommendedConfig: Linter.Config[] = configReactTier2BestPractices\n\n/** @deprecated Use `configReactTier2BestPracticesTypeChecked` instead. */\nexport const recommendedTypeCheckedConfig: Linter.Config[] = configReactTier2BestPracticesTypeChecked\n\nexport const recommendedTypeCheckedWithStorybookConfig: Linter.Config[] = mergeTierConfigs(\n configReactTier2BestPracticesTypeChecked,\n configReactStorybook,\n)\n\n/** @deprecated Use `configReactTier3OpinionatedTypeChecked` instead. Add `configReactStorybook` explicitly if needed. */\nexport const config: Linter.Config[] = recommendedTypeCheckedWithStorybookConfig\n", "import tsParser from '@typescript-eslint/parser'\nimport type { ESLint, Linter } from 'eslint'\nimport reactDomPlugin from 'eslint-plugin-react-dom'\nimport reactHooksPlugin from 'eslint-plugin-react-hooks'\nimport reactNamingConventionPlugin from 'eslint-plugin-react-naming-convention'\nimport eslintReactRefreshPlugin from 'eslint-plugin-react-refresh'\nimport reactWebApiPlugin from 'eslint-plugin-react-web-api'\nimport reactPlugin from 'eslint-plugin-react-x'\nimport globals from 'globals'\n\nconst reactFiles = ['**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}']\n\nfunction currentWorkingDirectory(): string | undefined {\n return (globalThis as { process?: { cwd?: () => string } }).process?.cwd?.()\n}\n\nfunction typeCheckedParserOptions(isTypeChecked: boolean): Record<string, unknown> {\n if (!isTypeChecked) return {}\n const tsconfigRootDir = currentWorkingDirectory()\n const parserOptions: Record<string, unknown> = { projectService: true }\n if (tsconfigRootDir !== undefined) {\n parserOptions.tsconfigRootDir = tsconfigRootDir\n }\n return parserOptions\n}\n\nfunction scopeReactConfigs(\n configs: Linter.Config | Linter.Config[],\n isTypeChecked = false,\n): Linter.Config[] {\n return (Array.isArray(configs) ? configs : [configs]).map(config => ({\n ...config,\n files: reactFiles,\n languageOptions: {\n parser: tsParser,\n ...config.languageOptions,\n globals: {\n ...(globals.browser as Record<string, boolean>),\n ...(config.languageOptions?.globals as Record<string, unknown> | undefined),\n },\n parserOptions: {\n ecmaFeatures: { jsx: true },\n ...(config.languageOptions?.parserOptions as Record<string, unknown> | undefined),\n ...typeCheckedParserOptions(isTypeChecked),\n },\n },\n }))\n}\n\nfunction createReactOverride(isTypeChecked = false): Linter.Config {\n return {\n files: reactFiles,\n languageOptions: {\n parser: tsParser,\n parserOptions: {\n ecmaFeatures: { jsx: true },\n ...typeCheckedParserOptions(isTypeChecked),\n },\n globals: { ...globals.browser },\n },\n plugins: {\n 'react-dom': reactDomPlugin,\n 'react-web-api': reactWebApiPlugin,\n 'react-refresh': eslintReactRefreshPlugin,\n 'react-hooks': reactHooksPlugin as unknown as ESLint.Plugin,\n 'react-naming-convention': reactNamingConventionPlugin,\n },\n rules: {\n ...reactDomPlugin.configs.strict.rules,\n ...reactWebApiPlugin.configs.recommended.rules,\n ...reactHooksPlugin.configs.flat.recommended.rules,\n ...reactNamingConventionPlugin.configs.recommended.rules,\n ...eslintReactRefreshPlugin.configs.recommended.rules,\n 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],\n 'react-hooks/use-memo': 'warn',\n 'react-hooks/set-state-in-effect': 'warn',\n },\n }\n}\n\nexport const reactBestPracticesConfig: Linter.Config[] = [\n ...scopeReactConfigs(reactPlugin.configs['strict-typescript']),\n createReactOverride(),\n]\n\nexport const reactBestPracticesTypeCheckedConfig: Linter.Config[] = [\n ...scopeReactConfigs(reactPlugin.configs['strict-type-checked'], true),\n createReactOverride(true),\n]\n\nexport const reactConfig: Linter.Config[] = reactBestPracticesTypeCheckedConfig\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["config"]
|
|
7
7
|
}
|
|
@@ -8,8 +8,8 @@ export declare const configReactTier2BestPractices: Linter.Config[];
|
|
|
8
8
|
export declare const configReactTier2BestPracticesTypeChecked: Linter.Config[];
|
|
9
9
|
export declare const configReactTier3Oopinionated: Linter.Config[];
|
|
10
10
|
export declare const configReactTier3OpinionatedTypeChecked: Linter.Config[];
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
11
|
+
export declare const configReactTier4Experimental: Linter.Config[];
|
|
12
|
+
export declare const configReactTier4ExperimentalTypeChecked: Linter.Config[];
|
|
13
13
|
/** @deprecated Use `configReactTier2BestPractices` instead. */
|
|
14
14
|
export declare const recommendedConfig: Linter.Config[];
|
|
15
15
|
/** @deprecated Use `configReactTier2BestPracticesTypeChecked` instead. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tiers/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAYpC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAyB,CAAA;AAEzE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAGxD,CAAA;AAED,eAAO,MAAM,wCAAwC,EAAE,MAAM,CAAC,MAAM,EAGnE,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAGvD,CAAA;AAED,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAGjE,CAAA;AAED,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tiers/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAYpC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAyB,CAAA;AAEzE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAGxD,CAAA;AAED,eAAO,MAAM,wCAAwC,EAAE,MAAM,CAAC,MAAM,EAGnE,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAGvD,CAAA;AAED,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAGjE,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAGvD,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,MAAM,CAAC,MAAM,EAGlE,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAkC,CAAA;AAE/E,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAA6C,CAAA;AAErG,eAAO,MAAM,yCAAyC,EAAE,MAAM,CAAC,MAAM,EAGpE,CAAA;AAED,yHAAyH;AACzH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAA8C,CAAA"}
|
package/dist/node/index.mjs
CHANGED
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
configTier2BestPracticesTypeChecked,
|
|
13
13
|
configTier3Opinionated,
|
|
14
14
|
configTier3OpinionatedTypeChecked,
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
configTier4Experimental,
|
|
16
|
+
configTier4ExperimentalTypeChecked
|
|
17
17
|
} from "@xylabs/eslint-config-flat";
|
|
18
18
|
|
|
19
19
|
// src/react/index.ts
|
|
@@ -29,8 +29,8 @@ var reactFiles = ["**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}"];
|
|
|
29
29
|
function currentWorkingDirectory() {
|
|
30
30
|
return globalThis.process?.cwd?.();
|
|
31
31
|
}
|
|
32
|
-
function typeCheckedParserOptions(
|
|
33
|
-
if (!
|
|
32
|
+
function typeCheckedParserOptions(isTypeChecked) {
|
|
33
|
+
if (!isTypeChecked) return {};
|
|
34
34
|
const tsconfigRootDir = currentWorkingDirectory();
|
|
35
35
|
const parserOptions = { projectService: true };
|
|
36
36
|
if (tsconfigRootDir !== void 0) {
|
|
@@ -38,7 +38,7 @@ function typeCheckedParserOptions(typeChecked) {
|
|
|
38
38
|
}
|
|
39
39
|
return parserOptions;
|
|
40
40
|
}
|
|
41
|
-
function scopeReactConfigs(configs,
|
|
41
|
+
function scopeReactConfigs(configs, isTypeChecked = false) {
|
|
42
42
|
return (Array.isArray(configs) ? configs : [configs]).map((config2) => ({
|
|
43
43
|
...config2,
|
|
44
44
|
files: reactFiles,
|
|
@@ -52,19 +52,19 @@ function scopeReactConfigs(configs, typeChecked = false) {
|
|
|
52
52
|
parserOptions: {
|
|
53
53
|
ecmaFeatures: { jsx: true },
|
|
54
54
|
...config2.languageOptions?.parserOptions,
|
|
55
|
-
...typeCheckedParserOptions(
|
|
55
|
+
...typeCheckedParserOptions(isTypeChecked)
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
}));
|
|
59
59
|
}
|
|
60
|
-
function createReactOverride(
|
|
60
|
+
function createReactOverride(isTypeChecked = false) {
|
|
61
61
|
return {
|
|
62
62
|
files: reactFiles,
|
|
63
63
|
languageOptions: {
|
|
64
64
|
parser: tsParser,
|
|
65
65
|
parserOptions: {
|
|
66
66
|
ecmaFeatures: { jsx: true },
|
|
67
|
-
...typeCheckedParserOptions(
|
|
67
|
+
...typeCheckedParserOptions(isTypeChecked)
|
|
68
68
|
},
|
|
69
69
|
globals: { ...globals.browser }
|
|
70
70
|
},
|
|
@@ -121,12 +121,12 @@ var configReactTier3OpinionatedTypeChecked = mergeTierConfigs(
|
|
|
121
121
|
configTier3OpinionatedTypeChecked,
|
|
122
122
|
reactBestPracticesTypeCheckedConfig
|
|
123
123
|
);
|
|
124
|
-
var
|
|
125
|
-
|
|
124
|
+
var configReactTier4Experimental = mergeTierConfigs(
|
|
125
|
+
configTier4Experimental,
|
|
126
126
|
reactBestPracticesTypeCheckedConfig
|
|
127
127
|
);
|
|
128
|
-
var
|
|
129
|
-
|
|
128
|
+
var configReactTier4ExperimentalTypeChecked = mergeTierConfigs(
|
|
129
|
+
configTier4ExperimentalTypeChecked,
|
|
130
130
|
reactBestPracticesTypeCheckedConfig
|
|
131
131
|
);
|
|
132
132
|
var recommendedConfig = configReactTier2BestPractices;
|
|
@@ -147,8 +147,8 @@ export {
|
|
|
147
147
|
configReactTier2BestPracticesTypeChecked,
|
|
148
148
|
configReactTier3Oopinionated,
|
|
149
149
|
configReactTier3OpinionatedTypeChecked,
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
configReactTier4Experimental,
|
|
151
|
+
configReactTier4ExperimentalTypeChecked,
|
|
152
152
|
recommendedConfig,
|
|
153
153
|
recommendedTypeCheckedConfig,
|
|
154
154
|
recommendedTypeCheckedWithStorybookConfig,
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/storybook/index.ts", "../../src/tiers/index.ts", "../../src/react/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Linter } from 'eslint'\nimport storybook from 'eslint-plugin-storybook'\n\nexport const storybookConfig: Linter.Config[] = storybook.configs['flat/recommended'] as Linter.Config[]\n", "import {\n configTier0Correctness, configTier0CorrectnessTypeChecked, configTier1Consistency,\n configTier1ConsistencyTypeChecked,\n configTier2BestPractices,\n configTier2BestPracticesTypeChecked,\n configTier3Opinionated,\n configTier3OpinionatedTypeChecked,\n
|
|
5
|
-
"mappings": ";AACA,OAAO,eAAe;AAEf,IAAM,kBAAmC,UAAU,QAAQ,kBAAkB;;;ACHpF;AAAA,EACE;AAAA,EAAwB;AAAA,EAAmC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACTP,OAAO,cAAc;AAErB,OAAO,oBAAoB;AAC3B,OAAO,sBAAsB;AAC7B,OAAO,iCAAiC;AACxC,OAAO,8BAA8B;AACrC,OAAO,uBAAuB;AAC9B,OAAO,iBAAiB;AACxB,OAAO,aAAa;AAEpB,IAAM,aAAa,CAAC,sCAAsC;AAE1D,SAAS,0BAA8C;AACrD,SAAQ,WAAoD,SAAS,MAAM;AAC7E;AAEA,SAAS,yBAAyB,
|
|
4
|
+
"sourcesContent": ["import type { Linter } from 'eslint'\nimport storybook from 'eslint-plugin-storybook'\n\nexport const storybookConfig: Linter.Config[] = storybook.configs['flat/recommended'] as Linter.Config[]\n", "import {\n configTier0Correctness, configTier0CorrectnessTypeChecked, configTier1Consistency,\n configTier1ConsistencyTypeChecked,\n configTier2BestPractices,\n configTier2BestPracticesTypeChecked,\n configTier3Opinionated,\n configTier3OpinionatedTypeChecked,\n configTier4Experimental,\n configTier4ExperimentalTypeChecked,\n} from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nimport {\n reactBestPracticesConfig,\n reactBestPracticesTypeCheckedConfig,\n} from '../react/index.ts'\nimport { storybookConfig } from '../storybook/index.ts'\n\nfunction mergeTierConfigs(...parts: readonly Linter.Config[][]): Linter.Config[] {\n return parts.flat()\n}\n\nexport const configReactStorybook: Linter.Config[] = [...storybookConfig]\n\nexport const configReactTier0Correctness: Linter.Config[] = [...configTier0Correctness]\n\nexport const configReactTier0CorrectnessTypeChecked: Linter.Config[] = [...configTier0CorrectnessTypeChecked]\n\nexport const configReactTier1Consistency: Linter.Config[] = [...configTier1Consistency]\n\nexport const configReactTier1ConsistencyTypeChecked: Linter.Config[] = [...configTier1ConsistencyTypeChecked]\n\nexport const configReactTier2BestPractices: Linter.Config[] = mergeTierConfigs(\n configTier2BestPractices,\n reactBestPracticesConfig,\n)\n\nexport const configReactTier2BestPracticesTypeChecked: Linter.Config[] = mergeTierConfigs(\n configTier2BestPracticesTypeChecked,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier3Oopinionated: Linter.Config[] = mergeTierConfigs(\n configTier3Opinionated,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier3OpinionatedTypeChecked: Linter.Config[] = mergeTierConfigs(\n configTier3OpinionatedTypeChecked,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier4Experimental: Linter.Config[] = mergeTierConfigs(\n configTier4Experimental,\n reactBestPracticesTypeCheckedConfig,\n)\n\nexport const configReactTier4ExperimentalTypeChecked: Linter.Config[] = mergeTierConfigs(\n configTier4ExperimentalTypeChecked,\n reactBestPracticesTypeCheckedConfig,\n)\n\n/** @deprecated Use `configReactTier2BestPractices` instead. */\nexport const recommendedConfig: Linter.Config[] = configReactTier2BestPractices\n\n/** @deprecated Use `configReactTier2BestPracticesTypeChecked` instead. */\nexport const recommendedTypeCheckedConfig: Linter.Config[] = configReactTier2BestPracticesTypeChecked\n\nexport const recommendedTypeCheckedWithStorybookConfig: Linter.Config[] = mergeTierConfigs(\n configReactTier2BestPracticesTypeChecked,\n configReactStorybook,\n)\n\n/** @deprecated Use `configReactTier3OpinionatedTypeChecked` instead. Add `configReactStorybook` explicitly if needed. */\nexport const config: Linter.Config[] = recommendedTypeCheckedWithStorybookConfig\n", "import tsParser from '@typescript-eslint/parser'\nimport type { ESLint, Linter } from 'eslint'\nimport reactDomPlugin from 'eslint-plugin-react-dom'\nimport reactHooksPlugin from 'eslint-plugin-react-hooks'\nimport reactNamingConventionPlugin from 'eslint-plugin-react-naming-convention'\nimport eslintReactRefreshPlugin from 'eslint-plugin-react-refresh'\nimport reactWebApiPlugin from 'eslint-plugin-react-web-api'\nimport reactPlugin from 'eslint-plugin-react-x'\nimport globals from 'globals'\n\nconst reactFiles = ['**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}']\n\nfunction currentWorkingDirectory(): string | undefined {\n return (globalThis as { process?: { cwd?: () => string } }).process?.cwd?.()\n}\n\nfunction typeCheckedParserOptions(isTypeChecked: boolean): Record<string, unknown> {\n if (!isTypeChecked) return {}\n const tsconfigRootDir = currentWorkingDirectory()\n const parserOptions: Record<string, unknown> = { projectService: true }\n if (tsconfigRootDir !== undefined) {\n parserOptions.tsconfigRootDir = tsconfigRootDir\n }\n return parserOptions\n}\n\nfunction scopeReactConfigs(\n configs: Linter.Config | Linter.Config[],\n isTypeChecked = false,\n): Linter.Config[] {\n return (Array.isArray(configs) ? configs : [configs]).map(config => ({\n ...config,\n files: reactFiles,\n languageOptions: {\n parser: tsParser,\n ...config.languageOptions,\n globals: {\n ...(globals.browser as Record<string, boolean>),\n ...(config.languageOptions?.globals as Record<string, unknown> | undefined),\n },\n parserOptions: {\n ecmaFeatures: { jsx: true },\n ...(config.languageOptions?.parserOptions as Record<string, unknown> | undefined),\n ...typeCheckedParserOptions(isTypeChecked),\n },\n },\n }))\n}\n\nfunction createReactOverride(isTypeChecked = false): Linter.Config {\n return {\n files: reactFiles,\n languageOptions: {\n parser: tsParser,\n parserOptions: {\n ecmaFeatures: { jsx: true },\n ...typeCheckedParserOptions(isTypeChecked),\n },\n globals: { ...globals.browser },\n },\n plugins: {\n 'react-dom': reactDomPlugin,\n 'react-web-api': reactWebApiPlugin,\n 'react-refresh': eslintReactRefreshPlugin,\n 'react-hooks': reactHooksPlugin as unknown as ESLint.Plugin,\n 'react-naming-convention': reactNamingConventionPlugin,\n },\n rules: {\n ...reactDomPlugin.configs.strict.rules,\n ...reactWebApiPlugin.configs.recommended.rules,\n ...reactHooksPlugin.configs.flat.recommended.rules,\n ...reactNamingConventionPlugin.configs.recommended.rules,\n ...eslintReactRefreshPlugin.configs.recommended.rules,\n 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],\n 'react-hooks/use-memo': 'warn',\n 'react-hooks/set-state-in-effect': 'warn',\n },\n }\n}\n\nexport const reactBestPracticesConfig: Linter.Config[] = [\n ...scopeReactConfigs(reactPlugin.configs['strict-typescript']),\n createReactOverride(),\n]\n\nexport const reactBestPracticesTypeCheckedConfig: Linter.Config[] = [\n ...scopeReactConfigs(reactPlugin.configs['strict-type-checked'], true),\n createReactOverride(true),\n]\n\nexport const reactConfig: Linter.Config[] = reactBestPracticesTypeCheckedConfig\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["config"]
|
|
7
7
|
}
|
|
@@ -8,8 +8,8 @@ export declare const configReactTier2BestPractices: Linter.Config[];
|
|
|
8
8
|
export declare const configReactTier2BestPracticesTypeChecked: Linter.Config[];
|
|
9
9
|
export declare const configReactTier3Oopinionated: Linter.Config[];
|
|
10
10
|
export declare const configReactTier3OpinionatedTypeChecked: Linter.Config[];
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
11
|
+
export declare const configReactTier4Experimental: Linter.Config[];
|
|
12
|
+
export declare const configReactTier4ExperimentalTypeChecked: Linter.Config[];
|
|
13
13
|
/** @deprecated Use `configReactTier2BestPractices` instead. */
|
|
14
14
|
export declare const recommendedConfig: Linter.Config[];
|
|
15
15
|
/** @deprecated Use `configReactTier2BestPracticesTypeChecked` instead. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tiers/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAYpC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAyB,CAAA;AAEzE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAGxD,CAAA;AAED,eAAO,MAAM,wCAAwC,EAAE,MAAM,CAAC,MAAM,EAGnE,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAGvD,CAAA;AAED,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAGjE,CAAA;AAED,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tiers/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAYpC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAyB,CAAA;AAEzE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAgC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAA2C,CAAA;AAE7G,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAGxD,CAAA;AAED,eAAO,MAAM,wCAAwC,EAAE,MAAM,CAAC,MAAM,EAGnE,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAGvD,CAAA;AAED,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAGjE,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAGvD,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,MAAM,CAAC,MAAM,EAGlE,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAkC,CAAA;AAE/E,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAA6C,CAAA;AAErG,eAAO,MAAM,yCAAyC,EAAE,MAAM,CAAC,MAAM,EAGpE,CAAA;AAED,yHAAyH;AACzH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAA8C,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xylabs/eslint-config-react-flat",
|
|
3
|
-
"version": "8.2.
|
|
3
|
+
"version": "8.2.11",
|
|
4
4
|
"description": "ESLint Config used throughout XY Labs TypeScript/JavaScript libraries and react projects",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xylabs",
|
|
@@ -43,22 +43,21 @@
|
|
|
43
43
|
"LICENSE"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@typescript-eslint/parser": "^8.61.
|
|
46
|
+
"@typescript-eslint/parser": "^8.61.1",
|
|
47
47
|
"eslint-plugin-react-dom": "^5.9.0",
|
|
48
48
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
49
49
|
"eslint-plugin-react-naming-convention": "^5.9.0",
|
|
50
50
|
"eslint-plugin-react-refresh": "^0.5.3",
|
|
51
51
|
"eslint-plugin-react-web-api": "^5.9.0",
|
|
52
52
|
"eslint-plugin-react-x": "^5.9.0",
|
|
53
|
-
"eslint-plugin-storybook": "^10.4.
|
|
53
|
+
"eslint-plugin-storybook": "^10.4.6",
|
|
54
54
|
"globals": "~17.6.0",
|
|
55
|
-
"@xylabs/eslint-config-flat": "~8.2.
|
|
55
|
+
"@xylabs/eslint-config-flat": "~8.2.11"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@babel/core": "^7.29.7",
|
|
59
58
|
"@testing-library/dom": "^10.4.1",
|
|
60
59
|
"@types/node": "^25.9.3",
|
|
61
|
-
"@vitest/coverage-v8": "~4.1.
|
|
60
|
+
"@vitest/coverage-v8": "~4.1.9",
|
|
62
61
|
"acorn": "^8.17.0",
|
|
63
62
|
"browserslist": "4.28.2",
|
|
64
63
|
"cosmiconfig": "~9.0.2",
|
|
@@ -66,13 +65,13 @@
|
|
|
66
65
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
67
66
|
"react": "^19.2.7",
|
|
68
67
|
"react-dom": "^19.2.7",
|
|
69
|
-
"storybook": "^10.4.
|
|
68
|
+
"storybook": "^10.4.6",
|
|
70
69
|
"typescript": "^6.0.3",
|
|
71
70
|
"vite": "^8.0.16",
|
|
72
|
-
"vitest": "~4.1.
|
|
71
|
+
"vitest": "~4.1.9",
|
|
73
72
|
"zod": "^4.4.3",
|
|
74
|
-
"@xylabs/toolchain": "~8.2.
|
|
75
|
-
"@xylabs/tsconfig": "~8.2.
|
|
73
|
+
"@xylabs/toolchain": "~8.2.11",
|
|
74
|
+
"@xylabs/tsconfig": "~8.2.11"
|
|
76
75
|
},
|
|
77
76
|
"peerDependencies": {
|
|
78
77
|
"browserslist": ">= 4.21.0",
|