UNPKG

@ices/locale-webpack-plugin

Version:
77 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // const utils_1 = require("./utils"); /** * 合并本地化数据 * @param dataSet 本地化数据集 * @param locale 区域语言代码 * @param data 待合并的数据 */ function mergeLocaleData(dataSet, locale, data) { const [lang] = (0, utils_1.normalizeLocale)(locale); if (!lang) { return; } let localeData = dataSet[lang]; if (!localeData) { dataSet[lang] = localeData = {}; } for (const entry of Object.entries(data)) { const [key, val] = entry; if (val !== null && typeof val === 'object') { localeData[key] = ''; } else { localeData[key] = val; } } } /** * 合并本地化消息对象 * @param dataSet 本地化数据集 * @param locale 区域语言代码 * @param data 待合并的消息对象 */ function mergeLocaleObject(dataSet, locale, data) { const localData = (data || {}); mergeLocaleData(dataSet, locale, localData); } /** * 进行合并。 * @param dataSet 本地化内容数据集。 * @param data 待合并的已解析的数据。 * @param locale 当locale取文件名时,需要传这个值。 */ function mergeData(dataSet, data, locale) { if (data === null || typeof data !== 'object') { return; } const localeData = {}; let expectMergeFile = false; for (const entry of Object.entries(data)) { const [key, val] = entry; if (val === null || typeof val !== 'object') { localeData[key] = val; expectMergeFile = true; continue; } mergeLocaleObject(dataSet, key, val); } if (locale && expectMergeFile) { mergeLocaleData(dataSet, locale, localeData); } } /** * 合并本地化消息数据。 * @param dataList 已经解析的数据列表。 */ function merge(dataList) { const dataSet = {}; for (const { data, locale } of dataList) { mergeData(dataSet, data, locale); } return dataSet; } exports.default = merge; //# sourceMappingURL=merge.js.map