"use server" import { sdk } from "@lib/config" import { HttpTypes } from "@medusajs/types" import { getCacheOptions } from "./cookies" export const retrieveCollection = async (id: string) => { const next = { ...(await getCacheOptions("collections")), } return sdk.client .fetch<{ collection: HttpTypes.StoreCollection }>( `/store/collections/${id}`, { next, cache: "force-cache", } ) .then(({ collection }) => collection) } export const listCollections = async ( queryParams: Record = {} ): Promise<{ collections: HttpTypes.StoreCollection[]; count: number }> => { const next = { ...(await getCacheOptions("collections")), } queryParams.limit = queryParams.limit || "100" queryParams.offset = queryParams.offset || "0" return sdk.client .fetch<{ collections: HttpTypes.StoreCollection[]; count: number }>( "/store/collections", { query: queryParams, next, cache: "force-cache", } ) .then(({ collections }) => ({ collections, count: collections.length })) } export const getCollectionByHandle = async ( handle: string ): Promise => { const next = { ...(await getCacheOptions("collections")), } return sdk.client .fetch(`/store/collections`, { query: { handle, fields: "*products" }, next, cache: "force-cache", }) .then(({ collections }) => collections[0]) }