query icon indicating copy to clipboard operation
query copied to clipboard

createSuccessObserverResult should also take a generic error

Open Xample opened this issue 1 year ago • 2 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

Xample avatar Feb 27 '24 09:02 Xample

You are welcome to create a PR

netanel-utila avatar Feb 27 '24 10:02 netanel-utila

Fixed in https://github.com/ngneat/query/pull/175

NetanelBasal avatar May 10 '24 14:05 NetanelBasal