91 lines
2.2 KiB
TypeScript
91 lines
2.2 KiB
TypeScript
import "server-only";
|
|
|
|
import {
|
|
optionalEnvironmentValue,
|
|
readFeatureEnvironment,
|
|
requiredEnvironmentValue,
|
|
requiredEnvironmentUrl,
|
|
} from "@/lib/config/environment";
|
|
|
|
export function getCanonicalUrl() {
|
|
if (optionalEnvironmentValue("BASE_URL")) {
|
|
return requiredEnvironmentUrl("BASE_URL");
|
|
}
|
|
return requiredEnvironmentUrl("NEXTAUTH_URL");
|
|
}
|
|
|
|
export function getVisitorTrackingConfig() {
|
|
return {
|
|
secret: readFeatureEnvironment("Visitor tracking", [
|
|
"NEXTAUTH_SECRET",
|
|
] as const).NEXTAUTH_SECRET,
|
|
};
|
|
}
|
|
|
|
export function getDiscordServerConfig() {
|
|
const config = readFeatureEnvironment("Discord", [
|
|
"DISCORD_BOT_TOKEN",
|
|
"DISCORD_GUILD_ID",
|
|
] as const);
|
|
return {
|
|
token: config.DISCORD_BOT_TOKEN,
|
|
guildId: config.DISCORD_GUILD_ID,
|
|
};
|
|
}
|
|
|
|
export function getShareBotSecret() {
|
|
return requiredEnvironmentValue("SHARE_BOT_SECRET");
|
|
}
|
|
|
|
export function getYoutubeFollowerConfig() {
|
|
const config = readFeatureEnvironment("YouTube follower counts", [
|
|
"YOUTUBE_API_KEY",
|
|
"YOUTUBE_CHANNEL_ID",
|
|
] as const);
|
|
return { apiKey: config.YOUTUBE_API_KEY, channelId: config.YOUTUBE_CHANNEL_ID };
|
|
}
|
|
|
|
export function getRobloxFollowerConfig() {
|
|
return {
|
|
userId: readFeatureEnvironment("Roblox follower counts", [
|
|
"ROBLOX_USER_ID",
|
|
] as const).ROBLOX_USER_ID,
|
|
};
|
|
}
|
|
|
|
export function getTiktokApiConfig() {
|
|
const accessToken = optionalEnvironmentValue("TIKTOK_ACCESS_TOKEN");
|
|
if (accessToken) {
|
|
return {
|
|
clientKey: null,
|
|
clientSecret: null,
|
|
refreshToken: null,
|
|
accessToken,
|
|
};
|
|
}
|
|
const config = readFeatureEnvironment("TikTok", [
|
|
"TIKTOK_CLIENT_KEY",
|
|
"TIKTOK_CLIENT_SECRET",
|
|
"TIKTOK_REFRESH_TOKEN",
|
|
] as const);
|
|
return {
|
|
clientKey: config.TIKTOK_CLIENT_KEY,
|
|
clientSecret: config.TIKTOK_CLIENT_SECRET,
|
|
refreshToken: config.TIKTOK_REFRESH_TOKEN,
|
|
accessToken: null,
|
|
};
|
|
}
|
|
|
|
export function getYoutubePublishingConfig() {
|
|
const config = readFeatureEnvironment("YouTube publishing", [
|
|
"YOUTUBE_CLIENT_ID",
|
|
"YOUTUBE_CLIENT_SECRET",
|
|
"YOUTUBE_REFRESH_TOKEN",
|
|
] as const);
|
|
return {
|
|
clientId: config.YOUTUBE_CLIENT_ID,
|
|
clientSecret: config.YOUTUBE_CLIENT_SECRET,
|
|
refreshToken: config.YOUTUBE_REFRESH_TOKEN,
|
|
};
|
|
}
|