Closed azinit closed 2 years ago
PublicAPI Layers Slices Import-order
@Krakazybik Спасиб за скрины! В целом тогда кажется, что этого хватит А постпроцессинг оставим на некст итерации
Главное, что по текущим формулировкам понятно что происходит и что менять
Поменяю майлстоун сейчас
Вариант решения (чтоб не затерялся): postprocess
Коты чутка почудили, смотри что получилось =)
https://user-images.githubusercontent.com/1334019/146844710-177d2aa0-139a-49dc-9f92-e3c12f31a30b.mp4
@Krakazybik Спасибо за видос с примером!
А можешь пож уточнить: 1) Кастомайзить можно только "прибавляя доп.текст" к комментарию? А то заметил, что дефолтная часть сообщения остается а мы лишь добавляем "See rule..."
2) Кастомайзить можно только сырой текст? Нельзя ли вставить прям ссылку на доку, чтобы можно было переходить напрямую? (как в eslint-plugin)
3) Сильно дорого ли вышло такое решение?) Т.е. выглядит круто, но насколько сложно в реализации и поддержке такое? Кинешь пож ссыль на коммит/ветку?
(2) Ну я тип вот к чему:
👎 Bad: Чисто идентификатор правила мало что скажет и вряд ли кто будет по нему искать доку
@feature-sliced/import-order
👎 Bad: Ссылка это хорошо, но занимает много места и сложно понять сходу - что за правило то
https://github.com/feature-sliced/eslint-config/blob/master/rules/import-order/index.md
👍 Good: И идентификатор, и ссылка - и компактно (как у eslint-plugin#docUrl)
(3) Да, давай)
Вот смущает как раз, что это не просто функция кастомайзер (как было похоже по доке еслинта), а аж отдельный пакет...
(1) А можешь тогда показать пример как докастомайзиться до тип такого?
Lower layers can't higher layers: widgets => pages (@feature-sliced/layers-boundaries)
(3) Да, давай)
Вот смущает как раз, что это не просто функция кастомайзер (как было похоже по доке еслинта), а аж отдельный пакет...
https://gist.github.com/Krakazybik/53cebb2c763305be13e31042d59a7c72
@Krakazybik Уточнишь пож по (2) и (1)?
@Krakazybik Предлагаю тогда следующий расклад по итогу по этой задаче:
Так и быть, сделаем processor отдельным пакетом, но хранить его код будем пока локально (т.к. он напрямую к конфигу относится) Потом вполне может оказаться, что дальше развивать эту историю не будем - но раз уже столько наработок по задаче, то кажется можно выкатывать Публикацию в нужном виде и коннект уже сам организую, тебе лишь сам processor надо реализовать
Какие именно формулировки процессим
"layers-slices"
=> "Violated isolation between layers or slices: {IMPORT_FROM} => {IMPORT_TO} (FeatureSliced: https://git.io/Jymh2)"
"public-api"
=> "Violated usage of modules Public API (FeatureSliced: https://git.io/Jymjf)"
"import-order"
=> "Broken order of imports (FeatureSliced: https://git.io/JymjI)"