Skip to content

Commit d6bc6e5

Browse files
committed
Add rule file isolation boundary to prevent cross-rule imports
- Changed `rules-folder` boundary type to `rule-file` with file-level granularity - Updated pattern from `src/linter/rules` folder to `src/rules/*.ts` files - Added explicit disallow rule preventing rule files from importing other rule files - Updated allowed dependencies for rule files to include `common-folder`, `utils-folder`, and `linter-folder` - Added custom message explaining rule files should be independent
1 parent 574d493 commit d6bc6e5

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

.eslintrc.cjs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,13 @@ const BOUNDARIES_PLUGIN_RULES = {
259259
allow: ['common-folder', 'utils-folder'],
260260
},
261261
{
262-
from: 'rules-folder',
263-
allow: ['common-folder', 'linter-folder'],
262+
from: 'rule-file',
263+
allow: ['common-folder', 'utils-folder', 'linter-folder'],
264+
},
265+
{
266+
from: 'rule-file',
267+
disallow: ['rule-file'],
268+
message: 'Rule file should not import other rule files, they should be independent',
264269
},
265270
{
266271
from: 'test-folder',
@@ -339,9 +344,9 @@ module.exports = {
339344
mode: 'folder',
340345
},
341346
{
342-
type: 'rules-folder',
343-
pattern: 'src/linter/rules',
344-
mode: 'folder',
347+
type: 'rule-file',
348+
pattern: 'src/rules/*.ts',
349+
mode: 'file',
345350
},
346351
{
347352
type: 'common-folder',

0 commit comments

Comments
 (0)