yarn install
yarn build
- сборка ассетов дляproduction
сборкиyarn lint
- линтингyarn schema:generate-types
- генерация типов для GraphQL (необходимо активное подключение к gql-сервису, адрес которого указан вcodegen.yml
)yarn gql:generate-configs
- генерация api для GraphQL (по конфигуsrc/lib/gqlConfig/config.ts
)yarn figma:generate-resources
- генерация ресурсов из фигмыyarn dev
- запуск дев-сервераyarn serve
- запуск сервера дляproduction
ассетов
Создаются внутри ServicesManager
и по сути является глобальной сущностью. Сервис можно получить в любом месте через функцию getService
.
Для работы с GraphQL используется сервис Apollo и сервис-надстройка над ним для удобства оперирования с экшенами.
Чтобы использовать типизацию gql
, нужно сначала сгенерировать gql-типы на основании схемы, которую предоставляет backend, и на основании самих экшенов, которые описываются в отдельной папке (lib/gql
). Для этого имеется скрипт schema:generate-types
.
Для использования самих экшенов есть сервис GraphglAPI
. Он нужен в основном для инкапсуляции логики обработки ошибок исполнения экшна, выбрасывания оповещений и переключения состояний. Для его использования нужно генерировать экшны с помощью отдельного скрипта - gql:generate-configs
. Формат описания экшенов должен совпадать с базовым типом TActionConfig
и находиться в соответствующем конфиге.
enum
-списки в чистом виде из сгенерированных типов лучше избегать, потому что при добавлении в них новых значений на фронте нужно сразу же фиксить коллизии, если используется где-то проход по ключам этого списка. Поэтому нужно ручками задавать перечисление в константе (это важно) и уже потом реиспользовать.
Линтинг осуществляется с помощью eslint