eslint-config icon indicating copy to clipboard operation
eslint-config copied to clipboard

LINT: Add relative-imports support

Open azinit opened this issue 3 years ago • 4 comments

Description

Should work for each rule

  • [ ] imports-order
  • [ ] layers-slices
  • [ ] public-api

Reference

// Pass
import { ... } from "entities/user";
import { ... } from "../entities/user";
import { ... } from "../../entities/user";
...

azinit avatar Dec 30 '21 14:12 azinit

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

azinit avatar Dec 30 '21 14:12 azinit

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

Krakazybik avatar Jan 02 '22 09:01 Krakazybik

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

@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 avatar Jan 08 '22 10:01 azinit

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

image

azinit avatar Jan 16 '22 09:01 azinit