diff --git a/packages/base/src/AssetRegistry.js b/packages/base/src/AssetRegistry.js index 3c38bee41bec..307c966967d7 100644 --- a/packages/base/src/AssetRegistry.js +++ b/packages/base/src/AssetRegistry.js @@ -1,10 +1,12 @@ import { registerI18nBundle } from "./asset-registries/i18n.js"; import { registerCldr, _registerMappingFunction as registerCldrMappingFunction } from "./asset-registries/LocaleData.js"; import { registerThemeProperties } from "./asset-registries/Themes.js"; +import { registerAssetPathMappingFunction } from "./util/EffectiveAssetPath.js"; export { registerCldr, registerCldrMappingFunction, registerThemeProperties, registerI18nBundle, + registerAssetPathMappingFunction, }; diff --git a/packages/base/src/asset-registries/Icons.js b/packages/base/src/asset-registries/Icons.js index f408ec2eef0f..741aa60d4e28 100644 --- a/packages/base/src/asset-registries/Icons.js +++ b/packages/base/src/asset-registries/Icons.js @@ -1,6 +1,6 @@ import { registerIcon, registerCollectionPromise } from "../SVGIconRegistry.js"; import { fetchJsonOnce } from "../util/FetchHelper.js"; -import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js"; +import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js"; const registerIconBundle = async (collectionName, bundleData) => { let resolveFn; diff --git a/packages/base/src/asset-registries/LocaleData.js b/packages/base/src/asset-registries/LocaleData.js index 1d645177495a..efa246da9bc2 100644 --- a/packages/base/src/asset-registries/LocaleData.js +++ b/packages/base/src/asset-registries/LocaleData.js @@ -1,7 +1,7 @@ import { fetchJsonOnce } from "../util/FetchHelper.js"; import { getFeature } from "../FeaturesRegistry.js"; import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js"; -import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js"; +import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js"; const resources = new Map(); const cldrData = {}; diff --git a/packages/base/src/asset-registries/Themes.js b/packages/base/src/asset-registries/Themes.js index 01fac64ec9e3..81754ab3049f 100644 --- a/packages/base/src/asset-registries/Themes.js +++ b/packages/base/src/asset-registries/Themes.js @@ -1,7 +1,7 @@ import { fetchJsonOnce, fetchTextOnce } from "../util/FetchHelper.js"; import { DEFAULT_THEME } from "../generated/AssetParameters.js"; import getFileExtension from "../util/getFileExtension.js"; -import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js"; +import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js"; const themeURLs = new Map(); const themeStyles = new Map(); diff --git a/packages/base/src/asset-registries/i18n.js b/packages/base/src/asset-registries/i18n.js index 8cf8374c946d..aa2d7c6d05df 100644 --- a/packages/base/src/asset-registries/i18n.js +++ b/packages/base/src/asset-registries/i18n.js @@ -5,7 +5,7 @@ import { fetchTextOnce } from "../util/FetchHelper.js"; import normalizeLocale from "../locale/normalizeLocale.js"; import nextFallbackLocale from "../locale/nextFallbackLocale.js"; import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js"; -import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js"; +import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js"; import { getUseDefaultLanguage } from "../config/Language.js"; const bundleData = new Map(); diff --git a/packages/base/src/util/EffectiveAssetPath.js b/packages/base/src/util/EffectiveAssetPath.js new file mode 100644 index 000000000000..fa8bdfd39c31 --- /dev/null +++ b/packages/base/src/util/EffectiveAssetPath.js @@ -0,0 +1,27 @@ +import { getAssetsPath } from "../config/AssetsPath.js"; + +let assetPathMappingFn = assetName => assetName; + +const getEffectiveAssetPath = assetName => { + if (typeof assetName !== "string") { + return assetName; + } + + assetName = assetPathMappingFn(assetName); + + const assetsPathPrefix = getAssetsPath(); + if (assetsPathPrefix) { + return `${assetsPathPrefix}${assetName}`; + } + + return assetName; +}; + +const registerAssetPathMappingFunction = mappingFn => { + assetPathMappingFn = mappingFn; +}; + +export { + getEffectiveAssetPath, + registerAssetPathMappingFunction, +}; diff --git a/packages/base/src/util/getEffectiveAssetPath.js b/packages/base/src/util/getEffectiveAssetPath.js deleted file mode 100644 index 1c39cf65b5fe..000000000000 --- a/packages/base/src/util/getEffectiveAssetPath.js +++ /dev/null @@ -1,12 +0,0 @@ -import { getAssetsPath } from "../config/AssetsPath.js"; - -const getEffectiveAssetPath = asset => { - const assetsPath = getAssetsPath(); - if (assetsPath && typeof asset === "string") { - return `${assetsPath}${asset}`; - } - - return asset; -}; - -export default getEffectiveAssetPath;