Skip to content

Commit 201280b

Browse files
committed
Restored original behavior in UrlUtils and relativeToTransformReady
- Use assignOptions instead of Object.assign in UrlUtils constructor to preserve undefined handling (filters out undefined values from user options, preserving defaults) - Restore overrideOptions pattern in relativeToTransformReady to ensure secure: false is always forced regardless of user input - Add trailing slash after replacement string in relativeToTransformReady to match original JavaScript behavior
1 parent 683e18c commit 201280b

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

packages/url-utils/src/UrlUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ export default class UrlUtils {
108108
staticMediaUrlPrefix: 'content/media'
109109
};
110110

111-
this._config = Object.assign({}, defaultOptions, options) as UrlUtilsConfig;
111+
this._config = assignOptions({}, defaultOptions as unknown as Record<string, unknown>, options as unknown as Record<string, unknown>) as UrlUtilsConfig;
112112

113113
const assetBaseUrls = options.assetBaseUrls || {};
114114
this._assetBaseUrls = {

packages/url-utils/src/utils/relative-to-transform-ready.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ const relativeToTransformReady = function (
3030

3131
const defaultOptions: RelativeToTransformReadyOptionsInput = {
3232
replacementStr: '__GHOST_URL__',
33-
staticImageUrlPrefix: 'content/images',
33+
staticImageUrlPrefix: 'content/images'
34+
};
35+
const overrideOptions: RelativeToTransformReadyOptionsInput = {
3436
secure: false
3537
};
36-
const options = Object.assign({}, defaultOptions, finalOptions);
38+
const options = Object.assign({}, defaultOptions, finalOptions, overrideOptions);
3739

3840
// convert to absolute
3941
const absoluteUrl = relativeToAbsolute(url, root, finalItemPath, options);
@@ -53,7 +55,7 @@ const relativeToTransformReady = function (
5355

5456
// replace root with replacement string
5557
const transformedUrl = absoluteUrl
56-
.replace(normalizedRoot, `${options.replacementStr}`)
58+
.replace(normalizedRoot, `${options.replacementStr}/`) // always have trailing slash after magic string
5759
.replace(/([^:])\/\//g, '$1/');
5860

5961
return transformedUrl;

0 commit comments

Comments
 (0)