UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

129 lines (128 loc) • 7.08 kB
import { createMedusaCatalogService } from "../catalog/medusa-service.js"; import { createCatalogQueryOptionsFactory } from "../catalog/query-options.js"; import { createMedusaCategoryService } from "../categories/medusa-service.js"; import { createCategoryQueryOptionsFactory } from "../categories/query-options.js"; import { createMedusaCollectionService } from "../collections/medusa-service.js"; import { createCollectionQueryOptionsFactory } from "../collections/query-options.js"; import { createMedusaOrderService } from "../orders/medusa-service.js"; import { createOrderQueryOptionsFactory } from "../orders/query-options.js"; import { createMedusaProductAttributeService } from "../product-attributes/medusa-service.js"; import { createProductAttributeQueryOptionsFactory } from "../product-attributes/query-options.js"; import { createMedusaProductListService } from "../product-lists/medusa-service.js"; import { createProductListQueryOptionsFactory } from "../product-lists/query-options.js"; import { createMedusaProductLocationAvailabilityService } from "../product-location-availability/medusa-service.js"; import { createProductLocationAvailabilityQueryOptionsFactory } from "../product-location-availability/query-options.js"; import { createMedusaProductService } from "../products/medusa-service.js"; import { createProductQueryOptionsFactory } from "../products/query-options.js"; import { createMedusaRegionService } from "../regions/medusa-service.js"; import { createRegionQueryOptionsFactory } from "../regions/query-options.js"; import { createMedusaProductReviewService } from "../reviews/medusa-service.js"; import { createProductReviewQueryOptionsFactory } from "../reviews/query-options.js"; import { createMedusaStorefrontQueryKeys, resolveMedusaStorefrontFoundation } from "./foundation.js"; const server_read_createMedusaStorefrontQueryKeys = createMedusaStorefrontQueryKeys; function createMedusaStorefrontServerReadPreset(config) { const { namespace, cacheConfig, defaultQueryKeys } = resolveMedusaStorefrontFoundation(config); const queryKeys = { products: config.products?.queryKeys ?? defaultQueryKeys.products, productLists: config.productLists?.queryKeys ?? defaultQueryKeys.productLists, productAttributes: config.productAttributes?.queryKeys ?? defaultQueryKeys.productAttributes, productLocationAvailability: config.productLocationAvailability?.queryKeys ?? defaultQueryKeys.productLocationAvailability, orders: config.orders?.queryKeys ?? defaultQueryKeys.orders, regions: config.regions?.queryKeys ?? defaultQueryKeys.regions, categories: config.categories?.queryKeys ?? defaultQueryKeys.categories, collections: config.collections?.queryKeys ?? defaultQueryKeys.collections, catalog: config.catalog?.queryKeys ?? defaultQueryKeys.catalog, reviews: config.reviews?.queryKeys ?? defaultQueryKeys.reviews }; const services = { products: createMedusaProductService(config.sdk, config.products?.serviceConfig), productLists: config.productLists?.service ?? createMedusaProductListService(config.sdk, config.productLists?.serviceConfig), productAttributes: config.productAttributes?.service ?? createMedusaProductAttributeService(config.sdk, config.productAttributes?.serviceConfig), productLocationAvailability: config.productLocationAvailability?.service ?? createMedusaProductLocationAvailabilityService(config.sdk, config.productLocationAvailability?.serviceConfig), orders: config.orders?.service ?? createMedusaOrderService(config.sdk, config.orders?.serviceConfig), regions: createMedusaRegionService(config.sdk), categories: createMedusaCategoryService(config.sdk, config.categories?.serviceConfig), collections: createMedusaCollectionService(config.sdk, config.collections?.serviceConfig), catalog: createMedusaCatalogService(config.sdk, config.catalog?.serviceConfig), reviews: config.reviews?.service ?? createMedusaProductReviewService(config.sdk, config.reviews?.serviceConfig) }; const queries = { products: createProductQueryOptionsFactory({ service: services.products, queryKeys: queryKeys.products, queryKeyNamespace: namespace, cacheConfig, ...config.products?.hooks ?? {} }), productLists: createProductListQueryOptionsFactory({ service: services.productLists, queryKeys: queryKeys.productLists, queryKeyNamespace: namespace, cacheConfig, ...config.productLists?.hooks ?? {} }), productAttributes: createProductAttributeQueryOptionsFactory({ service: services.productAttributes, queryKeys: queryKeys.productAttributes, queryKeyNamespace: namespace, cacheConfig, ...config.productAttributes?.hooks ?? {} }), productLocationAvailability: createProductLocationAvailabilityQueryOptionsFactory({ service: services.productLocationAvailability, queryKeys: queryKeys.productLocationAvailability, queryKeyNamespace: namespace, cacheConfig }), orders: createOrderQueryOptionsFactory({ service: services.orders, queryKeys: queryKeys.orders, queryKeyNamespace: namespace, cacheConfig, ...config.orders?.hooks ?? {} }), regions: createRegionQueryOptionsFactory({ service: services.regions, queryKeys: queryKeys.regions, queryKeyNamespace: namespace, cacheConfig, ...config.regions?.hooks ?? {} }), categories: createCategoryQueryOptionsFactory({ service: services.categories, queryKeys: queryKeys.categories, queryKeyNamespace: namespace, cacheConfig, ...config.categories?.hooks ?? {} }), collections: createCollectionQueryOptionsFactory({ service: services.collections, queryKeys: queryKeys.collections, queryKeyNamespace: namespace, cacheConfig, ...config.collections?.hooks ?? {} }), catalog: createCatalogQueryOptionsFactory({ service: services.catalog, queryKeys: queryKeys.catalog, queryKeyNamespace: namespace, cacheConfig, ...config.catalog?.hooks ?? {} }), reviews: createProductReviewQueryOptionsFactory({ service: services.reviews, queryKeys: queryKeys.reviews, queryKeyNamespace: namespace, cacheConfig, ...config.reviews?.hooks ?? {} }) }; return { namespace, cacheConfig, queryKeys, services, queries }; } export { server_read_createMedusaStorefrontQueryKeys as createMedusaStorefrontQueryKeys, createMedusaStorefrontServerReadPreset };