aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/env.ts26
-rw-r--r--src/hooks.ts9
-rw-r--r--src/routes/login.ts9
-rw-r--r--src/routes/profile/update.ts10
-rw-r--r--src/routes/verify.ts10
5 files changed, 38 insertions, 26 deletions
diff --git a/src/env.ts b/src/env.ts
new file mode 100644
index 0000000..8927d76
--- /dev/null
+++ b/src/env.ts
@@ -0,0 +1,26 @@
+// Cloudflare Workers can't read process.env so we have to do it like this
+
+let skyblockStatsApiKey: string | undefined
+try {
+ skyblockStatsApiKey = process.env.SKYBLOCK_STATS_API_KEY
+} catch {
+ // @ts-ignore
+ skyblockStatsApiKey = SKYBLOCK_STATS_API_KEY
+}
+if (!skyblockStatsApiKey)
+ console.warn('SKYBLOCK_STATS_API_KEY is not set as an environment variable. This is required for logging in with Discord to work. It should be the same as the `key` environment variable in skyblock-api.')
+
+let discordClientId: string | undefined
+try {
+ discordClientId = process.env.DISCORD_CLIENT_ID
+} catch {
+ // @ts-ignore
+ discordClientId = DISCORD_CLIENT_ID
+}
+if (!discordClientId)
+ console.warn('DISCORD_CLIENT_ID is not set as an environment variable. This is required for logging in with Discord to work.')
+
+export {
+ skyblockStatsApiKey as SKYBLOCK_STATS_API_KEY,
+ discordClientId as DISCORD_CLIENT_ID,
+} \ No newline at end of file
diff --git a/src/hooks.ts b/src/hooks.ts
index 3875b88..151e572 100644
--- a/src/hooks.ts
+++ b/src/hooks.ts
@@ -1,10 +1,7 @@
import cookie from 'cookie'
import type { ExternalFetch, GetSession, Handle } from '@sveltejs/kit'
+import { SKYBLOCK_STATS_API_KEY } from './env'
-// @ts-ignore Cloudflare Workers can't read process.env.SKYBLOCK_STATS_API_KEY but it can read SKYBLOCK_STATS_API_KEY
-const skyblockStatsApiKey = process?.env?.SKYBLOCK_STATS_API_KEY || SKYBLOCK_STATS_API_KEY
-if (!skyblockStatsApiKey)
- console.warn('SKYBLOCK_STATS_API_KEY is not set as an environment variable. This is required for logging in with Skyblock Stats to work. It should be the same as the `key` environment variable in skyblock-api.')
export const handle: Handle = async ({ event, resolve }) => {
const cookies = cookie.parse(event.request.headers.get('cookie') || '')
@@ -23,9 +20,9 @@ export const getSession: GetSession = async ({ locals }) => {
}
export const externalFetch: ExternalFetch = async (request) => {
- if (skyblockStatsApiKey && request.url.startsWith('https://skyblock-api.matdoes.dev/')) {
+ if (SKYBLOCK_STATS_API_KEY && request.url.startsWith('https://skyblock-api.matdoes.dev/')) {
// add the key as a header
- request.headers.set('key', skyblockStatsApiKey)
+ request.headers.set('key', SKYBLOCK_STATS_API_KEY)
}
const response = await fetch(request)
diff --git a/src/routes/login.ts b/src/routes/login.ts
index be355d9..f343871 100644
--- a/src/routes/login.ts
+++ b/src/routes/login.ts
@@ -1,13 +1,10 @@
import type { RequestHandler } from '@sveltejs/kit'
+import { DISCORD_CLIENT_ID } from '../env'
-// @ts-ignore Cloudflare Workers can't read process.env
-const discordClientId = process?.env?.DISCORD_CLIENT_ID || DISCORD_CLIENT_ID
-if (!discordClientId)
- console.warn('DISCORD_CLIENT_ID is not set as an environment variable. This is required for logging in with Discord to work.')
export const get: RequestHandler = async ({ request }) => {
const host = request.headers.get('host')
- if (!discordClientId)
+ if (!DISCORD_CLIENT_ID)
return {
status: 500,
headers: {
@@ -30,7 +27,7 @@ export const get: RequestHandler = async ({ request }) => {
return {
status: 303,
headers: {
- location: `https://discord.com/oauth2/authorize?client_id=${discordClientId}&redirect_uri=${protocol}://${host}%2Floggedin&response_type=code&scope=identify`
+ location: `https://discord.com/oauth2/authorize?client_id=${DISCORD_CLIENT_ID}&redirect_uri=${protocol}://${host}%2Floggedin&response_type=code&scope=identify`
}
}
}
diff --git a/src/routes/profile/update.ts b/src/routes/profile/update.ts
index a05cfea..5c1e788 100644
--- a/src/routes/profile/update.ts
+++ b/src/routes/profile/update.ts
@@ -5,6 +5,7 @@ import backgroundFileNames from '../../_backgrounds.json'
import donators from '../../_donators.json'
import admins from '../../_admins.json'
import type { JSONValue } from '@sveltejs/kit/types/internal'
+import { SKYBLOCK_STATS_API_KEY } from '../../env'
const emojiRegex = /^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])$/
@@ -13,11 +14,6 @@ function isValidEmoji(emoji: string) {
return match && match[0] === emoji && match.index === 0
}
-// @ts-ignore Cloudflare Workers can't read process.env
-const skyblockStatsApiKey = process?.env?.SKYBLOCK_STATS_API_KEY || SKYBLOCK_STATS_API_KEY
-if (!skyblockStatsApiKey)
- console.warn('DISCORD_CLIENT_ID is not set as an environment variable. This is required for logging in with Discord to work.')
-
export const patch: RequestHandler = async ({ request, locals }) => {
if (locals.sid === undefined) {
@@ -26,7 +22,7 @@ export const patch: RequestHandler = async ({ request, locals }) => {
status: 401,
}
}
- if (!skyblockStatsApiKey) {
+ if (!SKYBLOCK_STATS_API_KEY) {
return {
body: { ok: false, error: 'The SKYBLOCK_STATS_API_KEY environment variable is not set.' },
status: 500,
@@ -117,7 +113,7 @@ export const patch: RequestHandler = async ({ request, locals }) => {
method: 'POST',
headers: {
'Content-Type': 'application/json',
- key: skyblockStatsApiKey
+ key: SKYBLOCK_STATS_API_KEY
},
body: JSON.stringify(updatedAccount),
}).then(r => r.json())
diff --git a/src/routes/verify.ts b/src/routes/verify.ts
index cc1140c..c0d2f94 100644
--- a/src/routes/verify.ts
+++ b/src/routes/verify.ts
@@ -1,11 +1,7 @@
import { API_URL } from '$lib/api'
import type { AccountSchema, CleanUser, SessionSchema } from '$lib/APITypes'
import type { RequestHandler } from '@sveltejs/kit'
-
-// @ts-ignore Cloudflare Workers can't read process.env
-const skyblockStatsApiKey = process?.env?.SKYBLOCK_STATS_API_KEY || SKYBLOCK_STATS_API_KEY
-if (!skyblockStatsApiKey)
- console.warn('DISCORD_CLIENT_ID is not set as an environment variable. This is required for logging in with Discord to work.')
+import { SKYBLOCK_STATS_API_KEY } from '../env'
function redirect(status: number, location: string) {
@@ -18,7 +14,7 @@ function redirect(status: number, location: string) {
}
export const post: RequestHandler = async ({ request, locals }) => {
- if (!skyblockStatsApiKey) {
+ if (!SKYBLOCK_STATS_API_KEY) {
return redirect(303, `/verify?error=NO_KEY`)
}
if (locals.sid === undefined) {
@@ -69,7 +65,7 @@ export const post: RequestHandler = async ({ request, locals }) => {
method: 'POST',
headers: {
'Content-Type': 'application/json',
- key: skyblockStatsApiKey
+ key: SKYBLOCK_STATS_API_KEY
},
body: JSON.stringify(updatedAccount),
}).then(r => r.json())