UNPKG

@wavequery/conductor

Version:
60 lines 2.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.config = exports.ConfigurationManager = void 0; const types_1 = require("./types"); const default_1 = require("./default"); const dotenv_1 = __importDefault(require("dotenv")); class ConfigurationManager { constructor() { dotenv_1.default.config(); this.config = this.loadConfig(); } static getInstance() { if (!ConfigurationManager.instance) { ConfigurationManager.instance = new ConfigurationManager(); } return ConfigurationManager.instance; } loadConfig() { const config = { openai: { apiKey: process.env.OPENAI_API_KEY, model: process.env.OPENAI_MODEL || default_1.defaultConfig.openai?.model, organization: process.env.OPENAI_ORG, }, server: { port: parseInt(process.env.SERVER_PORT || String(default_1.defaultConfig.server?.port), 10), host: process.env.SERVER_HOST || default_1.defaultConfig.server?.host, }, logging: { level: (process.env.LOG_LEVEL || default_1.defaultConfig.logging?.level), }, }; try { return types_1.configSchema.parse(config); } catch (error) { console.error("Invalid configuration:", error); process.exit(1); } } getConfig() { return this.config; } // Allow overriding config for testing setConfig(config) { this.config = { ...this.config, ...config, }; return types_1.configSchema.parse(this.config); } } exports.ConfigurationManager = ConfigurationManager; // Export a default instance exports.config = ConfigurationManager.getInstance().getConfig(); //# sourceMappingURL=index.js.map