@zohodesk/client_build_tool
Version:
A CLI tool to build web applications and client libraries
87 lines (79 loc) • 2.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getI18nAssetForChunkAsStr = getI18nAssetForChunkAsStr;
exports.getI18nAssetsForChunkAsArrayStr = getI18nAssetsForChunkAsArrayStr;
exports.getInitialI18nAssetsArrayStr = getInitialI18nAssetsArrayStr;
var _I18nFilesEmitPlugin = require("./I18nSplitPlugin/I18nFilesEmitPlugin");
/* eslint-disable no-use-before-define */
// for SMap relate changes
// CdnChangePlugin
// SourceMapHookPlugin
function getInitialI18nAssetsArrayStr({
entryPoint,
compilation,
i18nStore,
chunkSplitEnable,
i18nFileNameTemplate
}) {
return getI18nAssetsForChunkAsArrayStr({
chunks: entryPoint.chunks,
compilation,
i18nStore,
chunkSplitEnable,
i18nFileNameTemplate
});
}
function getI18nAssetsForChunkAsArrayStr({
chunks,
compilation,
i18nStore,
chunkSplitEnable,
i18nFileNameTemplate
}) {
if (!chunkSplitEnable) {
// NOTE: we have used lang variable inside
// NOTE: below code for full i18n for now it is not implemented
// if (!chunkSplitEnable) {
// let i18nAssets = {};
// const i18nFiles = Object.keys(compilation.assets).filter(
// assert => assert.indexOf(`i18n${path.sep}`) !== -1
// );
// // hook for i18n url contains i18n/ may cause problem
// i18nAssets = i18nFiles.reduce((res, i18nFilePath) => {
// const fileName = i18nFilePath.replace(`i18n${path.sep}`, '');
// const splittedFileName = fileName.split('.');
// res[splittedFileName[0]] = i18nFilePath;
// return res;
// }, {});
// return `[${JSON.stringify(i18nAssets)}[lang]]`;
// }
return '[]';
}
const i18nAssetsUrlTemplates = [...chunks].map(chunk => getI18nAssetForChunkAsStr({
chunk,
compilation,
i18nStore,
i18nFileNameTemplate
})).filter(Boolean);
return `${JSON.stringify(i18nAssetsUrlTemplates)}`;
}
function getI18nAssetForChunkAsStr({
chunk,
compilation,
i18nStore,
i18nFileNameTemplate
}) {
if (!i18nStore.isChunkHasI18n(chunk)) {
return '';
}
const i18nAssetsUrlTemplates = _I18nFilesEmitPlugin.I18nFilesEmitPlugin.createFilenameWithHash({
compilation,
fileNameTemplate: i18nFileNameTemplate,
chunk,
locale: '@locale@',
contentHash: 'contentHash'
}).filename;
return i18nAssetsUrlTemplates;
}