mono/packages/media/cpp/ref/images/presets.ts
2026-04-12 22:38:43 +02:00

27 lines
848 B
TypeScript

import { logger } from './logger.js';
export interface ImagePreset {
width?: number;
height?: number;
format?: string;
fit?: 'cover' | 'contain' | 'fill' | 'inside' | 'outside';
}
const DEFAULTS: Record<string, ImagePreset> = {
'desktop:thumb': { width: 150, height: 150, format: 'avif', fit: 'cover' },
'desktop:medium': { width: 800, format: 'avif', fit: 'inside' },
'desktop:large': { width: 1920, format: 'avif', fit: 'inside' },
};
export const getPresets = (): Record<string, ImagePreset> => {
let envPresets = {};
if (process.env.IMAGE_PRESETS) {
try {
envPresets = JSON.parse(process.env.IMAGE_PRESETS);
} catch (e) {
logger.warn('Failed to parse IMAGE_PRESETS from env');
}
}
return { ...DEFAULTS, ...envPresets };
};