Class: SearchNativeFetchStrategy<T, P>
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:69
The SearchNativeFetchStrategy is used to fetch search results for a given search query Uses the native WordPress search endpoint.
Note that custom post types and custom taxonomies should be defined in headless.config.js
This strategy supports extracting endpoint params from url E.g:
/page/2/maps to{ page: 2 }/searched-term/page/2maps to{ search: 'searched-term', page: 2 }
See
getParamsFromURL to learn about url param mapping
Extends
AbstractFetchStrategy<T[],P>
Type Parameters
T
T extends PostSearchEntity | TermSearchEntity = PostSearchEntity | TermSearchEntity
P
P extends SearchParams = SearchParams
Constructors
Constructor
new SearchNativeFetchStrategy<
T,P>(baseURL?,defaultParams?):SearchNativeFetchStrategy<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
SearchNativeFetchStrategy<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/SearchNativeFetchStrategy.ts:75
optimizeYoastPayload
optimizeYoastPayload:
boolean=false
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:77
path
path:
string=''
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:73
Methods
buildEndpointURL()
buildEndpointURL(
params):string
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:110
Builds the endpoint url for the search endpoint
Parameters
params
Partial<P>
The params for the request
Returns
string
Overrides
AbstractFetchStrategy.buildEndpointURL
fetcher()
fetcher(
url,params,options):Promise<{isCached?:boolean;pageInfo:PageInfo;queriedObject:QueriedObject;result:T[]; }>
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:129
The fetcher function is overridden to disable throwing if not found
If a search request returns not found we do not want to redirect to a 404 page, instead the user should be informed that no posts were found
Parameters
url
string
The url to parse
params
Partial<P>
The params to build the endpoint with
options
Partial<FetchOptions> = {}
FetchOptions
Returns
Promise<{ isCached?: boolean; pageInfo: PageInfo; queriedObject: QueriedObject; result: T[]; }>
Overrides
filterData()
filterData(
data,filterOptions?):FetchResponse<T[]>
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<T[]>
The data to filter
filterOptions?
FilterDataOptions<T[]>
Filter options
Returns
FetchResponse<T[]>
The filtered data
Inherited from
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
url
url:
string
Inherited from
AbstractFetchStrategy.getCacheKey
getDefaultEndpoint()
getDefaultEndpoint():
string
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:79
A method that must be implemented by concrete implementations which returns the default endpoint for the strategy
Returns
string
Overrides
AbstractFetchStrategy.getDefaultEndpoint
getDefaultParams()
getDefaultParams():
Partial<P>
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:83
Returns
Partial<P>
Overrides
AbstractFetchStrategy.getDefaultParams
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
Inherited from
AbstractFetchStrategy.getEndpoint
getParamsFromURL()
getParamsFromURL(
path,params):Partial<P>
Defined in: packages/core/src/data/strategies/SearchNativeFetchStrategy.ts:93
This strategy automatically extracts the search term and and pagination params from the URL
Parameters
path
string
The URL path to extract params from
params
Partial<P> = {}
The params passed to the strategy
Returns
Partial<P>
Overrides
AbstractFetchStrategy.getParamsFromURL
getPreviewAuthHeader()
getPreviewAuthHeader(
options):string
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:273
Parameters
options
Partial<FetchOptions> = {}
Returns
string
Inherited from
AbstractFetchStrategy.getPreviewAuthHeader
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"
Inherited from
AbstractFetchStrategy.getPreviewHeaderName
getQueriedObject()
getQueriedObject(
response,params):object
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:400
Parameters
response
FetchResponse<T[]>
params
Partial<Params>
Returns
object
Inherited from
AbstractFetchStrategy.getQueriedObject
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
Inherited from
AbstractFetchStrategy.isMainQuery
normalizeForCache()
normalizeForCache(
data,params):NormalizedDataForCache<T[],P>
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:452
Normalize data for cache.
Parameters
data
FetchResponse<T[]>
The fetch response data
params
Partial<Params>
The request params
Returns
NormalizedDataForCache<T[], P>
Inherited from
AbstractFetchStrategy.normalizeForCache
prepareResponse()
prepareResponse(
response,params):FetchResponse<T[]>
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:259
Parameters
response
FetchResponse<T[]>
params
Partial<Params>
Returns
FetchResponse<T[]>
Inherited from
AbstractFetchStrategy.prepareResponse
setBaseURL()
setBaseURL(
url):void
Defined in: packages/core/src/data/strategies/AbstractFetchStrategy.ts:190
Parameters
url
undefined | string
Returns
void
Inherited from
AbstractFetchStrategy.setBaseURL
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