Skip to content

Commit a99483b

Browse files
docs: add TSDocs for 5ef7953 (#15069)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
1 parent 5ef7953 commit a99483b

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

packages/core/core-flows/src/product/helpers/normalize-for-export.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,21 @@ import {
66
} from "@medusajs/framework/types"
77
import { MedusaError, upperCaseFirst } from "@medusajs/framework/utils"
88

9-
// We want to have one row per variant, so we need to normalize the data
9+
/**
10+
* Normalizes product data for export, creating one row per product variant.
11+
* Products without variants will have a single row, while products with variants
12+
* will have one row per variant containing both product and variant data.
13+
*
14+
* @param product - The array of products to normalize for export.
15+
* @param regions - Object containing an array of region data used for price formatting.
16+
* @returns An array of normalized objects ready for export, with flattened product and variant data.
17+
*
18+
* @example
19+
* const normalizedData = normalizeForExport(
20+
* [productA, productB],
21+
* { regions: [region1, region2] }
22+
* )
23+
*/
1024
export const normalizeForExport = (
1125
product: HttpTypes.AdminProduct[],
1226
{ regions }: { regions: RegionTypes.RegionDTO[] }

packages/medusa/src/api/admin/products/query-config.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { defaultAdminProductVariantFields } from "../product-variants/query-config"
22

3+
/**
4+
* Product-related entity names for query configuration.
5+
*/
36
export enum Entities {
47
product = "product",
58
product_option = "product_option",
@@ -8,37 +11,58 @@ export enum Entities {
811
price = "price",
912
}
1013

14+
/**
15+
* Default fields for admin product variants, excluding the product relation.
16+
*/
1117
export const defaultAdminProductsVariantFields =
1218
defaultAdminProductVariantFields.filter((field) => field !== "*product")
1319

20+
/**
21+
* Query configuration for retrieving a single product variant.
22+
*/
1423
export const retrieveVariantConfig = {
1524
defaults: defaultAdminProductsVariantFields,
1625
isList: false,
1726
entity: Entities.product_variant,
1827
}
1928

29+
/**
30+
* Query configuration for listing product variants.
31+
*/
2032
export const listVariantConfig = {
2133
...retrieveVariantConfig,
2234
defaultLimit: 50,
2335
isList: true,
2436
entity: Entities.product_variant,
2537
}
2638

39+
/**
40+
* Default fields for admin product options.
41+
*/
2742
export const defaultAdminProductsOptionFields = ["id", "title"]
2843

44+
/**
45+
* Query configuration for retrieving a single product option.
46+
*/
2947
export const retrieveOptionConfig = {
3048
defaults: defaultAdminProductsOptionFields,
3149
isList: false,
3250
entity: Entities.product_option,
3351
}
3452

53+
/**
54+
* Query configuration for listing product options.
55+
*/
3556
export const listOptionConfig = {
3657
...retrieveOptionConfig,
3758
defaultLimit: 50,
3859
isList: true,
3960
entity: Entities.product_option,
4061
}
4162

63+
/**
64+
* Default fields for admin products, including relations and nested fields.
65+
*/
4266
export const defaultAdminProductFields = [
4367
"id",
4468
"title",
@@ -79,12 +103,18 @@ export const defaultAdminProductFields = [
79103
"*sales_channels",
80104
]
81105

106+
/**
107+
* Query configuration for retrieving a single product.
108+
*/
82109
export const retrieveProductQueryConfig = {
83110
defaults: defaultAdminProductFields,
84111
isList: false,
85112
entity: Entities.product,
86113
}
87114

115+
/**
116+
* Query configuration for listing products.
117+
*/
88118
export const listProductQueryConfig = {
89119
...retrieveProductQueryConfig,
90120
defaultLimit: 50,

0 commit comments

Comments
 (0)