feod-structure/no-common-index
Запрет index-файлов и их импорта в common.
Включено как error в recommended и strict. Autofix отсутствует. Поддерживается ESLint и Oxlint.
Зачем нужно
Сохраняет явные импорты небольших общих утилит. common не становится модулем с общей barrel-точкой входа, которая скрывает реальные зависимости.
Что проверяет
Сообщает о посещённом index.* внутри слоя с ролью common и об импорте такого файла из другого файла. Проверяет путь, а не содержимое: даже index.ts без реэкспортов запрещён. Импорт каталога, разрешившийся в его index, тоже проверяется.
Примеры
Зачёркнутые index.ts запрещены. Корректные импорты ведут непосредственно к файлу.
Ошибка
// src/common/index.ts
export { format } from './format';
// src/modules/User/view.ts
import { format } from '@common/index'; Корректно
// src/common/format.ts
export const format = (value: string) => value.trim();
// src/modules/User/view.ts
import { format } from '@common/format'; Настройка
createConfig({ layerDirs: { common: 'shared' } });Специального переключателя allowIndex нет. Для другого архитектурного соглашения отключите правило или используйте слой без роли common. Прямые options: группы пути, алиасы, layerDirs: { common: '…' }.
Когда ослаблять
При миграции старого shared с barrel-файлами можно временно отключить правило для этой части. Учитывайте разницу между files и ignore. Наличие запрещённого файла без посещения линтером эта проверка сама не сканирует.