summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts/get-static-image-url.ts
blob: cbd1761983cc97c1d6b77780462f30a20f150638 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { url as instanceUrl } from '@/config';
import * as url from '@/scripts/url';

export function getStaticImageUrl(baseUrl: string): string {
	const u = new URL(baseUrl);
	if (u.href.startsWith(`${instanceUrl}/proxy/`)) {
		// もう既にproxyっぽそうだったらsearchParams付けるだけ
		u.searchParams.set('static', '1');
		return u.href;
	}

	// 拡張子がないとキャッシュしてくれないCDNがあるのでダミーの名前を指定する
	const dummy = `${encodeURIComponent(`${u.host}${u.pathname}`)}.webp`;

	return `${instanceUrl}/proxy/${dummy}?${url.query({
		url: u.href,
		static: '1',
	})}`;
}