I no longer use this project and have not maintained it in a while, thus I am archiving the repo. Anyone is free to fork – contact me if you want publishing permissions for the packages.
major_graphql uses the dart build system and gql to generate built_value classes, primarily for use in client side applications.
There is also an example major_todo_app which is livecoded on youtube.
targets:
$default:
builders:
major_graphql_generator|builder:
enabled: true
options:
schema: major_graphql_example|lib/graphql/schema.graphqldependencies:
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 settinggenerate: false. They are still assumed to be built value types unless they are in thescalarsmap. Not that you need to refer to them in the config by their graphql type name.replaceTypesrenames all references to a given typemixinscan 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
importsandexports(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