feat: integrate Bunny Stream course videos
This commit is contained in:
@@ -15,6 +15,10 @@ const environmentSchema = z.object({
|
||||
SUPERADMIN_NAME: z.string().min(1).max(120).default('Compor HUB Superadmin'),
|
||||
AUTH_RATE_LIMIT_MAX: z.coerce.number().int().min(1).max(1000).default(10),
|
||||
AUTH_RATE_LIMIT_WINDOW_SECONDS: z.coerce.number().int().min(60).max(86_400).default(900),
|
||||
BUNNY_STREAM_LIBRARY_ID: optionalEnvironmentValue(z.coerce.number().int().positive()),
|
||||
BUNNY_STREAM_API_KEY: optionalEnvironmentValue(z.string().min(20)),
|
||||
BUNNY_EMBED_TOKEN_KEY: optionalEnvironmentValue(z.string().min(20)),
|
||||
BUNNY_MAX_UPLOAD_MB: z.coerce.number().int().min(1).max(5120).default(5120),
|
||||
});
|
||||
|
||||
export const config = environmentSchema.parse(process.env);
|
||||
@@ -22,3 +26,13 @@ export const config = environmentSchema.parse(process.env);
|
||||
if (config.APP_ENV === 'production' && config.JWT_SECRET === 'development-only-secret-change-before-production') {
|
||||
throw new Error('JWT_SECRET must be set to a unique value in production.');
|
||||
}
|
||||
|
||||
const bunnyConfigurationValues = [
|
||||
config.BUNNY_STREAM_LIBRARY_ID,
|
||||
config.BUNNY_STREAM_API_KEY,
|
||||
config.BUNNY_EMBED_TOKEN_KEY,
|
||||
];
|
||||
|
||||
if (bunnyConfigurationValues.some(Boolean) && !bunnyConfigurationValues.every(Boolean)) {
|
||||
throw new Error('BUNNY_STREAM_LIBRARY_ID, BUNNY_STREAM_API_KEY, and BUNNY_EMBED_TOKEN_KEY must be configured together.');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user