overwrite: true
schema:
  - './src/graphql/schema/*.graphql'
generates:
  ./src/graphql/__generated__/schema.graphql:
    plugins:
      - schema-ast
  ./src/graphql/__generated__/types.ts:
    plugins:
      - typescript
      - typescript-resolvers
      - typescript-operations
    config:
      avoidOptionals: true
      strictScalars: true
      scalars:
        Date: Date
config:
  strict: true
  contextType: ../context#Context
  addDocBlocks: true
  noNamespaces: true
  useIndexSignature: true
  noSchemaStitching: true
  avoidOptionals: true
  mappers:
    Artist: ../../apis/delphi-types#ArtistSimple as DelphiArtist
    Video: ../../data/video#Video as VideoInternal
    Product: ../../data/product#Product as ProductInternal
    VideoMetrics: ../resolvers/video#VideoMetrics as DelphiVideoMetrics
    Label: ../resolvers/label#Label as LabelModel
    Track: ../../data/track#Track as TrackInternal
    TrackChangeWeek: ../../amadeus/amadeus#TrackChangeWeek as TrackChangeWeekModel
    Playlist: ../resolvers/playlist#PlaylistInternal
    TrackPlaylist: ../../data/track-playlists#TrackPlaylist as DataTrackPlaylist
    TrackPlaylistCurrent: ../resolvers/trackPlaylist#TrackPlaylistCurrent as TrackPlaylistCurrentInternal
    TrackPlaylistPrevious: ../resolvers/trackPlaylist#TrackPlaylistPrevious as TrackPlaylistPreviousInternal
    Entity: ../../data/entity#Entity as EntityInternal

hooks:
  afterAllFileWrite:
    - prettier --write
