Skip to content
This repository was archived by the owner on Sep 9, 2024. It is now read-only.

Commit edc1665

Browse files
committed
fix: revert media folder changes
1 parent e9dca82 commit edc1665

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

packages/core/src/lib/util/__tests__/media.util.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ describe('media.util', () => {
245245
.fields[3] as FileOrImageField;
246246

247247
expect(selectMediaFolder(mockConfig, mockCollection, mockBaseEntry, mockImageField)).toBe(
248-
'/path/to/some/other/media/folder',
248+
'path/to/some/other/media/folder',
249249
);
250250
});
251251

@@ -273,7 +273,7 @@ describe('media.util', () => {
273273

274274
expect(
275275
selectMediaFolder(mockConfig, mockCollection, mockBaseEntry, mockImageField),
276-
).toBe('/path/to/some/other/media/i-am-a-title');
276+
).toBe('path/to/some/other/media/i-am-a-title');
277277
});
278278

279279
it('should substitute slug', () => {
@@ -309,7 +309,7 @@ describe('media.util', () => {
309309
});
310310

311311
expect(selectMediaFolder(mockConfig, mockCollection, mockEntry, mockImageField)).toBe(
312-
'/path/to/some/other/media/i-am-a-title-fish',
312+
'path/to/some/other/media/i-am-a-title-fish',
313313
);
314314
});
315315

@@ -345,7 +345,7 @@ describe('media.util', () => {
345345
});
346346

347347
expect(selectMediaFolder(mockConfig, mockCollection, mockEntry, mockImageField)).toBe(
348-
'/path/to/media/folder/i-am-a-title-fish',
348+
'path/to/media/folder/i-am-a-title-fish',
349349
);
350350
});
351351

@@ -383,7 +383,7 @@ describe('media.util', () => {
383383
});
384384

385385
expect(selectMediaFolder(mockConfig, mockCollection, mockEntry, mockImageField)).toBe(
386-
'/path/to/some/other/media/',
386+
'path/to/some/other/media',
387387
);
388388
});
389389
});

packages/core/src/lib/util/media.util.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import trim from 'lodash/trim';
12
import { dirname } from 'path';
23

34
import { basename, isAbsolutePath } from '.';
@@ -245,7 +246,7 @@ export function selectMediaFolder<EF extends BaseField>(
245246
} else if (hasCustomFolder('media_folder', collection, entryMap?.slug, field)) {
246247
const folder = evaluateFolder('media_folder', config, collection!, entryMap, field);
247248
if (folder.startsWith('/')) {
248-
mediaFolder = folder;
249+
mediaFolder = folder.replace(/^[/]*/g, '');
249250
} else {
250251
const entryPath = entryMap?.path;
251252
mediaFolder = entryPath
@@ -258,7 +259,7 @@ export function selectMediaFolder<EF extends BaseField>(
258259
}
259260
}
260261

261-
return mediaFolder;
262+
return trim(mediaFolder, '/');
262263
}
263264

264265
export function selectMediaFilePublicPath<EF extends BaseField>(
@@ -296,7 +297,7 @@ export function selectMediaFilePublicPath<EF extends BaseField>(
296297
const mediaFolder = customMediaFolder
297298
? evaluateFolder('media_folder', config, collection!, entryMap, field)
298299
: config['media_folder'];
299-
selectedPublicFolder = currentFolder.replace(mediaFolder!, publicFolder);
300+
selectedPublicFolder = trim(currentFolder, '/').replace(trim(mediaFolder!, '/'), publicFolder);
300301
}
301302

302303
const finalPublicPath = joinUrlPath(selectedPublicFolder, basename(mediaPath));
@@ -321,14 +322,17 @@ export function selectMediaFilePath(
321322

322323
let mediaFolder = selectMediaFolder(config, collection, entryMap, field, currentFolder);
323324
if (!currentFolder) {
324-
let publicFolder = config['public_folder'] ?? mediaFolder;
325-
let mediaPathDir = dirname(mediaPath);
325+
let publicFolder = trim(config['public_folder'] ?? mediaFolder, '/');
326+
let mediaPathDir = trim(dirname(mediaPath), '/');
326327
if (mediaPathDir === '.') {
327328
mediaPathDir = '';
328329
}
329330

330331
if (hasCustomFolder('public_folder', collection, entryMap?.slug, field)) {
331-
publicFolder = evaluateFolder('public_folder', config, collection!, entryMap, field);
332+
publicFolder = trim(
333+
evaluateFolder('public_folder', config, collection!, entryMap, field),
334+
'/',
335+
);
332336
}
333337

334338
if (mediaPathDir.startsWith(publicFolder) && mediaPathDir != mediaFolder) {

0 commit comments

Comments
 (0)