UNPKG

@rest-api/react-models

Version:

[![npm version](https://img.shields.io/npm/v/@rest-api/react-models)](https://www.npmjs.com/package/@rest-api/react-models) [![codecov](https://codecov.io/gh/hector7/rest-api-react-models/branch/master/graph/badge.svg)](https://codecov.io/gh/hector7/rest-

61 lines (60 loc) 2.21 kB
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"][]; }; }