@vymalo/medusa-meilisearch
Version:
🔍 Powerful, lightning-fast search integration for MedusaJS using Meilisearch
39 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformProduct = void 0;
const utils_1 = require("@medusajs/utils");
const prefix = 'variant';
const transformProduct = (product) => {
const transformedProduct = { ...product };
const initialObj = utils_1.variantKeys.reduce((obj, key) => {
obj[`${prefix}_${key}`] = [];
return obj;
}, {});
initialObj[`${prefix}_options_value`] = [];
const flattenedVariantFields = (product.variants || []).reduce((obj, variant) => {
for (const k of utils_1.variantKeys) {
if (k === 'options' && variant[k]) {
const values = variant[k].map((option) => option.value);
obj[`${prefix}_options_value`] =
obj[`${prefix}_options_value`].concat(values);
continue;
}
const variantVal = variant[k];
variantVal && obj[`${prefix}_${k}`].push(variantVal);
}
return obj;
}, initialObj);
transformedProduct.type_value = product.type?.value;
transformedProduct.collection_title = product.collection?.title;
transformedProduct.collection_handle = product.collection?.handle;
transformedProduct.tags_value = product.tags
? product.tags.map((t) => t.value)
: [];
transformedProduct.categories = (product?.categories || []).map((c) => c.name);
return {
...transformedProduct,
...flattenedVariantFields,
};
};
exports.transformProduct = transformProduct;
//# sourceMappingURL=fn.js.map