UNPKG

@rokmohar/medusa-plugin-meilisearch

Version:
129 lines 12.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformCategory = 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]) => { return typeof value === 'string'; }) .map(([key]) => { return { 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; const transformCategory = (category, options) => { const { i18n, language, fallbackLanguage, includeAllTranslations, translatableFields: customTranslatableFields, translations = {}, } = options ?? {}; if (!i18n) { return { ...category }; } 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 = { ...category }; // If no fields specified and using field-suffix strategy, // auto-detect string fields as translatable if (!translatableFields.length) { translatableFields = Object.entries(category) .filter(([, value]) => { return typeof value === 'string'; }) .map(([key]) => { return { 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 category with translations for current language const result = { ...category }; 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.transformCategory = transformCategory; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWlsaXNlYXJjaC91dGlscy90cmFuc2Zvcm1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvQ0FRaUI7QUFRVixNQUFNLGdCQUFnQixHQUE4QixDQUN6RCxPQUFnQyxFQUNoQyxPQUEwQixFQUMxQixFQUFFO0lBQ0YsTUFBTSxFQUNKLElBQUksRUFDSixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFBRSx3QkFBd0IsRUFDNUMsWUFBWSxHQUFHLEVBQUUsR0FDbEIsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFBO0lBRWpCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQ3hDLE1BQU0sV0FBVyxHQUFHLFFBQVEsSUFBSSxXQUFXLENBQUE7SUFFM0MsZ0NBQWdDO0lBQ2hDLElBQUksa0JBQWtCLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLDRCQUFvQixDQUFDLENBQUE7SUFFOUcsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUE0QixFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUE7UUFFdEQsMERBQTBEO1FBQzFELDRDQUE0QztRQUM1QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0Isa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7aUJBQ3pDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUNw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