feature-sliced / eslint-config

🍰 Lint feature-sliced concepts by existing eslint plugins
https://npmjs.com/@feature-sliced/eslint-config
MIT License
119 stars 4 forks source link

LINT: Add relative-imports support #62

Open azinit opened 2 years ago

azinit commented 2 years ago

Description

Should work for each rule

Reference

// Pass
import { ... } from "entities/user";
import { ... } from "../entities/user";
import { ... } from "../../entities/user";
...
azinit commented 2 years ago

Относительные импорты - плохо, но кажется конфиг должен и для относительных импортов корректно работать 🤔

Krakazybik commented 2 years ago

@azinit А какие с ними проблемы? Я вроде бы проверил данные кейсы, и вроде как работают. Можешь дать по точнее примеры, а то не совсем понимаю о чем речь идёт.

azinit commented 2 years ago

А какие с ними проблемы?

@Krakazybik См. выше)

"Относительные импорты - плохо, но кажется конфиг должен и для относительных импортов корректно работать 🤔"

Я вроде бы проверил данные кейсы, и вроде как работают.

Тогда надо в тесты добавить явно. Чтобы мы были уверены, что наши разные boundaries работают и для относительных импортов (а не только абсолютных, которые подразумевали в большинстве случаев)

Можешь дать по точнее примеры, а то не совсем понимаю о чем речь идёт.

Как пример для imports-order:

// Разные по вложенности импорты для проверки, 
// по факту же - они все равно все в src на одном уровне будут

// Fail
import { ... } from "../shared/button"; 
import { ... } from "../../entities/user";
import { ... } from "features/auth-form";

// Pass
import { ... } from "features/auth-form";
import { ... } from "../../entities/user";
import { ... } from "../shared/button";

Для layers-slices, public-api аналогично - чтобы в тестах учитывались и относительные импорты и сами правила работают как ожидаются

azinit commented 2 years ago

вот такое тоже отлавливать надо по идее

image