HoudiniGraphql/houdini

Align Result and QueryResult

gschulze opened this issue · 4 comments

Describe the feature

I discovered that there are two types that are quite similar: Result and QueryResult.

One is defined as:

export type Result<DataType> = {
    isFetching: boolean
    partial: boolean
    source?: DataSource | null
    data?: DataType | null
    error?: Error | null
}

the other one as

export type QueryResult<_Data = GraphQLObject, _Input = GraphQLVariables> = {
    data: _Data | null;
    errors: {
        message: string;
    }[] | null;
    fetching: boolean;
    partial: boolean;
    stale: boolean;
    source: DataSources | null;
    variables: _Input | null;
};

Why is it called isFetching one time and fetching the other? I'm asking because our project uses derived stores, which propagate the fetching field with a transformed data field. Instead of defining our own Result type, I would rather use an existing one, so I discovered the inconsistency.

It would be nice if these types used the same name for all fields.

Criticality

None

Yea this is a bit of a wart that has developed over the years. I'll leave this issue open to remind us when we set up for 2.0

@SeppahBaws what to do think about getting this done along with the upcoming 2.0 release?

Yep sounds good. Are you talking about houdini-svelte 2.0 or houdini 2.0 here?

Maybe it's also worth creating a milestone or two here in github so we have a more clear view of what we want to add/fix when?

Are you talking about houdini-svelte 2.0 or houdini 2.0 here?

Whichever needs the change. We're going to have to roll out 2.0 versions for both since the graphql version will change

Maybe it's also worth creating a milestone

Good idea! I went ahead and did that.