Skip to main content

Config

Global configuration management for logging, cache, and runtime settings. Provides type-safe access and mutation of config values, with sensible defaults and environment variable support.

API Summary​


Function Documentation & Usage Examples​

setConfig()​

Updates configuration settings at runtime. Only provided keys are merged; others remain unchanged.

Method Signature:

function setConfig(value: Partial<Config>): void

Parameters:

  • value: Partial configuration object to merge.

Examples:

import { setConfig, getConfig } from '@catbee/utils';

setConfig({
logger: { level: "debug", name: "custom-logger", pretty: true }
});

getConfig()​

Returns the current configuration object.

Method Signature:

function getConfig(): Config

Returns:

  • The current configuration object.

Examples:

import { getConfig } from '@catbee/utils';

const currentConfig = getConfig();
console.log(currentConfig.logger.level); // "info"
console.log(currentConfig.cache.defaultTtl); // 3600000

Default Values​

All configuration options have sensible defaults:

const config = {
logger: {
level: "info", // Logging level
name: "@catbee/utils", // Logger name
pretty: true, // Pretty print logs (dev only)
singleLine: false // Single line pretty print
},
cache: {
defaultTtl: 3600000 // Default cache TTL (1 hour, in ms)
}
};

Types​

Logger Configuration​

interface LoggerConfig {
level: "trace" | "debug" | "info" | "warn" | "error";
name: string;
pretty: boolean;
singleLine: boolean;
}

Cache Configuration​

interface CacheConfig {
defaultTtl: number; // milliseconds
}

Config Object​

interface Config {
logger: LoggerConfig;
cache: CacheConfig;
}