UNPKG

@mmuscat/angular-resource

Version:
40 lines (39 loc) 1.52 kB
import { Type } from "@angular/core"; import { ValueAccessor } from "@mmuscat/angular-composition-api"; import { Observable, OperatorFunction } from "rxjs"; export interface QueryOptions<T> { initialValue: T; refetch?: Observable<any>[]; } export interface Query<T, U> { (config: QueryOptions<T>): ValueAccessor<Resource<T>, U>; (params: Observable<U> | Observable<U>[], config: QueryOptions<T>): ValueAccessor<Resource<T>, U>; } interface QueryStatic { new <T, U>(factory: () => (params: U) => Observable<T>): Type<Query<T, U>>; } export declare class Resource<T> { value: T; error: unknown; pending: boolean; done: boolean; static createPending(value: any): Resource<any>; static createNext(value: any): Resource<any>; static createError(value: any, error: any): Resource<any>; static createComplete(value: any): Resource<any>; constructor(value: T, error: unknown, pending: boolean, done: boolean); } export interface QueryConfig { operator?: () => OperatorFunction<any, any>; } export declare const Query: QueryStatic; export interface MutationConfig { operator?: () => OperatorFunction<Observable<any>, any>; } export interface MutationStatic { new <T, U>(factory: () => (params: U) => Observable<T>, config?: MutationConfig): Type<ValueAccessor<Resource<T>, U>>; } export declare const Mutation: MutationStatic; export declare function cancel(resource: any): void; export declare function invalidate(query: any, params?: any): void; export {};