BetaДокументация для beta‑теста, возможны ошибки и неточности.
Перейти к содержимому

feod-structure/pages-private-modules ​

Область доступа приватных модулей страниц.

Включено как error в recommended и strict. Autofix отсутствует. Поддерживается ESLint и Oxlint.

Зачем нужно ​

Не позволяет переиспользовать реализацию одной страницы из другой. Общую логику нужно вынести в публичный модуль или common.

Что проверяет ​

Приватная область определяется первым сегментом с префиксом _ внутри pages:

РасположениеКто может импортировать
pages/_home/**Сама область и файлы pages/home.*
pages/profile/_profile/**Файлы внутри pages/profile/**

Для корневой страницы допускаются и имена вроде home.test.ts.

Примеры ​

  • pages
    • home.ts
    • _home
      • useHome.ts
    • settings.ts
    • profile
      • index.ts
      • _profile
        • header.ts

Значки у файлов поясняют область доступа. Ограничение касается направления импорта: само существование _home или _profile допустимо.

Ошибка ​

ts
// src/pages/settings.ts
import { useHome } from './_home'; 

// src/pages/admin/index.ts
import { header } from '../profile/_profile/header'; 

Корректно ​

ts
// src/pages/home.ts
import { useHome } from './_home'; 

// src/pages/profile/index.ts
import { header } from './_profile/header'; 

Настройка ​

js
createConfig({ layerDirs: { pages: 'screens' } });

Префикс _ фиксирован. Прямые options принимают группы пути, алиасы, layerDirs: { pages: '…' }. Проверка подключается для слоя с ролью pages, включая commands в наборе cliLayers.

Связанные правила ​

Это ограничение приватной области страницы. Направления зависимостей страниц и публичные входы бизнес-модулей проверяет layer-imports. Для переиспользуемой функциональности перенос в modules сохраняет явную границу API.

Реализация ​

Исходный код · Тесты · Все правила