Skip to main content

Class: abstract AbstractFetchStrategy<E, Params, R>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:140

Abstract class that lays out a strategy for fetching data

All Fetch Strategies should implement this class and it allows to share logic for fetching data both on the front-end and on the back-end.

Extended by​

Type Parameters​

E​

E

The type of entity that is fetched (e.g PostEntity, TermEntity etc)

Params​

Params extends EndpointParams

The type of the params that are passed to the endpoint

R​

R = E

Constructors​

Constructor​

new AbstractFetchStrategy<E, Params, R>(baseURL?, defaultParams?): AbstractFetchStrategy<E, Params, R>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:169

The strategy constructor

Parameters​

baseURL?​

string

The base URL of the API

defaultParams?​

Partial<Params>

(optional) list of default params

Returns​

AbstractFetchStrategy<E, Params, R>

Properties​

baseURL​

baseURL: string = ''

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:155

The base URL where the API is located


defaultParams​

defaultParams: Partial<Params> = {}

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:145

The Default Params


endpoint​

endpoint: string = ''

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:150

Holds the current endpoint for the strategy

Methods​

buildEndpointURL()​

buildEndpointURL(params): string

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:246

Builds the final endpoint URL based on the passed parameters

Parameters​

params​

Partial<Params>

The params to add to the request

Returns​

string

The endpoint URL.


fetcher()​

fetcher(url, params, options): Promise<FetchResponse<R>>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:316

The default fetcher function

The default fetcher function handles authentication headers and errors from the API.

A custom strategy can override this function to run additional logic before or after the fetch call

Parameters​

url​

string

The URL to fetch

params​

Partial<Params>

The request params

options​

Partial<FetchOptions> = {}

The fetcher options

Returns​

Promise<FetchResponse<R>>


filterData()​

filterData(data, filterOptions?): FetchResponse<R>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:412

Filters the data returned from the API by excluding fields that are not needed in order to reduce payload size.

Parameters​

data​

FetchResponse<R>

The data to filter

filterOptions?​

FilterDataOptions<R>

Filter options

Returns​

FetchResponse<R>

The filtered data


get()​

get(params): Promise<FetchResponse<R>>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:477

This is a simple wrapper to quickly fetch data from the API given a set of params

Usage​

import { PostsArchiveFetchStrategy } from '@headstartwp/core';

new PostsArchiveFetchStrategy('http://my-wp-url.com').get({perPage: 10});

Parameters​

params​

Partial<Params> = {}

The endpoint params

Returns​

Promise<FetchResponse<R>>


getAuthHeader()​

getAuthHeader(options): string

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:282

Parameters​

options​

Partial<FetchOptions> = {}

Returns​

string


getCacheKey()​

getCacheKey(params): object

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:442

Returns the cache key with both the endpoint and the sourceUrl to distinguish between multiple sites

Parameters​

params​

Partial<Params>

The request params

Returns​

object

The cache key object

args​

args: Partial<Params> & object

Type declaration​
sourceUrl​

sourceUrl: string

url​

url: string


getDefaultEndpoint()​

abstract getDefaultEndpoint(): string

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:161

A method that must be implemented by concrete implementations which returns the default endpoint for the strategy

Returns​

string


getDefaultParams()​

getDefaultParams(): Partial<Params>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:208

Returns​

Partial<Params>


getEndpoint()​

getEndpoint(): string

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:200

Returns the endpoint of the strategy. If no endpoint has been set at runtime, returns the default endpoint

Returns​

string

The current endpoint for the strategy


getParamsFromURL()​

abstract getParamsFromURL(path, nonUrlParams): Partial<Params>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:223

Returns the supported params from the URL if present.

These params are passed to buildEndpointURL. If the strategy does not support mapping url params to endpoint params, it should return an empty object.

Parameters​

path​

string

The Path name

nonUrlParams​

Partial<Params>

The non-url params

Returns​

Partial<Params>

params extracted from the URL


getPreviewAuthHeader()​

getPreviewAuthHeader(options): string

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:273

Parameters​

options​

Partial<FetchOptions> = {}

Returns​

string


getPreviewHeaderName()​

getPreviewHeaderName(options): "X-HeadstartWP-Authorization" | "Authorization"

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:267

Parameters​

options​

Partial<FetchOptions> = {}

Returns​

"X-HeadstartWP-Authorization" | "Authorization"


getQueriedObject()​

getQueriedObject(response, params): object

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:400

Parameters​

response​

FetchResponse<E>

params​

Partial<Params>

Returns​

object


isMainQuery()​

isMainQuery(path, nonUrlParams): boolean

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:231

Checks if this is the main query for a page

Parameters​

path​

string

The page name

nonUrlParams​

Partial<Params>

The non-url params

Returns​

boolean


normalizeForCache()​

normalizeForCache(data, params): NormalizedDataForCache<R, Params>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:452

Normalize data for cache.

Parameters​

data​

FetchResponse<R>

The fetch response data

params​

Partial<Params>

The request params

Returns​

NormalizedDataForCache<R, Params>


prepareResponse()​

prepareResponse(response, params): FetchResponse<R>

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:259

Parameters​

response​

FetchResponse<E>

params​

Partial<Params>

Returns​

FetchResponse<R>


setBaseURL()​

setBaseURL(url): void

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:190

Parameters​

url​

undefined | string

Returns​

void


setEndpoint()​

setEndpoint(endpoint): void

Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:186

The strategy can switch endpoints at runtime if needed.

E.g: The actual endpoint for a post depends on its post_type

Parameters​

endpoint​

string

The endpoint to fetch

Returns​

void