@sentzunhat/zacatl
Version:
A modular, high-performance TypeScript microservice framework for Node.js, featuring layered architecture, dependency injection, and robust validation for building scalable APIs and distributed systems.
49 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPinoConfig = void 0;
const createPinoConfig = (options) => {
const env = options?.env ?? process.env['NODE_ENV'] ?? 'development';
const isPretty = env !== 'production';
const transport = isPretty
? {
target: 'pino-pretty',
options: {
colorize: true,
},
}
: undefined;
const baseConfig = {
level: process.env['LOG_LEVEL'] ?? 'info',
...(transport ? { transport } : {}),
formatters: {
bindings: (bindings) => {
return {
pid: bindings['pid'],
service: options?.serviceName ?? process.env['SERVICE_NAME'] ?? 'zacatl',
environment: env,
app: {
version: options?.appVersion ?? process.env['APP_VERSION'] ?? '0.0.0',
environment: options?.appEnv ?? process.env['APP_ENV'] ?? env,
},
host: bindings['hostname'],
};
},
level: (label) => {
return { level: label.toLowerCase() };
},
},
};
if (options !== undefined && 'pinoConfig' in options && options.pinoConfig !== undefined) {
return {
...baseConfig,
...options.pinoConfig,
formatters: {
...baseConfig.formatters,
...(options.pinoConfig.formatters ?? {}),
},
};
}
return baseConfig;
};
exports.createPinoConfig = createPinoConfig;
//# sourceMappingURL=config.js.map