@rest-api/react-models
Version:
[](https://www.npmjs.com/package/@rest-api/react-models) [](https://codecov.io/gh/hector7/rest-
61 lines (60 loc) • 2.21 kB
TypeScript
import BasicIdRestModel from './BasicIdRestModel';
import { Schema, StringOrNumberKeys } from "../../Schema";
import { RestModel, UrlCallbackParam } from '../index';
import { HttpError } from '../../../../';
export declare type UseGetResult<Item, MetaData> = {
items: NonNullable<Item>[];
initialized: boolean;
loading: boolean;
invalidated: boolean;
error: HttpError | null;
metadata: MetaData | null;
reload: () => void;
};
export declare type UseGetPopulatedResult<PartialItem, PopulatedItem, MetaData> = {
invalidated: boolean;
error: HttpError | null;
initialized: boolean;
loading: boolean;
metadata: MetaData | null;
} & ({
populated: true;
items: PopulatedItem[];
} | {
populated: false;
items: PartialItem[];
});
export default class BasicSearchRestModel<S extends Schema<any> = any, IdKey extends StringOrNumberKeys<S['RealType']> & StringOrNumberKeys<S['PopulatedType']> & string = any, GetItem = any, MetaData = any> extends RestModel<{}, S, IdKey, GetItem, MetaData> {
constructor(idModel: BasicIdRestModel<S, IdKey>, url: UrlCallbackParam<{}>);
useInvalidate(queryString?: string | URLSearchParams): () => void;
useFetchIfNeeded(queryString?: string | URLSearchParams): void;
useGet(queryString?: string | URLSearchParams): {
reload: () => void;
error: HttpError | null;
initialized: boolean;
invalidated: boolean;
loading: boolean;
items: NonNullable<S["RealType"]>[];
metadata: MetaData | null;
};
useFetchPopulatedIfNeeded(queryString?: string | URLSearchParams): void;
useGetPopulated(queryString?: string | URLSearchParams): {
reload: () => void;
invalidated: boolean;
error: HttpError | null;
initialized: boolean;
loading: boolean;
metadata: MetaData | null;
populated: true;
items: S["FullPopulatedType"][];
} | {
reload: () => void;
invalidated: boolean;
error: HttpError | null;
initialized: boolean;
loading: boolean;
metadata: MetaData | null;
populated: false;
items: S["PopulatedType"][];
};
}