@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
40 lines (39 loc) • 1.46 kB
JavaScript
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 };