major_graphql uses the dart
build system and
gql to generate
built_value classes, primarily for use in client side applications.
targets: $default: builders: major_graphql_generator|builder: enabled: true options: schema: major_graphql_example|lib/graphql/schema.graphql
dependencies: major_graphql: ^0.0.3 # or major_graphql_flutter: ^0.0.1 for flutter dev_dependencies: major_graphql_generator: ^0.0.3 build_runner: ^1.7.4
- These libraries are highly experimental, and the generator is currently quite slow.
- custom scalar usage & configuration
- unions appear to be broken
- There are currently numerous smaller limitations and caveats
irreducibleTypesare types for which selection sets should not be generated. You can supply your own type for them as well by setting
generate: false. They are still assumed to be built value types unless they are in the
scalarsmap. Not that you need to refer to them in the config by their graphql type name.
replaceTypesrenames all references to a given type
mixinscan be added conditionally:
mixins: - name: Entity when: fields: - entityId - validFrom - validUntil # disable mixin for these classes nameNot: - MySpecialEntity - MyOtherSpecialEntity
- userland code can be injected via
exports(and needs to be to use scalars and mixins):
schema: path: savvy_app|lib/graphql/schema.graphql imports: - package:savvy_app/graphql/base.dart - package:built_value/json_object.dart exports: - package:savvy_app/graphql/base.dart - package:built_value/json_object.dart