diff options
| author | Fuwn <[email protected]> | 2024-01-22 10:03:16 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-22 10:03:16 -0800 |
| commit | 1df50d1713cfc63ae06961c27c84009facabe620 (patch) | |
| tree | ef0c3717398f9f6c509ba965f363570d3c8c7520 /src/lib/Utility | |
| parent | feat(badges): clear no badge warning (diff) | |
| download | due.moe-1df50d1713cfc63ae06961c27c84009facabe620.tar.xz due.moe-1df50d1713cfc63ae06961c27c84009facabe620.zip | |
feat(badges): image cdn
Diffstat (limited to 'src/lib/Utility')
| -rw-r--r-- | src/lib/Utility/cdn.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/Utility/cdn.ts b/src/lib/Utility/cdn.ts new file mode 100644 index 00000000..bfb5a558 --- /dev/null +++ b/src/lib/Utility/cdn.ts @@ -0,0 +1,26 @@ +import { env } from '$env/dynamic/public'; + +export const cdn = (urlString: string | undefined, disable = false) => { + if (!urlString || !['http', 'https'].some((protocol) => urlString.startsWith(protocol))) + return urlString; + + const url = new URL(urlString); + + return env.PUBLIC_ANILIST_REDIRECT_URI?.includes('localhost') || + disable || + [ + 'api.telegram.org', + 'telegra.ph', + 't.me', + 'discord.com', + 'cdn.discordapp.com', + 'media.discordapp.net', + 'images-ext-1.discordapp.net', + 'images-ext-2.discordapp.net', + 'media.trace.moe' + ].includes(url.hostname) + ? urlString + : `https://cdn.due.moe?url=${encodeURIComponent(urlString)}`; +}; + +export default cdn; |