UNPKG

@zohodesk/client_build_tool

Version:

A CLI tool to build web applications and client libraries

87 lines (79 loc) 2.35 kB
"use strict"; 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; }