Локальные утилиты (references/utilities.md)

Источник: ds-skills/core-ui-development-skills/src/skills/build-core-ui-components/references/utilities.md — справочник скилла build-core-ui-components

src/my-widget/utils/
├── index.ts
└── calculate-this-date/
    ├── calculate-this-date.ts
    ├── calculate-this-date.test.ts
    └── index.ts
  • Размещать каждую нетривиальную утилиту в отдельной директории.
  • Называть директорию и основной файл в kebab-case (calculate-this-date), функцию — lowerCamelCase (calculateThisDate).
  • Создавать index.ts внутри директории утилиты и агрегирующий utils/index.ts.
  • Импортировать утилиты через ближайший barrel-файл; не экспортировать их из публичного src/my-widget/index.ts.
  • Создавать отдельный unit-тест для каждой утилиты рядом с реализацией.
  • Проверять основной сценарий, границы, разрешённые пустые или ошибочные данные и неизменность входа для чистых преобразований.
  • Делать утилиту чистой, если побочный эффект не является частью её назначения.
  • Не переносить утилиту в общее место автоматически. Если она нужна сестринским компонентам, применить классификацию из change-boundaries.md.
// utils/calculate-this-date/index.ts
export { calculateThisDate } from "./calculate-this-date";

// utils/index.ts
export { calculateThisDate } from "./calculate-this-date";