Options
All
  • Public
  • Public/Protected
  • All
Menu

Class RestFetcher<ItemT, ErrorT>

Type parameters

  • ItemT

  • ErrorT

Hierarchy

Index

Constructors

constructor

  • new RestFetcher<ItemT, ErrorT>(config: { GETRetryMillis?: number; errorJsonConverter?: JsonConverter<ErrorT>; itemUrlTemplate: string | Observable<string>; jsonConverter?: JsonConverter<ItemT>; listUrlTemplate: string | Observable<string>; requestRewriters?: RequestRewriters }): RestFetcher<ItemT, ErrorT>
  • Type parameters

    • ItemT

    • ErrorT

    Parameters

    • config: { GETRetryMillis?: number; errorJsonConverter?: JsonConverter<ErrorT>; itemUrlTemplate: string | Observable<string>; jsonConverter?: JsonConverter<ItemT>; listUrlTemplate: string | Observable<string>; requestRewriters?: RequestRewriters }
      • Optional GETRetryMillis?: number
      • Optional errorJsonConverter?: JsonConverter<ErrorT>
      • itemUrlTemplate: string | Observable<string>
      • Optional jsonConverter?: JsonConverter<ItemT>
      • listUrlTemplate: string | Observable<string>
      • Optional requestRewriters?: RequestRewriters

    Returns RestFetcher<ItemT, ErrorT>

Properties

Readonly GETRetryMillis

GETRetryMillis: number

Readonly error

error: BehaviorSubject<undefined | HttpError<ErrorT>> = ...

Readonly errorJsonConverter

errorJsonConverter: JsonConverter<ErrorT>

Readonly inflightReads

inflightReads: BehaviorSubject<number> = ...

Readonly inflightWrites

inflightWrites: BehaviorSubject<number> = ...

Readonly itemUrlTemplate

itemUrlTemplate: Observable<string>

Readonly jsonConverter

jsonConverter: JsonConverter<ItemT>

Readonly listUrlTemplate

listUrlTemplate: Observable<string>

Static Readonly inflightReads

inflightReads: BehaviorSubject<number> = ...

Static Readonly inflightWrites

inflightWrites: BehaviorSubject<number> = ...

Methods

delete

  • delete(id: Partial<ItemT>): Observable<never>
  • Parameters

    • id: Partial<ItemT>

    Returns Observable<never>

fetch

  • fetch(url: string, requestInit?: RequestInit): Observable<Response>
  • fetch(request: SimpleRequest): Observable<Response>

fetchJson

  • fetchJson(url: string, typedRequestInit?: Omit<RequestInit, "body"> & { body?: string | Partial<ItemT> }): Observable<{ item: ItemT; response: Response }>
  • Parameters

    • url: string
    • Optional typedRequestInit: Omit<RequestInit, "body"> & { body?: string | Partial<ItemT> }

    Returns Observable<{ item: ItemT; response: Response }>

fetchJsonList

  • fetchJsonList(url: string, typedRequestInit?: Omit<RequestInit, "body"> & { body?: string | Partial<ItemT>[] }): Observable<{ items: ItemT[]; response: Response }>
  • Parameters

    • url: string
    • Optional typedRequestInit: Omit<RequestInit, "body"> & { body?: string | Partial<ItemT>[] }

    Returns Observable<{ items: ItemT[]; response: Response }>

get

  • get(id: Partial<ItemT>): Observable<ItemT>
  • Parameters

    • id: Partial<ItemT>

    Returns Observable<ItemT>

list

  • list(pathParams?: null | Record<string, any>, query?: null | string | {}): Observable<ItemT[]>
  • Parameters

    • Optional pathParams: null | Record<string, any>
    • Optional query: null | string | {}

    Returns Observable<ItemT[]>

post

  • post(item: Partial<ItemT>): Observable<ItemT>
  • Parameters

    • item: Partial<ItemT>

    Returns Observable<ItemT>

put

  • put(item: Partial<ItemT>): Observable<ItemT>
  • Parameters

    • item: Partial<ItemT>

    Returns Observable<ItemT>

setRequestRewriter

  • A RequestRewriter must be set (even if just the do-nothing ANONYMOUS rewriter) before a server can be contacted. (The Fetcher cannot make assumptions and default to an anonymous access attempt, since we do not want to spam requests to a server which requires login before the login rewriter is ready).

    Parameters

    Returns RestFetcher<ItemT, ErrorT>