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
SinglePostFetchStrategyPostsArchiveFetchStrategySearchNativeFetchStrategyAppSettingsStrategyTaxonomyTermsStrategyVerifyTokenFetchStrategyPostOrPostsFetchStrategy
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
The data to filter
filterOptions?
Filter options
Returns
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()
abstractgetDefaultEndpoint():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()
abstractgetParamsFromURL(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
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
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
params
Partial<Params>
Returns
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