export const useDirectusImage = () => { const config = useRuntimeConfig(); const baseUrl = config.public.directus.url; const token = config.public.directus.token; type DirectusAssetParams = { width?: number; height?: number; fit?: 'cover' | 'contain' | 'inside' | 'outside'; quality?: number; format?: 'webp' | 'jpg' | 'png' | 'auto'; } & Record; const getImageUrl = (id?: string | null, options?: DirectusAssetParams) => { if (!id) return ''; const queryToken = token ? 'access_token=' + token : ''; const queryOptions = options ? new URLSearchParams( Object.fromEntries( Object.entries(options).map(([key, value]) => [key, String(value)]) ) ).toString : ''; const query = queryToken || queryOptions ? `?${[queryToken, queryOptions].filter(Boolean).join('&')}` : ''; return `${baseUrl}/assets/${id}${query}`; }; return { getImageUrl }; };