Поправить типизацию, чтобы текущая схема пробрасывалась
Завершена
Проект: @prisma-cms/nextjs-nexus
Планируемый запуск: | Дата начала: | 08.05.2021 | Планируемое завершение: | Дата завершения: | 08.05.2021 |
Проект | Задача | Статус | Дата постановки | Начало | Конец | Кто создал |
---|---|---|---|---|---|---|
@prisma-cms/nextjs-nexus | Поправить типизацию, чтобы текущая схема пробрасывалась | Завершена | 08.05.2021 10:34:18 | 08.05.2021 10:34:24 | 08.05.2021 11:50:07 |
Не получается просто так сделать, и из коробки он тоже не дает таких инструментов.
Тем не менее интересный вариант промежуточный получился:
import { shield } from 'graphql-shield'
import { IRuleFieldMap, ShieldRule } from 'graphql-shield/dist/types'
import { NexusGenObjects } from 'server/nexus/generated/nexus'
type RuleTree = Record<keyof NexusGenObjects, ShieldRule | IRuleFieldMap>
const ruleTree: RuleTree = {
Query: {
// users: rules.users,
},
Mutation: {},
}
export const permissions = shield(ruleTree)
В таком виде он требует описать правила для всех корневых объектов схемы. Это может пригодиться в режиме "Паранойя". Только надо доработать до дженерика, чтобы можно было и дочерние типы хотя бы для Query и Mutation затребовать.
Вот такой вот еще приемлемый вариант получился: https://github.com/prisma-cms/nextjs-nexus/commit/1d1cadaf5e2345a6e51a22e24cbc1444f388a698
Сейчас он хотя бы видит когда какие типы есть.