mirror of
https://github.com/vercel/commerce.git
synced 2025-07-22 20:26:49 +00:00
Merge branch 'master' of github.com:vercel/commerce into outgrow-reaction-commerce-provider
Signed-off-by: Loan Laux <loan@outgrow.io>
This commit is contained in:
38
framework/saleor/api/operations/get-all-product-paths.ts
Normal file
38
framework/saleor/api/operations/get-all-product-paths.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import type { OperationContext } from '@commerce/api/operations'
|
||||
import { GetAllProductPathsQuery, GetAllProductPathsQueryVariables, ProductCountableEdge } from '../../schema'
|
||||
import type { ShopifyConfig, Provider, SaleorConfig } from '..'
|
||||
|
||||
import { getAllProductsPathsQuery } from '../../utils/queries'
|
||||
import fetchAllProducts from '../utils/fetch-all-products'
|
||||
|
||||
export type GetAllProductPathsResult = {
|
||||
products: Array<{ path: string }>
|
||||
}
|
||||
|
||||
export default function getAllProductPathsOperation({ commerce }: OperationContext<Provider>) {
|
||||
async function getAllProductPaths({
|
||||
query,
|
||||
config,
|
||||
variables,
|
||||
}: {
|
||||
query?: string
|
||||
config?: SaleorConfig
|
||||
variables?: any
|
||||
} = {}): Promise<GetAllProductPathsResult> {
|
||||
config = commerce.getConfig(config)
|
||||
|
||||
const products = await fetchAllProducts({
|
||||
config,
|
||||
query: getAllProductsPathsQuery,
|
||||
variables,
|
||||
})
|
||||
|
||||
return {
|
||||
products: products?.map(({ node: { slug } }: ProductCountableEdge) => ({
|
||||
path: `/${slug}`,
|
||||
})),
|
||||
}
|
||||
}
|
||||
|
||||
return getAllProductPaths
|
||||
}
|
Reference in New Issue
Block a user