UNPKG

cli-block

Version:
50 lines (44 loc) 1.33 kB
import { BorderType, BorderColor } from "../border/border.model"; import { LoggerSettings, LoggerLevel, LoggerType } from "../types/settings"; export const defaultSettings: LoggerSettings = { borderType: BorderType.single, borderColor: BorderColor.dim, frameWidth: 80, indentBlock: 5, prefix: "", newLine: true, autoSpace: true, tableHeader: true, tableSpace: true, padding: -1, pathDepth: -1, logger: LoggerType.STDOUT, logLevel: LoggerLevel.VERBOSE, logOutputLevel: LoggerLevel.VERBOSE, }; export const useSettings = ( settings: Partial<LoggerSettings> = {} ): LoggerSettings => { return { ...defaultSettings, ...settings, }; }; export const getFrameWidth = ( settings: Partial<LoggerSettings> = {} ): number => { const cfg = useSettings(settings); return process.stdout.columns < cfg.frameWidth + cfg.indentBlock * 2 + 2 ? process.stdout.columns - cfg.indentBlock * 2 : cfg.frameWidth; }; export const getPadding = (settings: Partial<LoggerSettings> = {}): number => (settings = useSettings(settings)) && settings.padding > -1 ? settings.padding : getFrameWidth(settings) / 10; export const getContentWidth = ( settings: Partial<LoggerSettings> = {} ): number => { const cfg = useSettings(settings); return getFrameWidth(cfg) - getPadding(cfg) * 2; };