Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LINT(GET-STARTED): Check customization of config #22

Closed
3 of 6 tasks
Tracked by #37 ...
azinit opened this issue Nov 24, 2021 · 26 comments · Fixed by #48
Closed
3 of 6 tasks
Tracked by #37 ...

LINT(GET-STARTED): Check customization of config #22

azinit opened this issue Nov 24, 2021 · 26 comments · Fixed by #48
Assignees
Labels
help wanted Extra attention is needed
Milestone

Comments

@azinit
Copy link
Member

azinit commented Nov 24, 2021

Description

Add posibility to customize config by "concepts"-presets

We should support at least these options for integration:

  • Option 1. All recommended

    "I want all recommended boundaries"

  • Option 2. Only one specific

    "I want ONLY layers-boundaries / slice-boundaries / public-api-boundaries / import-order-boundaries / ... "

  • Option 3. Only few specific

    "I want ONLY layers-boundaries AND private-imports-boundaries"

  • Option 4. Customize impl of configs (see LINT(CUSTOM): Add advanced customization of config #45)
    • "I want to enable shared/styles in public-api linting"
    • "I want to add my own layer into existing"

Suggestion

As variant, to split these options by eslint rules presets:

But if you have better ideas - you're welcome ✊

// Option 1.  All recommended
extends: [
   "@feature-sliced/recommended"
],
// Option 2.  Only one specific
extends: [
   "@feature-sliced/rules/layers",
   // OR "@feature-sliced/rules/slices"
   // OR "@feature-sliced/rules/private-imports"
   // OR "@feature-sliced/rules/import-order"
],
// Option 3. Only few specific
extends: [
   "@feature-sliced/rules/layers",
   "@feature-sliced/rules/private-imports",
],
// Option 4. Customize impl of configs
// No ideas... Maybe "initConfig(...)" setup-helpers?
@azinit azinit changed the title LINT: Refine customization of config LINT(GET-STARTED): Refine customization of config Dec 11, 2021
@azinit azinit added help wanted Extra attention is needed and removed help wanted Extra attention is needed labels Dec 11, 2021
@azinit azinit added this to the 0.1.0-concept milestone Dec 12, 2021
@Krakazybik
Copy link
Member

Krakazybik commented Dec 12, 2021

посмотреть

@Krakazybik Krakazybik self-assigned this Dec 12, 2021
@Krakazybik
Copy link
Member

jetBrains

@Krakazybik
Copy link
Member

"@feature-sliced/rules/layers", "@feature-sliced/rules/slices" А есть ли смысл отделять эти концепции? Могут ли они понадобиться одна без другой? Если да, то можем, отделить их на другой итерации? т.к. пока что это одно правило и думаю это стоит сделать тогда в рамках отдельного PR.

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

"@feature-sliced/rules/layers", "@feature-sliced/rules/slices" А есть ли смысл отделять эти концепции? Могут ли они понадобиться одна без другой?

Ага)

Одно дело когда у тебя одна фича дергает другую фичу (slices)
И совсем другое - когда shared импортит pages (layers)

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

Если да, то можем, отделить их на другой итерации? т.к. пока что это одно правило и думаю это стоит сделать тогда в рамках отдельного PR.

Но да, это не значит, что эти правила надо дробить на несколько отдельных сразу нужно
Щас скорее правильно, что они находятся в layers-slices-boundaries

Но тут речь и о том, что конфиг конкретного правила должен как-то экспортироваться частями
(у того же publicApi тоже может быть несколько подправил: private-imports, relative-imports, unified-api, ...)

Думаю даже, что и imports-order в каком-то роде относится к public -api 🤔

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

Если оч сложно сейчас, то можно конечно на отдельные правила попилить пока

Но это нужно прям на этой итерации, т.к. гораздо проще и профитнее придерживаться того же layers-boundaries в легасишном проекте
Чем расцеплять слайсы между собой (slices-boundaries)

@Krakazybik
Copy link
Member

тогда заведёшь ишью?

@Krakazybik
Copy link
Member

на самом деле у нас возможности так гибко манипулировать конфигами нет =( даже параметры не можем прокидывать

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

тогда заведёшь ишью?
Так эта ишью для этого и нужна как раз)

Чтобы что-то попилить, что-то в пресеты

@Krakazybik
Copy link
Member

Krakazybik commented Dec 13, 2021

Вот собственно проблема, конфиги заменяют друг друга.

Screencast.2021-12-13.23.39.21.mp4

@Krakazybik
Copy link
Member

Решение: заводим legacy-boundaries в котором будет только что там для легаси, и layers-slices-boundaries. И подключается либо один, либо другой.

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

@Krakazybik Проблему понял, но недопонял немног - а что за legacy?)

@Krakazybik
Copy link
Member

Screenshot_20211214_010606_com.github.android.jpg
я думал ты про v1.0

@Krakazybik
Copy link
Member

ну или only-layers-boundaries, не суть в названии

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

ну или only-layers-boundaries, не суть в названии

Ну т.е. грубо говоря, придется сделать комбинаторные конфиги, чисто из-за того что в layers-slices один другой перетирает, если отдельно подключать - верно понял мысль?

@Krakazybik
Copy link
Member

агась

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

Хммм, досадно однако)
Ладно, тогда давай пока посмотрим, насколько другие опции можно удовлетворить

Мб получится что узнать по ресерчу с кастомизацией по параметрам

Или вдруг найдешь способ, как можно без комбинаторных конфигов совмещать все это дело

@azinit
Copy link
Member Author

azinit commented Dec 13, 2021

Ближе к среде сам посмотрю еще подробней, но спс что сообщил о проблеме ✊

@azinit azinit changed the title LINT(GET-STARTED): Refine customization of config LINT(GET-STARTED): Check customization of config Dec 18, 2021
@Krakazybik
Copy link
Member

Kazam_screencast_00002.mp4

@Krakazybik Krakazybik linked a pull request Dec 19, 2021 that will close this issue
3 tasks
@Krakazybik
Copy link
Member

Krakazybik commented Dec 19, 2021

@feature-sliced/eslint-config - все рекомендованные
индекс можно в принципе переименовать в recommended, если надо чтоб recommended на конце было. ну или импортить из rec индекс

@azinit
Copy link
Member Author

azinit commented Dec 19, 2021

@feature-sliced/eslint-config - все рекомендованные индекс можно в принципе переименовать в recommended, если надо чтоб recommended на конце было. ну или импортить из rec индекс

Выглядит оч круто!

@Krakazybik А можешь пож подсказать - можно ли экстендиться от конфига без явного указания /eslint-config/**?

Т.е. сразу @feature-sliced/rules/import-order

По идее же должен подлавливать нормально 🤔

@Krakazybik
Copy link
Member

Выглядит оч круто!

@Krakazybik А можешь пож подсказать - можно ли экстендиться от конфига без явного указания /eslint-config/**?

Т.е. сразу @feature-sliced/rules/import-order

По идее же должен подлавливать нормально thinking

Неа, не хочет почему-то.

@Krakazybik
Copy link
Member

image
у JB тоже так

@azinit
Copy link
Member Author

azinit commented Dec 19, 2021

Блен, печально)

@azinit
Copy link
Member Author

azinit commented Dec 19, 2021

Но ладно, зато хоть как-то работает

Потом энивей до собственного плагина дойдет 😄

@Krakazybik
Copy link
Member

Блен, печально)

ну не так уж и страшно =)

@Krakazybik Krakazybik removed a link to a pull request Dec 19, 2021
3 tasks
@azinit azinit linked a pull request Dec 20, 2021 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants