Add adaptive media variants for weak networks
فشلت بعض الفحوصات
Deploy To Ghaymah / deploy (push) Has been cancelled
فشلت بعض الفحوصات
Deploy To Ghaymah / deploy (push) Has been cancelled
هذا الالتزام موجود في:
@@ -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));
|
||||
};
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم