ngneat / query

🚀 Powerful asynchronous state management, server-state utilities and data fetching for Angular Applications

Home Page:https://ngneat.github.io/query

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

createSuccessObserverResult should also take a generic error

Xample opened this issue · comments

Which @ngneat/query-* package(s) are relevant/releated to the feature request?

query

Description

I'm having this abstract method:

    abstract getStuff$( ): ObservableQueryResult<Result, Error>;
    abstract getStuff$( ): ObservableQueryResult<Result, Error>;

I would like to implement it this way :

    getStuff$() {
        return of(createSuccessObserverResult({ key: "value" }));
    }

But I cannot because createSuccessObserverResult has the following signature:

export declare function createSuccessObserverResult<T>(data: T): QueryObserverResult<T>;

While I would need

export declare function createSuccessObserverResult<T, Error = DefaultError>(data: T): QueryObserverResult<T, Error>;

In order to comply with my abstract method.

Proposed solution

Just expose the Error in the util @ngneat\query\lib\utils.d.ts :

export declare function createSuccessObserverResult<T, Error = DefaultError>(data: T): QueryObserverResult<T, Error>;
export declare function createPendingObserverResult<T = unknown, Error = DefaultError>(): QueryObserverResult<T, Error>;

Alternatives considered

The workaround is to force typing the return :

createSuccessObserverResult<T>(data) as QueryObserverResult<T, Error>;

Do you want to create a pull request?

No

You are welcome to create a PR

Fixed in #175