Class: SinglePostFetchStrategy<T, P>
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:80
The SinglePostFetchStrategy is used to fetch a single post entity from any post type.
Note that custom post types should be defined in headless.config.js
This strategy supports extracting endpoint params from url E.g:
/post-namemaps to{ slug: 'post-name'}/2021/10/20/post-namemaps to{ year: 2021, month: 10, day: 20, slug: 'post-name }/2021/maps to{ year: 2021, slug: 'post-name' }
See
getParamsFromURL to learn about url param mapping
Extends
AbstractFetchStrategy<T[],P,T>
Type Parameters
T
T extends PostEntity = PostEntity
P
P extends PostParams = PostParams
Constructors
Constructor
new SinglePostFetchStrategy<
T,P>(baseURL?,defaultParams?):SinglePostFetchStrategy<T,P>
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:169
The strategy constructor
Parameters
baseURL?
string
The base URL of the API
defaultParams?
Partial<P>
(optional) list of default params
Returns
SinglePostFetchStrategy<T, P>
Inherited from
AbstractFetchStrategy.constructor
Properties
baseURL
baseURL:
string=''
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:155
The base URL where the API is located
Inherited from
defaultParams
defaultParams:
Partial<Params> ={}
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:145
The Default Params
Inherited from
AbstractFetchStrategy.defaultParams
endpoint
endpoint:
string=''
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:150
Holds the current endpoint for the strategy
Inherited from
AbstractFetchStrategy.endpoint
locale
locale:
string=''
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:90
optimizeYoastPayload
optimizeYoastPayload:
boolean=false
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:94
path
path:
string=''
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:88
postType
postType:
string='post'
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:84
revision?
optionalrevision:PostEntity
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:86
shouldCheckCurrentPathAgainstPostLink
shouldCheckCurrentPathAgainstPostLink:
boolean=true
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:92
Methods
buildEndpointURL()
buildEndpointURL(
params):string
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:132
Handlers post types, revisions and fetching by id
Parameters
params
P
The params to build the endpoint url
Returns
string
Overrides
AbstractFetchStrategy.buildEndpointURL
fetcher()
fetcher(
url,params,options):Promise<FetchResponse<T>>
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:295
Handles fetching by multiple post types, authToken and revisions
Parameters
url
string
The url to fetch
params
P
The params to build the endpoint url
options
Partial<FetchOptions> = {}
FetchOptions
Returns
Promise<FetchResponse<T>>
Overrides
filterData()
filterData(
data,filterOptions?):any
Defined in: packages/core/src/data/strategies/SinglePostFetchStrategy.ts:366
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
any
The filtered data
Overrides
AbstractFetchStrategy.filterData
get()
get(
params):Promise<FetchResponse<T>>
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<T>>
Inherited from
getAuthHeader()
getAuthHeader(
options):string
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:282
Parameters
options
Partial<FetchOptions> = {}
Returns
string
Inherited from
AbstractFetchStrategy.getAuthHeader
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<P> &object
Type declaration
sourceUrl
sourceUrl:
string