Как импортировать пользовательский скаляр в файл .graphql в NestJs? - PullRequest
0 голосов
/ 19 января 2019

Благодаря пакету @ nestjs / graphql я могу создавать отдельные файлы .graphql в каждом модуле моего приложения, а система Nestjs собирает их все и хорошо представляет их серверу Apolo, но проблема возникает, когда я пытаюсь создать собственные скаляры Я делаю их так, как говорится в его уроке:

https://docs.nestjs.com/graphql/scalars

Но я не могу найти способ импортировать их в файл .graphql, чтобы использовать его в этом файле. и так как файл .graphql, импорт не работает. Знаете ли вы, как я могу импортировать пользовательский скаляр для использования в файле .graphql? То, что может служить примером, является примером, который они используют:

https://github.com/nestjs/nest/tree/master/sample/12-graphql-apollo

Как вы можете видеть их в их примере, они демонстрируют, что у них есть модуль с именем cat, где внутри модуля у них есть свои cats.resolvers.ts и их cats.graphql; и с другой стороны, у них есть свои date.scalar.ts. Вопрос, использующий этот пример:

Что я должен сделать, чтобы использовать DateScalar в свойстве cats.resolvers.ts?

1 Ответ

0 голосов
/ 19 января 2019

У меня была эта проблема, и я решил ее следующим образом:

  • Сначала я создал общий модуль, чтобы установить DateScalar в качестве поставщика и также экспортировать его:


    import { Module } from '@nestjs/common';
    import { DateScalar } from './scalars/date.scalar';

    @Module({
        providers: [DateScalar],
        exports: [DateScalar]
    })
    export class CommonModule {}

  • Позже я импортировал общий модуль в модуль Cat, чтобы DateScalar был доступен во всем модуле Cat.

  • И, наконец, я установилследующая строка внутри cats.graphql:



    scalar Date

    type Cat {
      id: Int
      name: String
      age: Int
      birthday: Date
    }

Обратите внимание, что значение Scale Date в файле cats.graphql должно совпадать со значением, установленным в @Scalar ('Date') в дате.файл scalar.ts

...