summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts/get-static-image-url.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/scripts/get-static-image-url.ts')
-rw-r--r--packages/frontend/src/scripts/get-static-image-url.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/frontend/src/scripts/get-static-image-url.ts b/packages/frontend/src/scripts/get-static-image-url.ts
new file mode 100644
index 0000000000..cbd1761983
--- /dev/null
+++ b/packages/frontend/src/scripts/get-static-image-url.ts
@@ -0,0 +1,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',
+ })}`;
+}