import { APIError } from '../errors/index.js';
export const getExternalFile = async ({ data, req })=>{
    const baseUrl = req.origin || `${req.protocol}://${req.host}`;
    const { filename, url } = data;
    if (typeof url === 'string') {
        const fileURL = `${baseUrl}${url}`;
        const res = await fetch(fileURL, {
            credentials: 'include',
            headers: {
                ...req.headers
            },
            method: 'GET'
        });
        if (!res.ok) throw new APIError(`Failed to fetch file from ${fileURL}`, res.status);
        const data = await res.arrayBuffer();
        return {
            name: filename,
            data: Buffer.from(data),
            mimetype: res.headers.get('content-type') || undefined,
            size: Number(res.headers.get('content-length')) || 0
        };
    }
    throw new APIError('Invalid file url', 400);
};

//# sourceMappingURL=getExternalFile.js.map