Comments (6)
The way do to this with ferry is to use a fragment
fragment BasePokemonInfo on Pokemon {
id
name
type
}
and then reuse this fragment
query Pokemon0($id: ID!) {
pokemon(id: $id) {
...BasePokemonInfo
}
}
# lib/graphql/query.pokemon_1.graphql
query Pokemon1($id: ID!) {
pokemon(id: $id) {
...BasePokemonInfo
weight
}
}
This will generate an abstract class GBasePokemonInfo
and the types on both queries will implement this fragment.
from ferry.
I think so. If not, please file a bug ;)
from ferry.
Does that fit your usecase?
It's a little different than what you described, but I think it's safer this way.
If we generated the full type and you used that in your code, your code might break if an additional field is added to the schema.
from ferry.
Thank you for the suggestion!
Would theGBasePokemonInfoFragment
still be generated if it is not used in any query?
from ferry.
I should fit my use case yes, thank you! I still need to try it out
from ferry.
I created a fragment (unused anywhere, but it could be used):
# lib/graphql/fragment.pokemon.graphql
fragment PokemonFragment on Pokemon {
id
name
type
}
The generator did create a GPokemonFragmentData
class that I can use
// lib/main.dart
void main() {
final pokemon = GPokemonFragmentData(
(pokemon) => pokemon
..id = 'id'
..name = 'name'
..type = 'type',
);
}
Thank you @knaeckeKami, it did fit my use case and is probably safer than what I was asking initially!
Closing the issue
from ferry.
Related Issues (20)
- [Update] Update ferry_generator analyzer HOT 3
- Request stream doesn't listen to loading state
- Custom scalar serializer - InvalidType error HOT 1
- Error generating classes for mutation that returns a union HOT 3
- Cannot use `tristate_optionals: true` in mutations having lists in their parameters HOT 5
- Custom ISO serializer for DateTime HOT 5
- How to remove the `__typename` in the `toJson` of a fragment HOT 2
- Change in cache doesn't propagate HOT 28
- [Feature Request] Add `ContextEntries` to requests that can be retrieved in custom `gql` `Link` HOT 9
- [Feature Request] Access properties using Maps (ferry_generator) HOT 3
- [question]: Freezed support HOT 4
- [Feature Request] a CLI that output unused field/argument in the schema HOT 1
- Generating tristate_optionals generates invalid code with mixed up imports HOT 10
- Unable to Upload Multipart File with dio link HOT 2
- ferry_flutter: endless loading state after the cache has been cleared HOT 1
- Null check operator used on a null value and "Bad Element" HOT 1
- schema.schema.gql.dart not generated - "possibleTypesMap" missing HOT 3
- Ferry cannot decompose fragment on TypeCondition HOT 1
- Manually update the ferry data HOT 1
- TypePolicy is broken Or there is no clear documentation about it. HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ferry.