get all paths for SSG

This commit is contained in:
Dom Sip 2022-04-11 17:30:43 +01:00
parent 181e9520c1
commit cc424e58b3
2 changed files with 39 additions and 7 deletions

View File

@ -1,14 +1,46 @@
// import data from '../../data.json'
import { Product } from '@vercel/commerce/types/product'
import { OperationContext } from '@vercel/commerce/api/operations'
import { normalizeSearchProducts } from '../utils/normalise-product';
import { SFCCConfig } from '..'
export type GetAllProductPathsResult = {
products: Array<{ path: string }>
}
export default function getAllProductPathsOperation() {
function getAllProductPaths(): Promise<GetAllProductPathsResult> {
return Promise.resolve({
products: [], // TODO: SSG for products
})
export default function getAllProductPathsOperation({ commerce }: OperationContext<any>) {
async function getAllProductPaths({
query,
config,
variables,
}: {
query?: string
config?: SFCCConfig
variables?: any
} = {}): Promise<GetAllProductPathsResult> {
// TODO: support locale
const { sdk, locale } = commerce.getConfig(config) as SFCCConfig
const searchClient = await sdk.getSearchClient()
// use SDK search API for initial products same as getAllProductsOperation
const searchResults = await searchClient.productSearch({
parameters: { q: "dress", limit: variables?.first },
});
let products = [] as Product[];
if (searchResults.total) {
products = normalizeSearchProducts(searchResults.hits)
} else {
// TODO: handle this better?
console.log("No results for search");
}
return {
products: products?.map(({ slug }: Product) => ({
path: `/${slug}`,
})),
}
}
return getAllProductPaths

View File

@ -1,7 +1,7 @@
import { Product } from '@vercel/commerce/types/product'
import { GetAllProductsOperation } from '@vercel/commerce/types/product'
import type { OperationContext } from '@vercel/commerce/api/operations'
import type { SFCCConfig, Provider } from '../index'
import type { SFCCConfig } from '../index'
import { normalizeSearchProducts } from '../utils/normalise-product';
export default function getAllProductsOperation({