Skip to content
This repository has been archived by the owner on Oct 2, 2024. It is now read-only.

@include in graphql-schema not working #343

Open
Nealsoni00 opened this issue Jul 16, 2021 · 4 comments
Open

@include in graphql-schema not working #343

Nealsoni00 opened this issue Jul 16, 2021 · 4 comments
Labels
bug Something isn't working

Comments

@Nealsoni00
Copy link

Nealsoni00 commented Jul 16, 2021

Bug description

I have an @include (if: $detailed) in my fragment. When that $detailed is set to false, and the schema is returned without the property, parsing the response with the generated type file does not work.

The fragment is included using fragment_glob in build.yml

image

fragment propertyFields on Property {
    id
    optionallyIncludedProperty(first: $number, after: $cursor) @include(if: $detailed) {
        ...someConnectionFields
    }
}

line that errors:

SomeMixin$Property _$SomeMixin$PropertyFromJson(
    Map<String, dynamic> json) {
  return SomeMixin$Property()
    ..id = json['id'] as String
    ..optionallyIncludedProperty = SomeMixin$SomeConnection.fromJson(
        json['optionallyIncludedProperty'] as Map<String, dynamic>) \\<----
}

Specs

artemis: ^7.0.0-beta.3

build.yaml:
targets:
  $default:
    sources:
      - lib/**
    builders:
      artemis:
        options:
          fragments_glob: lib/graphql/operations/fragments/*.graphql
          schema_mapping:
            - schema: lib/graphql/schema.graphql
              queries_glob: lib/graphql/operations/api.graphql
              output: lib/graphql/api.dart
          scalar_mapping:
            - graphql_type: JSON
              dart_type: Map<String, dynamic>
            - graphql_type: ISO8601DateTime
              dart_type: DateTime
Artemis output:
builds successfully
@Nealsoni00 Nealsoni00 added the bug Something isn't working label Jul 16, 2021
@kmcgill88
Copy link

I ran into the same issue with artemis: 7.8.0-beta. In my case the graph query executes correctly but conditionally some data isn't return,...hence the parsing error. Same thing for @skip.

@cfsbhawkins
Copy link

Yeah this seems to be related to the model builder, @include will work just fine if the Schema says field could be nullable, but if it's something that reports back as not nullable then includes will fail, such as a connection or node.

@sarp86
Copy link

sarp86 commented Nov 18, 2022

Any updates? We have the same problem? This ticket is open over one year?

@pdegand
Copy link

pdegand commented Mar 15, 2023

@comigor As a solution for this issue, could this be an acceptable behavior to generate a Dart nullable field if a non-nullable GraphQL field marked with the @include directive ?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants