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>, query?: null | string | {}): Observable<never>
  • Parameters

    • id: Partial<ItemT>
    • Optional query: null | string | {}

    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 }>
  • The underlying fetch can throw a TypeError on network/CORS errors. If the server responds with a readable error, an HttpError will be thrown, attempting to parse the server's error response into a JSON object if possible. (The assumption is that it'll be of the type given as the generics ErrorT, but nothing technically enforces this). If the error response cannot be parsed as JSON, it'll be reported in the {@link HttpError#errorString} instead-

    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>, query?: null | string | {}): Observable<ItemT>
  • Parameters

    • id: Partial<ItemT>
    • Optional query: null | string | {}

    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>, query?: null | string | {}): Observable<ItemT>
  • Parameters

    • item: Partial<ItemT>
    • Optional query: null | string | {}

    Returns Observable<ItemT>

put

  • put(item: Partial<ItemT>, query?: null | string | {}): Observable<ItemT>
  • Parameters

    • item: Partial<ItemT>
    • Optional query: null | string | {}

    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>