typescript - NestJs'te bir .graphql dosyasına özel bir scalar'ı nasıl ithal ederim?
Nestjs/graphql paketine teşekkürler, uygulamamın her modülünde ayrı .graphql dosyaları oluşturabiliyorum ve Nestjs sistemi hepsini topluyor ve Apolo sunucusuna iyi bir şekilde tanıtıyor, ama sorun özel scalarlara gelince ortaya çıkıyor, onları onun tutorial'ı söylediği gibi yapıyorum:
https://docs.nestjs.com/graphql/scalars
Ama onları bir .graphql dosyasına nasıl aktaracağımı bulamıyorum, böylece o dosya içinde kullanabilirim. Ve dosya .graphql olduğu için import çalışmıyor. Bir custom scalar'ı .graphql dosyası içinde kullanılmak üzere nasıl aktarabileceğimi biliyor musunuz? Örnek olarak kullanılabilecek bir şey, onların kullandığı bir örnektir:
https://github.com/nestjs/nest/tree/master/sample/12-graphql-apollo
Örneklerinde görebileceğiniz gibi, cats adında bir modülleri olduğunu ve bu modülün içinde cats.resolvers.ts ve cats.graphql dosyalarının bulunduğunu gösteriyorlar; diğer yandan, date.scalar.ts dosyalarını tanımlamışlar. Bu örneği kullanarak soru:
cats.resolvers.ts dosyasındaki bir özelliğe DateScalar kullanmak için ne yapmalıyım?
Cevap #1
Ben de o sorunu yaşadım ve bunu şu şekilde çözdüm:
- İlk olarak, DateScalar'ı sağlayıcı olarak ayarlamak ve ayrıca dışa aktarmak için ortak modülü oluşturdum:
import { Module } from '@nestjs/common';
import { DateScalar } from './scalars/date.scalar';
@Module({
providers: [DateScalar],
exports: [DateScalar]
})
export class CommonModule {}
Daha sonra, common modülünü cats modülüne aktardım, böylece DateScalar cats modülü boyunca kullanılabilir hale geldi.
Ve sonunda cats.graphql içinde aşağıdaki satırı oluşturdum:
scalar Date
type Cat {
id: Int
name: String
age: Int
birthday: Date
}
Dikkat edin, cats.graphql dosyasındaki Scale Date değeri, date.scalar.ts dosyasındaki @Scalar ('Date') içinde ayarlanan değerle eşleşmelidir
