UNPKG

@pulzar/core

Version:

Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support

111 lines 2.86 kB
import { z } from "zod"; // Configuration schema const ConfigSchema = z.object({ app: z.object({ name: z.string(), version: z.string(), port: z.number().min(1).max(65535), host: z.string(), env: z.enum(["development", "production", "test"]), }), cors: z.object({ enabled: z.boolean(), origin: z.string(), credentials: z.boolean(), }), compression: z.object({ enabled: z.boolean(), level: z.number().min(0).max(9), }), security: z.object({ helmet: z.object({ enabled: z.boolean(), }), rateLimit: z.object({ enabled: z.boolean(), windowMs: z.number(), max: z.number(), }), }), logging: z.object({ level: z.enum(["error", "warn", "info", "debug"]), format: z.enum(["json", "text"]), }), database: z.object({ url: z.string().optional(), }), redis: z.object({ url: z.string().optional(), }), jwt: z.object({ secret: z.string(), expiresIn: z.string(), }), openapi: z.object({ enabled: z.boolean(), path: z.string(), title: z.string(), version: z.string(), }), tracing: z.object({ enabled: z.boolean(), serviceName: z.string(), }), }); export function defineConfig(config) { return ConfigSchema.parse(config); } export function loadConfig() { // In a real implementation, this would load from file or environment const defaultConfig = { app: { name: "pulzar-app", version: "1.0.0", port: process.env.PORT ? parseInt(process.env.PORT) : 3000, host: process.env.HOST || "localhost", env: process.env.NODE_ENV || "development", }, cors: { enabled: true, origin: "*", credentials: true, }, compression: { enabled: true, level: 6, }, security: { helmet: { enabled: true, }, rateLimit: { enabled: true, windowMs: 15 * 60 * 1000, max: 100, }, }, logging: { level: "info", format: "json", }, database: {}, redis: {}, jwt: { secret: "your-secret-key", expiresIn: "24h", }, openapi: { enabled: process.env.NODE_ENV !== "production", path: "/docs", title: "Pulzar API", version: "1.0.0", }, tracing: { enabled: false, serviceName: "pulzar-app", }, }; return defaultConfig; } //# sourceMappingURL=loader.js.map