UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

40 lines (39 loc) • 1.46 kB
import { getErrorStatus } from "../shared/medusa-errors.js"; function createMedusaOrderService(sdk, config) { const { defaultFields, defaultListFields, defaultDetailFields, defaultOrder, returnNullOnNotFound = false } = config ?? {}; const listFields = defaultListFields ?? defaultFields; const detailFields = defaultDetailFields ?? defaultFields; return { async getOrders (params, signal) { const response = await sdk.client.fetch("/store/orders", { query: { fields: listFields, order: defaultOrder, limit: params.limit, offset: params.offset }, signal }); return { orders: response.orders ?? [], count: response.count }; }, async getOrder (params, signal) { if (!params.id) return null; try { const response = await sdk.client.fetch(`/store/orders/${params.id}`, { query: { fields: detailFields }, signal }); return response.order ?? null; } catch (error) { if (returnNullOnNotFound && 404 === getErrorStatus(error)) return null; throw error; } } }; } export { createMedusaOrderService };