eslint-plugin-amocrm-plugin
v0.0.13
Published
plugin for codestyle in layers
Downloads
11
Maintainers
Readme
eslint-plugin-amocrm-plugin
Плагин для проверки архитектурных правил.
Installation
Для начала нужно установить eslint в проект ESLint:
npm i eslint --save-dev
Затем установить сам плагин eslint-plugin-amocrm-plugin
:
npm install eslint-plugin-amocrm-plugin --save-dev
Usage
Добавьте amocrm-plugin
в список плагинов в конфигурационный файл .eslintrc
:
{
"plugins": [
"amocrm-plugin"
]
}
Затем настройте правила, которые вы хотите использовать, в разделе правил:
{
"rules": {
"amocrm-plugin/path-checker": [
'error',
{
lang: 'ru',
rootDir: 'react',
checkingLayers: ['components', 'pages'],
},
],
'amocrm-plugin/public-api': [
'error',
{
lang: 'ru',
checkingLayers: ['components', 'pages'],
},
],
'amocrm-plugin/import-rule': [
'error',
{
lang: 'ru',
rootDir: 'react',
layers: {
pages: [
'components',
'ui',
'utils',
'hooks',
'api',
'constants',
'hoc',
'types',
],
components: [
'components',
'ui',
'utils',
'hooks',
'api',
'constants',
'hoc',
'types',
],
ui: ['ui', 'utils', 'hooks', 'api', 'constants', 'hoc', 'types'],
utils: [
'ui',
'utils',
'hooks',
'api',
'constants',
'hoc',
'types',
],
hooks: [
'ui',
'utils',
'hooks',
'api',
'constants',
'hoc',
'types',
],
api: ['ui', 'utils', 'hooks', 'api', 'constants', 'hoc', 'types'],
constants: [
'ui',
'utils',
'hooks',
'api',
'constants',
'hoc',
'types',
],
hoc: ['ui', 'utils', 'hooks', 'api', 'constants', 'hoc', 'types'],
types: [
'ui',
'utils',
'hooks',
'api',
'constants',
'hoc',
'types',
],
},
availableLayers: {
pages: 'pages',
components: 'components',
ui: 'ui',
api: 'api',
hooks: 'hooks',
utils: 'utils',
hoc: 'hoc',
constants: 'constants',
types: 'types',
},
ignoreImportPatterns: [],
},
],
}
}
Rules
path-checker
Правило проверяет, что внутри слайсов используются относительные импорты.
Параметры
- lang - Язык ошибок
- rootDir - Название директории, в которой лежат слои
- checkingLayers - Слои, в которых работает это правило
public-api
Правило проверяет, что все импорты происходят из public api.
Параметры
- lang - Язык ошибок
- checkingLayers - Слои, в которых работает это правило
import-rule
Правило проверяет, что все импорты происходят из нижележащих слоёв.
Параметры
- lang - Язык ошибок
- rootDir - Название директории, в которой лежат слои
- layers
- Ключ объекта - название слоя
- Значение объекта - слои, которые в него можно импортировать
- availableLayers - Слои, в которых проверяется это правило
- ignoreImportPatterns - Список регулярных выражений с названиями директорий, которые можно импортировать из вышестоящего слоя
Как разрабатывать npm пакет
Создаём линку npm пакета
В cd /eslint-plugin-amocrm-plugin
прописываем:
npm link
В package.json
проекта, в котором будем использовать плагин, задаём путь до директории:
{
"devDependencies": {
"eslint-plugin-amocrm-plugin": "/Users/artemkolesnikov/Documents/amoCRM/work/eslint-plugin-amocrm-plugin",
}
}
Далее в проекте нужно рестартнуть сервер eslint.
Если необходимо внести правки в существующее правило, нужно в /tests/название_правила.js
добавить тесты для новых правок и запускать их скриптом:
npm run test
Для дебага тестов можно выбрасывать ошибки throw Error()
, чтобы при выполнении тестов смотреть логи.
Добавление нового правила
Если нужно добавить новое правило, то в директории /rules/название_правила.js
добавляем файл.