eslint-plugin-romanssam-fsd-plugin
v0.0.8
Published
plugin for detect relative imports
Downloads
12
Maintainers
Readme
eslint-fsd-plugin
Описание
eslint-fsd-plugin — это плагин для ESLint, разработанный для проверки относительных импортов в рамках методологии Feature-Sliced Design (FSD). Плагин помогает обеспечить, что все импорты внутри одного слайса (slice) используют относительные пути, что соответствует принципам FSD. Это улучшает читаемость кода и поддерживает модульную структуру проекта.
Установка
Установите плагин как зависимость в вашем проекте с помощью npm:
npm i eslint-plugin-romanssam-fsd-pluginНастройка
Чтобы использовать плагин, добавьте его в конфигурацию ESLint. В файле .eslintrc (или другом конфигурационном файле ESLint) укажите плагин в массиве plugins и включите правило в секции rules.
Пример конфигурации
{
"plugins": [
"romanssam-fsd-plugin"
],
"rules": {
"romanssam-fsd-plugin/check-relative-path": "error"
}
}Как работает плагин
Плагин проверяет все ImportDeclaration в вашем коде и определяет, должны ли импорты быть относительными. Если путь импорта является абсолютным, но находится в пределах одного слайса и слоя (layer), плагин выдаст ошибку с сообщением:
В рамках одного слайса все пути должны быть относительнымиПоддерживаемые слои
Плагин работает со следующими слоями, определёнными в методологии FSD:
entitiesfeaturessharedpageswidgets
Логика работы
- Плагин анализирует путь импорта (
importTo) и файл, из которого выполняется импорт (fromFileName). - Если путь уже является относительным (начинается с
./или../), проверка пропускается. - Плагин извлекает слой (layer) и слайс (slice) из пути импорта и файла.
- Если слой и слайс совпадают, но путь импорта абсолютный, выдается ошибка.
Пример
Неправильный код
// src/entities/User/model/user.ts
import { User } from 'entities/User';Ошибка: В рамках одного слайса (User) импорт должен быть относительным.
Правильный код
// src/entities/User/model/user.ts
import { User } from './User';Зависимости
- ESLint
- Node.js
pathмодуль (встроенный)
