aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-03-18 17:38:09 -0500
committermat <github@matdoes.dev>2022-03-18 17:38:09 -0500
commitf8484b2f83911f90fc093202d8f37c80e1d86835 (patch)
tree4e1108542086dd7c19e472a5904140f914f1e6c4
parentf802ea11fc4d4623fad9e99ce39110c37cde619b (diff)
downloadskyblock-stats-f8484b2f83911f90fc093202d8f37c80e1d86835.tar.gz
skyblock-stats-f8484b2f83911f90fc093202d8f37c80e1d86835.tar.bz2
skyblock-stats-f8484b2f83911f90fc093202d8f37c80e1d86835.zip
Cloudflare is dumb and can't read process.env
-rw-r--r--.eslintrc.cjs2
-rw-r--r--src/hooks.ts9
-rw-r--r--src/routes/login.ts9
-rw-r--r--src/routes/logout.ts6
-rw-r--r--src/routes/profile/update.ts10
-rw-r--r--src/routes/verify.ts10
-rw-r--r--svelte.config.js4
7 files changed, 31 insertions, 19 deletions
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 699ccc4..e680809 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -21,5 +21,7 @@ module.exports = {
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/ban-types': 'off',
+ '@typescript-eslint/ban-ts-comment': 'off',
+
},
} \ No newline at end of file
diff --git a/src/hooks.ts b/src/hooks.ts
index 64c1b9d..6715fc3 100644
--- a/src/hooks.ts
+++ b/src/hooks.ts
@@ -1,8 +1,9 @@
import cookie from 'cookie'
import type { ExternalFetch, GetSession, Handle } from '@sveltejs/kit'
-const SKYBLOCK_STATS_API_KEY = process.env.SKYBLOCK_STATS_API_KEY
-if (!SKYBLOCK_STATS_API_KEY)
+// @ts-ignore Cloudflare Workers can't read process.env.SKYBLOCK_STATS_API_KEY but it can read SKYBLOCK_STATS_API_KEY
+const skyblockStatsApiKey = SKYBLOCK_STATS_API_KEY || process.env.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 }) => {
@@ -22,9 +23,9 @@ export const getSession: GetSession = async ({ locals }) => {
}
export const externalFetch: ExternalFetch = async (request) => {
- if (SKYBLOCK_STATS_API_KEY && request.url.startsWith('https://skyblock-api.matdoes.dev/')) {
+ if (skyblockStatsApiKey && request.url.startsWith('https://skyblock-api.matdoes.dev/')) {
// add the key as a header
- request.headers.set('key', SKYBLOCK_STATS_API_KEY)
+ request.headers.set('key', skyblockStatsApiKey)
}
const response = await fetch(request)
diff --git a/src/routes/login.ts b/src/routes/login.ts
index 03ca5ee..e0224cd 100644
--- a/src/routes/login.ts
+++ b/src/routes/login.ts
@@ -1,12 +1,13 @@
import type { RequestHandler } from '@sveltejs/kit'
-const DISCORD_CLIENT_ID = process.env.DISCORD_CLIENT_ID
-if (!DISCORD_CLIENT_ID)
+// @ts-ignore Cloudflare Workers can't read process.env
+const discordClientId = DISCORD_CLIENT_ID || process.env.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 (!DISCORD_CLIENT_ID)
+ if (!discordClientId)
return {
status: 500,
headers: {
@@ -29,7 +30,7 @@ export const get: RequestHandler = async ({ request }) => {
return {
status: 303,
headers: {
- location: `https://discord.com/oauth2/authorize?client_id=${DISCORD_CLIENT_ID}&redirect_uri=${protocol}://${host}%2Floggedin&response_type=code&scope=identify`
+ location: `https://discord.com/oauth2/authorize?client_id=${discordClientId}&redirect_uri=${protocol}://${host}%2Floggedin&response_type=code&scope=identify`
}
}
}
diff --git a/src/routes/logout.ts b/src/routes/logout.ts
index 19bd02b..9caebb6 100644
--- a/src/routes/logout.ts
+++ b/src/routes/logout.ts
@@ -1,11 +1,7 @@
import { API_URL } from '$lib/api'
import type { RequestHandler } from '@sveltejs/kit'
-const DISCORD_CLIENT_ID = process.env.DISCORD_CLIENT_ID
-if (!DISCORD_CLIENT_ID)
- 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, params, locals, url }) => {
+export const get: RequestHandler = async ({ locals, url }) => {
// if the sid is wrong, nothing to do
if (url.searchParams.has('sid') && url.searchParams.get('sid') === locals.sid) {
await fetch(`${API_URL}accounts/session`, {
diff --git a/src/routes/profile/update.ts b/src/routes/profile/update.ts
index 3bd6e57..3cdfabc 100644
--- a/src/routes/profile/update.ts
+++ b/src/routes/profile/update.ts
@@ -13,6 +13,12 @@ function isValidEmoji(emoji: string) {
return match && match[0] === emoji && match.index === 0
}
+// @ts-ignore Cloudflare Workers can't read process.env
+const skyblockStatsApiKey = SKYBLOCK_STATS_API_KEY || process.env.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) {
return {
@@ -20,7 +26,7 @@ export const patch: RequestHandler = async ({ request, locals }) => {
status: 401,
}
}
- if (!process.env.SKYBLOCK_STATS_API_KEY) {
+ if (!skyblockStatsApiKey) {
return {
body: { ok: false, error: 'The SKYBLOCK_STATS_API_KEY environment variable is not set.' },
status: 500,
@@ -111,7 +117,7 @@ export const patch: RequestHandler = async ({ request, locals }) => {
method: 'POST',
headers: {
'Content-Type': 'application/json',
- key: process.env.SKYBLOCK_STATS_API_KEY
+ key: skyblockStatsApiKey
},
body: JSON.stringify(updatedAccount),
}).then(r => r.json())
diff --git a/src/routes/verify.ts b/src/routes/verify.ts
index 132b094..c27db10 100644
--- a/src/routes/verify.ts
+++ b/src/routes/verify.ts
@@ -2,6 +2,12 @@ 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 = SKYBLOCK_STATS_API_KEY || process.env.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.')
+
+
function redirect(status: number, location: string) {
return {
status,
@@ -12,7 +18,7 @@ function redirect(status: number, location: string) {
}
export const post: RequestHandler = async ({ request, locals }) => {
- if (!process.env.SKYBLOCK_STATS_API_KEY) {
+ if (!skyblockStatsApiKey) {
return redirect(303, `/verify?error=NO_KEY`)
}
if (locals.sid === undefined) {
@@ -63,7 +69,7 @@ export const post: RequestHandler = async ({ request, locals }) => {
method: 'POST',
headers: {
'Content-Type': 'application/json',
- key: process.env.SKYBLOCK_STATS_API_KEY
+ key: skyblockStatsApiKey
},
body: JSON.stringify(updatedAccount),
}).then(r => r.json())
diff --git a/svelte.config.js b/svelte.config.js
index 4945e1e..31ba570 100644
--- a/svelte.config.js
+++ b/svelte.config.js
@@ -1,5 +1,5 @@
-// import adapter from '@sveltejs/adapter-cloudflare'
-import adapter from '@sveltejs/adapter-auto'
+import adapter from '@sveltejs/adapter-cloudflare'
+// import adapter from '@sveltejs/adapter-auto'
import preprocess from 'svelte-preprocess'
import dotenv from 'dotenv'