🙋 test getStaticProps with revalidate

This commit is contained in:
lytrankieio123
2021-10-04 11:17:30 +07:00
parent 21b0200205
commit 6b7b8e4ad1
6 changed files with 160 additions and 9 deletions

View File

@@ -1,15 +1,16 @@
import type { APIProvider, CommerceAPIConfig } from '@commerce/api'
import type { CommerceAPIConfig } from '@commerce/api'
import { CommerceAPI, getCommerceApi as commerceApi } from '@commerce/api'
import fetchGraphqlApi from './utils/fetch-graphql-api'
import login from './operations/login'
import getAllFacets from './operations/get-all-facets'
import getAllPages from './operations/get-all-pages'
import getPage from './operations/get-page'
import getSiteInfo from './operations/get-site-info'
import getCustomerWishlist from './operations/get-customer-wishlist'
import getAllProductPaths from './operations/get-all-product-paths'
import getAllProducts from './operations/get-all-products'
import getCustomerWishlist from './operations/get-customer-wishlist'
import getPage from './operations/get-page'
import getProduct from './operations/get-product'
import getSiteInfo from './operations/get-site-info'
import login from './operations/login'
import fetchGraphqlApi from './utils/fetch-graphql-api'
export interface VendureConfig extends CommerceAPIConfig {}
@@ -40,6 +41,7 @@ const operations = {
getAllProductPaths,
getAllProducts,
getProduct,
getAllFacets,
}
export const provider = { config, operations }

View File

@@ -0,0 +1,46 @@
import { Facet } from '@commerce/types/facet'
import { Provider, VendureConfig } from '../'
import { GetAllFacetsQuery } from '../../schema'
import { normalizeSearchResult } from '../../utils/normalize'
import { getAllFacetsQuery } from '../../utils/queries/get-all-facets-query'
import { OperationContext } from '@commerce/api/operations'
export type FacetVariables = { first?: number }
export default function getAllFacetsOperation({
commerce,
}: OperationContext<Provider>) {
async function getAllFacets(opts?: {
variables?: FacetVariables
config?: Partial<VendureConfig>
preview?: boolean
}): Promise<{ facets: Facet[] }>
async function getAllFacets({
query = getAllFacetsQuery,
variables: { ...vars } = {},
config: cfg,
}: {
query?: string
variables?: FacetVariables
config?: Partial<VendureConfig>
preview?: boolean
} = {}): Promise<{ facets: Facet[] | any[] }> {
const config = commerce.getConfig(cfg)
const variables = {
input: {
take: vars.first,
groupByFacet: true,
},
}
const { data } = await config.fetch<GetAllFacetsQuery>(query, {
variables,
})
return {
facets: data.search.items.map((item) => normalizeSearchResult(item)),
}
}
return getAllFacets
}