eslint-plugin-fsd-project v0.1.0
eslint-plugin-fsd-project
Check imports for FSD architecture
Installation
You'll first need to install ESLint:
npm i eslint --save-devNext, install eslint-plugin-fsd-project:
npm install eslint-plugin-fsd-project --save-devUsage
Add fsd-project to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:
{
"plugins": [
"fsd-project"
]
}Then configure the rules you want to use under the rules section.
{
"rules": {
"fsd-project/path-checker": [
"error",
{ "alias": "@", "srcPath": "src" }
],
"fsd-project/public-api-imports": [
"error",
{
"alias": "@",
"testFilesPatterns": ["**/*.test.ts", "**/*.test.tsx", "**/StoreDecorator.tsx"],
}
],
"fsd-project/layer-imports": [
"error", {
"alias": "@",
"srcPath": "src",
"ignoreImportPatterns": ["**/StoreProvider", "**/testing"],
}
],
}
}Rules
path-checker
Описание
Пути импорта в рамках одного слайса должны бить относительными.
Сообщение В рамках одного слайса все пути должны быть относительными
Исключением является слайс shared
Аргументы
alias: string = '' - строка-символ псевдонима путей
srcPath: string = 'src' - строка - относительный путь от root до папки с src
public-api-imports
Описание
Абсолютные пути импорда должны быть из Public API
Сообщение
- Абсолютный импорт разрешен только из Public API (index.ts)
- Тестовые данные необходимо импортировать из publicApi/testing.ts
Исключением является слайс shared
Аргументы
alias: string = '' - строка-символ псевдонима путей
testFilesPatterns: string[] = [] - массив паттернов файлов для тестирования
layer-imports
Описание
Проверяет корректный импорт между слоями в рамках концепции FSD:
Правила импортов:
app <-- pages, widgets, features, shared, entities
pages <-- widgets, features, shared, entities
widgets <-- features, shared, entities
features <-- shared, entities
entities <-- shared, entities
shared <-- shared
Сообщение Слой может импортировать в себя только нижележащие слои (shared, entities, features, widgets, pages, app)
Аргументы
alias: string = '' - строка-символ псевдонима путей
srcPath: string = 'src' - строка - относительный путь от root до папки с src
ignoreImportPatterns: string[] = [] - массив паттернов файлов для исключений
customLayerRules: object = {} - правила импоров слоев, которые перезапишут правила по-умолчанию
type-reference
Описание
Проверяет использование глобальных типов в рамках FSD
Сообщение
- Запрещено использовать глобальные типы из других слайсов (entities, features, widgets, pages, app)
Аргументы
alias: string = '' - строка-символ псевдонима путей
ignoreModules: string[] = [] - массив паттернов деклараций модулей для исключений. Например ["Shared"]
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago