UNPKG

yini-cli

Version:

CLI for parsing and validating YINI config files: type-safe values, nested sections, comments, minimal syntax noise, and optional strict mode.

41 lines (40 loc) 1.36 kB
/** * This file contains general system helper functions (utils). * @note More specific YINI helper functions should go into yiniHelpers.ts-file. */ import util from 'util'; import { isDebug, isDev, isProdEnv, isTestEnv } from '../config/env.js'; export const debugPrint = (str = '') => { isDebug() && console.debug('DEBUG: ' + str); }; export const devPrint = (str = '') => { isDev() && !isTestEnv() && console.log('DEV: ' + str); }; export const toJSON = (obj) => { const str = JSON.stringify(obj); return str; }; export const toPrettyJSON = (obj) => { const str = JSON.stringify(obj, null, 4); return str; }; /** * Pretty-prints a JavaScript object as formatted JSON to the console. * Strict JSON, all keys are enclosed in ", etc. */ export const printJSON = (obj) => { if (isProdEnv() || (isTestEnv() && !isDebug())) return; const str = toPrettyJSON(obj); console.log(str); }; /** * Print a full JavaScript object in a human-readable way (not as JSON). * Not strict JSON, and shows functions, symbols, getters/setters, and class names. * @param isColors If true, the output is styled with ANSI color codes. */ export const printObject = (obj, isColors = true) => { if (isProdEnv() || (isTestEnv() && !isDebug())) return; console.log(util.inspect(obj, { depth: null, colors: isColors })); };