UNPKG

@rokmohar/medusa-plugin-meilisearch

Version:
63 lines 6.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformProduct = void 0; const types_1 = require("../types"); const transformProduct = (product, options) => { const { i18n, language, fallbackLanguage, includeAllTranslations, translatableFields: customTranslatableFields, translations = {}, } = options || {}; if (!i18n) { return { ...product }; } const defaultLang = i18n.defaultLanguage; const currentLang = language || defaultLang; // Determine translatable fields let translatableFields = (customTranslatableFields || i18n.translatableFields || []).map(types_1.normalizeFieldConfig); if (i18n.strategy === 'field-suffix') { const result = { ...product }; // If no fields specified and using field-suffix strategy, // auto-detect string fields as translatable if (!translatableFields.length) { translatableFields = Object.entries(product) .filter(([, value]) => typeof value === 'string') .map(([key]) => ({ source: key })); } // For each translatable field, create language-specific fields translatableFields.forEach((fieldConfig) => { const sourceField = fieldConfig.source; const targetField = fieldConfig.target || sourceField; // Get translations for this field const fieldTranslations = translations[sourceField] || []; if (includeAllTranslations) { // Include all translations with language suffixes fieldTranslations.forEach((translation) => { result[`${targetField}_${translation.language_code}`] = translation.value; }); } else { // Only include current language translation const translatedValue = (0, types_1.getTranslation)(fieldTranslations, currentLang, fallbackLanguage || defaultLang); if (translatedValue) { result[`${targetField}_${currentLang}`] = translatedValue; // Keep the default language value in the original field if (currentLang === defaultLang) { result[targetField] = translatedValue; } } } }); return result; } // For separate-index strategy, return the product with translations for current language const result = { ...product }; translatableFields.forEach((fieldConfig) => { const sourceField = fieldConfig.source; const targetField = fieldConfig.target || sourceField; const fieldTranslations = translations[targetField] || []; const translatedValue = (0, types_1.getTranslation)(fieldTranslations, currentLang, fallbackLanguage || defaultLang); if (translatedValue) { result[targetField] = translatedValue; } }); return result; }; exports.transformProduct = transformProduct; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWlsaXNlYXJjaC91dGlscy90cmFuc2Zvcm1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FPaUI7QUFRVixNQUFNLGdCQUFnQixHQUE4QixDQUFDLE9BQW1CLEVBQUUsT0FBMEIsRUFBRSxFQUFFO0lBQzdHLE1BQU0sRUFDSixJQUFJLEVBQ0osUUFBUSxFQUNSLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQzVDLFlBQVksR0FBRyxFQUFFLEdBQ2xCLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUVqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQTZCLENBQUE7SUFDbEQsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDeEMsTUFBTSxXQUFXLEdBQUcsUUFBUSxJQUFJLFdBQVcsQ0FBQTtJQUUzQyxnQ0FBZ0M7SUFDaEMsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsNEJBQW9CLENBQUMsQ0FBQTtJQUU5RyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssY0FBYyxFQUFFLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQTRCLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUV0RCwwREFBMEQ7UUFDMUQsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixrQkFBa0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztpQkFDekMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7aUJBQ2hELEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3RDLENBQUM7UUFFRCwrREFBK0Q7UUFDL0Qsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDekMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQTtZQUN0QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLFdBQVcsQ0FBQTtZQUVyRCxrQ0FBa0M7WUFDbEMsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFBO1lBRXpELElBQUksc0JBQXNCLEVBQUUsQ0FBQztnQkFDM0Isa0RBQWtEO2dCQUNsRCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDeEMsTUFBTSxDQUFDLEdBQUcsV0FBVyxJQUFJLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUE7Z0JBQzNFLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDRDQUE0QztnQkFDNUMsTUFBTSxlQUFlLEdBQUcsSUFBQSxzQkFBYyxFQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsSUFBSSxXQUFXLENBQUMsQ0FBQTtnQkFDdkcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxDQUFDLEdBQUcsV0FBVyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFBO29CQUV6RCx3REFBd0Q7b0JBQ3hELElBQUksV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUNoQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsZUFBZSxDQUFBO29CQUN2QyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRCx5RkFBeUY7SUFDekYsTUFBTSxNQUFNLEdBQTRCLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQTtJQUV0RCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUN6QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFBO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFBO1FBRXJELE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN6RCxNQUFNLGVBQWUsR0FBRyxJQUFBLHNCQUFjLEVBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxDQUFBO1FBRXZHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGVBQWUsQ0FBQTtRQUN2QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQTdFWSxRQUFBLGdCQUFnQixvQkE2RTVCIn0=