@@ -19,163 +19,4 @@ Thank you for your interest in contributing to ESLint React! This guide will hel
1919- ** Multiple Small Commits Allowed** - GitHub will squash before merging
2020- ** New Features** - Provide strong rationale, preferably with prior discussion
2121- ** Bug Fixes** - Include ` (fix: #xxxx) ` in your PR title and detailed description
22-
23- ## Repository Structure
24-
25- ### Local Packages
26-
27- - ` .pkgs/configs ` : Workspace config bases
28- - ` .pkgs/eslint-plugin-local ` : Internal workspace ESLint plugin
29-
30- ### Internal Packages
31-
32- - ** Utilities**
33- - ` packages/utilities/eff ` : JavaScript and TypeScript utilities (previously some re-exports of the ` effect ` library)
34- - ` packages/utilities/ast ` : TSESTree AST utility module for static analysis
35- - ` packages/utilities/var ` : TSESTree AST utility module for static analysis of variables
36- - ` packages/utilities/jsx ` : TSESTree AST utility module for static analysis of JSX
37- - ` packages/utilities/kit ` : ESLint React's Plugin Kit for building plugins and rules
38- - ** Core & Shared**
39- - ` packages/core ` : Utility module for static analysis of React core APIs and patterns
40- - ` packages/shared ` : Shared constants, types and functions
41-
42- ### Public Packages
43-
44- - ** ESLint Plugins**
45- - ` eslint-plugin-react-x ` : Core React rules
46- - ` eslint-plugin-react-dom ` : React DOM rules
47- - ` eslint-plugin-react-web-api ` : Web API interaction rules
48- - ` eslint-plugin-react-hooks-extra ` : Extra React Hooks rules
49- - ` eslint-plugin-react-naming-convention ` : Naming convention rules
50- - ` eslint-plugin-react-debug ` : Debugging rules for inspecting React patterns in code
51- - ` eslint-plugin ` : Main plugin combining all rules and presets from the above packages
52-
53- ### Documentation
54-
55- - ` apps/website ` : Documentation website
56- - ` apps/playground ` : Interactive playground (WIP)
57-
58- ## Repository Structure Diagram
59-
60- ``` mermaid
61- flowchart TB
62- %% Monorepo
63- subgraph "Monorepo"
64- %% Apps Subgraph
65- subgraph "Apps"
66- Website["Website"]:::apps
67- Playground["Playground"]:::apps
68- end
69-
70- %% Packages Subgraph
71- subgraph "Packages"
72- Core["Core Functionality"]:::packages
73- Shared["Shared Utilities"]:::packages
74-
75- %% Utilities Subgraph
76- subgraph "Utilities Modules"
77- AST["AST Module"]:::utilities
78- Eff["Eff Module"]:::utilities
79- JSX["JSX Module"]:::utilities
80- Kit["Kit Module"]:::utilities
81- Var["Var Module"]:::utilities
82- end
83-
84- %% ESLint Plugins Subgraph
85- subgraph "ESLint Plugins"
86- ReactX["eslint-plugin-react-x"]:::plugins
87- ReactDOM["eslint-plugin-react-dom"]:::plugins
88- WebAPI["eslint-plugin-react-web-api"]:::plugins
89- HooksExtra["eslint-plugin-react-hooks-extra"]:::plugins
90- NamingConvention["eslint-plugin-react-naming-convention"]:::plugins
91- Aggregated["Aggregated Plugin (@eslint-react/eslint-plugin)"]:::plugins
92- end
93- end
94-
95- %% Scripts & Configurations
96- Scripts["Scripts & Configurations"]:::external
97-
98- %% Tests
99- Tests["Tests"]:::external
100- end
101-
102- %% Relationships
103- %% Plugins depend on Core and Shared
104- Core -->|"dependency"| ReactX
105- Core -->|"dependency"| ReactDOM
106- Core -->|"dependency"| WebAPI
107- Core -->|"dependency"| HooksExtra
108- Core -->|"dependency"| NamingConvention
109-
110- Shared -->|"dependency"| ReactX
111- Shared -->|"dependency"| ReactDOM
112- Shared -->|"dependency"| WebAPI
113- Shared -->|"dependency"| HooksExtra
114- Shared -->|"dependency"| NamingConvention
115-
116- %% Utilities used by Core and Plugins
117- AST ---|"provides"| Core
118- Eff ---|"provides"| Core
119- JSX ---|"provides"| Core
120- Kit ---|"provides"| Core
121- Var ---|"provides"| Core
122-
123- AST ---|"provides"| ReactX
124- Eff ---|"provides"| ReactX
125- JSX ---|"provides"| ReactX
126- Kit ---|"provides"| ReactX
127- Var ---|"provides"| ReactX
128-
129- %% Aggregation of Plugins
130- ReactX -->|"aggregated"| Aggregated
131- ReactDOM -->|"aggregated"| Aggregated
132- WebAPI -->|"aggregated"| Aggregated
133- HooksExtra -->|"aggregated"| Aggregated
134- NamingConvention -->|"aggregated"| Aggregated
135-
136- %% Website Documentation uses Core and Shared docs
137- Website -->|"docs"| Core
138- Website -->|"docs"| Shared
139-
140- %% Scripts & CI automation interactions
141- Scripts -->|"CI/CD"| Core
142- Scripts -->|"CI/CD"| Shared
143- Scripts -->|"CI/CD"| AST
144- Scripts -->|"CI/CD"| Eff
145- Scripts -->|"CI/CD"| JSX
146- Scripts -->|"CI/CD"| Kit
147- Scripts -->|"CI/CD"| Var
148- Scripts -->|"CI/CD"| ReactX
149- Scripts -->|"CI/CD"| ReactDOM
150- Scripts -->|"CI/CD"| WebAPI
151- Scripts -->|"CI/CD"| HooksExtra
152- Scripts -->|"CI/CD"| NamingConvention
153- Scripts -->|"CI/CD"| Aggregated
154- Scripts -->|"CI/CD"| Tests
155-
156- %% Click Events
157- click Website "https://github.com/rel1cx/eslint-react/tree/main/apps/website"
158- click Playground "https://github.com/rel1cx/eslint-react/tree/main/apps/playground"
159- click Core "https://github.com/rel1cx/eslint-react/tree/main/packages/core"
160- click Shared "https://github.com/rel1cx/eslint-react/tree/main/packages/shared"
161- click AST "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/ast"
162- click Eff "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/eff"
163- click JSX "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/jsx"
164- click Kit "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/kit"
165- click Var "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/var"
166- click ReactX "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x"
167- click ReactDOM "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom"
168- click WebAPI "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-web-api"
169- click HooksExtra "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-hooks-extra"
170- click NamingConvention "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-naming-convention"
171- click Aggregated "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin"
172- click Scripts "https://github.com/rel1cx/eslint-react/tree/main/scripts"
173- click Tests "https://github.com/rel1cx/eslint-react/tree/main/test"
174-
175- %% Styles
176- classDef apps fill:#f9e79f,stroke:#7d6608,stroke-width:2px;
177- classDef packages fill:#aed6f1,stroke:#1b4f72,stroke-width:2px;
178- classDef utilities fill:#a9dfbf,stroke:#145a32,stroke-width:2px;
179- classDef plugins fill:#f5b7b1,stroke:#78281f,stroke-width:2px;
180- classDef external fill:#d2b4de,stroke:#4a235a,stroke-width:2px;
181- ```
22+ - ** Documentation Changes** - Include ` (docs: #xxxx) ` in your PR title and detailed description
0 commit comments