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