Prevent importing unknown elements from the known ones
It checks import
statements to local files. If the imported file is not recognized as any of the element types from settings, the import
will be notified as an error.
"boundaries/no-unknown": [<enabled>]
enabled
: for enabling the rule. 0=off, 1=warn, 2=error.
{
"rules": {
"boundaries/no-unknown": [2]
}
}
Examples in the next sections are based on the previous options example and these files and settings.
src/
├── components/
│ └─ atoms/
│ ├── atom-a/
│ │ ├── index.js
│ │ └── AtomA.js
│ └── atom-b/
│ ├── index.js
│ └── AtomB.js
├── helpers/
│ ├── data/
│ │ ├── sort.js
│ │ └── parse.js
│ └── permissions/
│ └── roles.js
│
├── foo.js
└── index.js
{
"settings": {
"boundaries/elements": [
{
"type": "helpers",
"pattern": "helpers/*/*.js",
"mode": "file",
"capture": ["category", "elementName"]
},
{
"type": "components",
"pattern": "components/*/*",
"mode": "folder",
"capture": ["family", "elementName"]
}
]
}
}
Helpers can't import foo.js
file because it is unknown
// src/helpers/data/parse.js
import foo from '../../foo'
Components can't import index.js
file because it is unknown
// src/components/atoms/atom-a/AtomA.js
import index from '../../../index'
Components can import helpers
// src/components/atoms/atom-a/AtomA.js
import index from '../../../helpers/data/parse'
index.js
file can import foo.js
file because both are unknown
// src/index.js
import foo from './foo'
- Read how to configure the
boundaries/elements
setting to assign an element type to each project's file.