Добавить типы ресурсов Topic и Review

Завершена
Планируемый запуск: Дата начала: 06.03.2021Планируемое завершение: Дата завершения: 06.03.2021

Описание задачи

{"blocks": [{"key": "fttlb", "data": {}, "text": "Решение: https://github.com/gorodskie-bani-ru/nextjs/commit/8de6e942370e465ee3717804963f8f0d3b5fe616", "type": "unstyled", "depth": 0, "entityRanges": [{"key": 0, "length": 91, "offset": 10}], "inlineStyleRanges": []}, {"key": "dq2cu", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}], "entityMap": {"0": {"data": {"url": "https://github.com/gorodskie-bani-ru/nextjs/commit/8de6e942370e465ee3717804963f8f0d3b5fe616"}, "type": "LINK", "mutability": "MUTABLE"}}}

Довольно интересный получился эксперимент и в целом результат положительный, но не обошлось без шероховаточтей. Во-первых, генератор типов graphql-code-generator офигел от фрагментов с юнионами и наплодил неиспользуемых дубликатов, из-за чего пришлось добавить в шаблон // @ts-nocheck, чтобы typescript не ругался на неиспользуемые переменные. Вот здесь обсуждение: https://github.com/dotansimha/graphql-code-generator/issues/4008 Во-вторых, аполло-клиент так же троит с юнионами и просит указывать possibleTypes, чтобы мемори-кеш понимал такие фрагменты. Указал. В остальном вроде все ОК и положительный эффект имеется. Теперь не только исбавился от необходимости указывать условие для выборки документов по parent или template (вместо этого получил два отдельных запроса reviews и topics), но и получилось создать отдельный фрагмент topic, и указать его тип в карточке топика, чтобы во вьюху можно было передавать данные именно этих типов ресурсов, но не другие (как то Компания, Город или просто Resource).