@mmuscat/angular-resource
Version:
Data fetching library for Angular Composition API
40 lines (39 loc) • 1.52 kB
TypeScript
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 {};