Closed arreshashikant closed 1 year ago
Hi!
The current behaviour is that way because it solves a more general problem:
Suppose you had these queries:
query PlaylistDetails($playlistId:String!){
response:getPlaylistDetails(playlistId: $playlistId){
message
error
data {
...PlaylistDetailsFragment
additionalField1
}
}
}
query PlaylistByUserId($privacy:privacyType!,$userId:String!,$after:String!){
response:getAllPlaylists(privacy: $privacy,userId: $userId,after: $after){
data {
...PlaylistDetailsFragment
additionalField2
}
}
}
fragment PlaylistDetailsFragment on playlist{
privacy
userId
listOfPosts
coverImage
createdOn
title
playlistId
}
But did you notice that both generated classes implement the abstract class GPlaylistDetailsFragment
and this abstract class defines all shared fields?
You can cast your models up to GPlaylistDetailsFragment
if you want to write code that handles both models.
Wow! I didn't notice this one. Thank you
Regarding the fragment related fields, ferry generates:
Can we convert graphql fragments as dart mixins. So that we don't generate separate models which are same.