Add adaptive media variants for weak networks
فشلت بعض الفحوصات
Deploy To Ghaymah / deploy (push) Has been cancelled

هذا الالتزام موجود في:
2026-05-19 18:33:42 +03:00
الأصل 87adaae04b
التزام fdc40192f7
11 ملفات معدلة مع 858 إضافات و46 حذوفات

عرض الملف

@@ -1,4 +1,9 @@
import { resolveManagedFileUrl, resolveManagedFileUrls } from './public-url.util';
import {
resolveManagedFileUrl,
resolveManagedFileUrlRecord,
resolveManagedFileUrlRecords,
resolveManagedFileUrls,
} from './public-url.util';
describe('public url util', () => {
const originalPublicBaseUrl = process.env.PUBLIC_BASE_URL;
@@ -26,4 +31,34 @@ describe('public url util', () => {
'http://192.168.1.12:4000/uploads/b.png',
]);
});
it('resolves url objects used for media variants', () => {
expect(
resolveManagedFileUrlRecord({
lowUrl: '/uploads/posts/images/image-1/low.webp',
mediumUrl: '/uploads/posts/images/image-1/medium.webp',
externalUrl: 'https://cdn.example.com/image.webp',
}),
).toEqual({
lowUrl: 'http://192.168.1.12:4000/uploads/posts/images/image-1/low.webp',
mediumUrl: 'http://192.168.1.12:4000/uploads/posts/images/image-1/medium.webp',
externalUrl: 'https://cdn.example.com/image.webp',
});
});
it('resolves arrays of media variant objects', () => {
expect(
resolveManagedFileUrlRecords([
{
lowUrl: '/uploads/posts/images/image-1/low.webp',
mediumUrl: '/uploads/posts/images/image-1/medium.webp',
},
]),
).toEqual([
{
lowUrl: 'http://192.168.1.12:4000/uploads/posts/images/image-1/low.webp',
mediumUrl: 'http://192.168.1.12:4000/uploads/posts/images/image-1/medium.webp',
},
]);
});
});

عرض الملف

@@ -25,3 +25,21 @@ export const resolveManagedFileUrls = (fileUrls: unknown): unknown => {
return fileUrls.map((fileUrl) => resolveManagedFileUrl(fileUrl));
};
export const resolveManagedFileUrlRecord = (value: unknown): unknown => {
if (!value || typeof value !== 'object' || Array.isArray(value)) {
return value;
}
return Object.fromEntries(
Object.entries(value).map(([key, entryValue]) => [key, resolveManagedFileUrl(entryValue)]),
);
};
export const resolveManagedFileUrlRecords = (value: unknown): unknown => {
if (!Array.isArray(value)) {
return value;
}
return value.map((entry) => resolveManagedFileUrlRecord(entry));
};