Skip to content

Commit ff245fa

Browse files
authored
feat(framework): Support custom dynamic asset paths (#2305)
1 parent efe8b40 commit ff245fa

File tree

7 files changed

+33
-16
lines changed

7 files changed

+33
-16
lines changed

packages/base/src/AssetRegistry.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import { registerI18nBundle } from "./asset-registries/i18n.js";
22
import { registerCldr, _registerMappingFunction as registerCldrMappingFunction } from "./asset-registries/LocaleData.js";
33
import { registerThemeProperties } from "./asset-registries/Themes.js";
4+
import { registerAssetPathMappingFunction } from "./util/EffectiveAssetPath.js";
45

56
export {
67
registerCldr,
78
registerCldrMappingFunction,
89
registerThemeProperties,
910
registerI18nBundle,
11+
registerAssetPathMappingFunction,
1012
};

packages/base/src/asset-registries/Icons.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { registerIcon, registerCollectionPromise } from "../SVGIconRegistry.js";
22
import { fetchJsonOnce } from "../util/FetchHelper.js";
3-
import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js";
3+
import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js";
44

55
const registerIconBundle = async (collectionName, bundleData) => {
66
let resolveFn;

packages/base/src/asset-registries/LocaleData.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { fetchJsonOnce } from "../util/FetchHelper.js";
22
import { getFeature } from "../FeaturesRegistry.js";
33
import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js";
4-
import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js";
4+
import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js";
55

66
const resources = new Map();
77
const cldrData = {};

packages/base/src/asset-registries/Themes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { fetchJsonOnce, fetchTextOnce } from "../util/FetchHelper.js";
22
import { DEFAULT_THEME } from "../generated/AssetParameters.js";
33
import getFileExtension from "../util/getFileExtension.js";
4-
import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js";
4+
import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js";
55

66
const themeURLs = new Map();
77
const themeStyles = new Map();

packages/base/src/asset-registries/i18n.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { fetchTextOnce } from "../util/FetchHelper.js";
55
import normalizeLocale from "../locale/normalizeLocale.js";
66
import nextFallbackLocale from "../locale/nextFallbackLocale.js";
77
import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
8-
import getEffectiveAssetPath from "../util/getEffectiveAssetPath.js";
8+
import { getEffectiveAssetPath } from "../util/EffectiveAssetPath.js";
99
import { getUseDefaultLanguage } from "../config/Language.js";
1010

1111
const bundleData = new Map();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { getAssetsPath } from "../config/AssetsPath.js";
2+
3+
let assetPathMappingFn = assetName => assetName;
4+
5+
const getEffectiveAssetPath = assetName => {
6+
if (typeof assetName !== "string") {
7+
return assetName;
8+
}
9+
10+
assetName = assetPathMappingFn(assetName);
11+
12+
const assetsPathPrefix = getAssetsPath();
13+
if (assetsPathPrefix) {
14+
return `${assetsPathPrefix}${assetName}`;
15+
}
16+
17+
return assetName;
18+
};
19+
20+
const registerAssetPathMappingFunction = mappingFn => {
21+
assetPathMappingFn = mappingFn;
22+
};
23+
24+
export {
25+
getEffectiveAssetPath,
26+
registerAssetPathMappingFunction,
27+
};

packages/base/src/util/getEffectiveAssetPath.js

-12
This file was deleted.

0 commit comments

Comments
 (0)