strapi-plugin-media-prefix
Version:
Prepend media urls (images, files, audios, ) with your public url/media prefix on both Admin Panel and API's just in response without changing the relative path in database
33 lines (28 loc) • 827 B
text/typescript
import { Event } from '@strapi/database/dist/lifecycles';
let MEDIA_PREFIX = 'http://localhost:1337';
if (process.env.MEDIA_PREFIX) {
MEDIA_PREFIX = process.env.MEDIA_PREFIX;
} else {
MEDIA_PREFIX = strapi.config.get('server.url', 'http://localhost:1337');
}
MEDIA_PREFIX += '/uploads/';
export const replaceUploadsWithMediaPrefix = (obj: Event) => {
if (Array.isArray(obj)) {
for (let i = 0; i < obj.length; i++) {
obj[i] = replaceUploadsWithMediaPrefix(obj[i]);
}
} else if (typeof obj === 'object' && obj !== null) {
for (let key in obj) {
if (
typeof obj[key] === 'string' &&
obj[key].startsWith('/uploads') &&
key === 'url'
) {
obj[key] = obj[key].replace(/\/uploads\//g, MEDIA_PREFIX);
} else {
obj[key] = replaceUploadsWithMediaPrefix(obj[key]);
}
}
}
return obj;
};