Merge pull request #58 from killion/wrap-redis-and-postgres-in-a-try-catch

Wrap Prisma and IORedis in a try/catch with logging
This commit is contained in:
Dries Augustyns
2024-08-18 09:23:53 +02:00
committed by GitHub
4 changed files with 65 additions and 38 deletions
+4 -2
View File
@@ -1,10 +1,12 @@
{ {
"name": "plunk", "name": "plunk",
"version": "1.0.2", "version": "1.0.3",
"private": true, "private": true,
"license": "agpl-3.0", "license": "agpl-3.0",
"workspaces": { "workspaces": {
"packages": ["packages/*"] "packages": [
"packages/*"
]
}, },
"engines": { "engines": {
"npm": ">=6.14.x", "npm": ">=6.14.x",
+8
View File
@@ -27,6 +27,14 @@ export const DISABLE_SIGNUPS = validateEnv("DISABLE_SIGNUPS", "false").toLowerCa
export const API_URI = validateEnv("API_URI", "http://localhost:4000"); export const API_URI = validateEnv("API_URI", "http://localhost:4000");
export const APP_URI = validateEnv("APP_URI", "http://localhost:3000"); export const APP_URI = validateEnv("APP_URI", "http://localhost:3000");
if (!API_URI.startsWith("http")) {
throw new Error("API_URI must start with 'http'");
}
if (!APP_URI.startsWith("http")) {
throw new Error("APP_URI must start with 'http'");
}
// AWS // AWS
export const AWS_REGION = validateEnv("AWS_REGION"); export const AWS_REGION = validateEnv("AWS_REGION");
export const AWS_ACCESS_KEY_ID = validateEnv("AWS_ACCESS_KEY_ID"); export const AWS_ACCESS_KEY_ID = validateEnv("AWS_ACCESS_KEY_ID");
+9 -1
View File
@@ -1,3 +1,11 @@
import {PrismaClient} from '@prisma/client'; import {PrismaClient} from '@prisma/client';
import signale from 'signale';
export const prisma = new PrismaClient(); let prisma: PrismaClient;
try {
prisma = new PrismaClient();
signale.info('Prisma initialized');
} catch (error) {
signale.error('Failed to initialize Prisma: ', error);
}
export {prisma};
+10 -1
View File
@@ -1,7 +1,16 @@
import Redis from 'ioredis'; import Redis from 'ioredis';
import {REDIS_URL} from '../app/constants'; import {REDIS_URL} from '../app/constants';
import signale from "signale";
export const redis = new Redis(REDIS_URL); let redis: Redis;
try {
redis = new Redis(REDIS_URL);
const infoString = redis.info();
signale.info('Redis initialized: ', infoString);
} catch (error) {
signale.error('Failed to initialize Redis: ', error);
}
export {redis};
export const REDIS_ONE_MINUTE = 60; export const REDIS_ONE_MINUTE = 60;
export const REDIS_DEFAULT_EXPIRY = REDIS_ONE_MINUTE / 60; export const REDIS_DEFAULT_EXPIRY = REDIS_ONE_MINUTE / 60;