@pulzar/core
Version:
Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support
42 lines • 1.33 kB
JavaScript
import { z } from "zod";
// Environment variable schema
const EnvSchema = z.object({
NODE_ENV: z
.enum(["development", "production", "test"])
.default("development"),
PORT: z
.string()
.transform(Number)
.pipe(z.number().min(1).max(65535))
.default("3000"),
HOST: z.string().default("localhost"),
DATABASE_URL: z.string().optional(),
REDIS_URL: z.string().optional(),
REDIS_HOST: z.string().default("localhost"),
REDIS_PORT: z.coerce.number().default(6379),
JWT_SECRET: z.string().min(1),
JWT_EXPIRES_IN: z.string().default("24h"),
CORS_ORIGIN: z.string().default("*"),
LOG_LEVEL: z.enum(["trace", "debug", "info", "warn", "error", "fatal"]).default("info"),
TRACING_ENABLED: z
.string()
.transform((val) => val === "true")
.default("false"),
SERVICE_NAME: z.string().default("pulzar-app"),
});
export function loadEnv() {
return EnvSchema.parse(process.env);
}
export function getEnv(key) {
return process.env[key];
}
export function isDevelopment() {
return process.env.NODE_ENV === "development";
}
export function isProduction() {
return process.env.NODE_ENV === "production";
}
export function isTest() {
return process.env.NODE_ENV === "test";
}
//# sourceMappingURL=env.js.map