Создать примерно такую структуру
yourproject/
-graphqlgen.js # Конфиг кодгена, mam пропускает все файлы с ^-
-graphqlmol.js # Плагин под $mol_data
graphql
request.ts # Файл ниже, базовая функция запроса
queries.ts # Будет создан код геном
После вызовы кодгена
npx graphql-codegen --config myproject/-graphqlgen.js
request.ts
нужно будет реализовать под свой проект, с токенами в заголовкой и тп
typescript plugin генерирует $fragmentName в типах и mam пытается подклоючить такой пакет, его понятно нет. Так же в запросах скорее всего будет $input переменная, которая так же будет воспринята mam как пакет. Чтобы это обойти можно просто сделать в корне mam:
mkdir fragment
mkdir input
Если запросы из какого-то файла не попадают в queries.ts
- проверь запросы. В случае ошибки graphql-codegen молча такие скипает без ошибки.
У urql по-умолчанию работает сброс кеша на уровне __typename
:
https://nearform.com/open-source/urql/docs/basics/document-caching/
Попробовал у себя сделать так же, пока проблем не заметил. В файле request_document_cache.ts
реализован простой кеш, который собирает __typename
из всех query и триггерит перезагрузку когда мутация задевает связные __typename
. Это может порождать лишние запросы, но в случае всяких админок позволяет положить болт на ручное обновление связных запросов (например если вы грузите список статей и отдельно где-то редактируется статья, после редактирования произойдет автоматическое обновление). Единственное нужно добавлять __typename
в запросы везде, иначе этот трюк не сработает.
Добавил добавление __typename
на всех уровнях запроса.