r37r0m0d3l/consono

View on GitHub
src/helpers/node/consonoReturn.js

Summary

Maintainability
A
3 hrs
Test Coverage
import Consono from "../../core/node/consono.js";
import cliExit from "../../utils/cliExit.js";
import cliPrint from "../../utils/node/cliPrint.js";
import processExit from "../../utils/processExit.js";
import { THEME_DEFAULT } from "../../const/theme_default.js";

/**
 * @name consonoReturn
 * @description Return variable with highlighting
 * @param {*} variable
 * @param {boolean|Object} options
 * @param {Object|string=} theme
 * @returns {string|undefined}
 */
export default function consonoReturn(variable, options = true, theme = THEME_DEFAULT) {
  const createdOptions = Consono.createOptions({ ...options, console: false, returns: true });
  const instance = new Consono(createdOptions, theme);
  if (createdOptions.console) {
    if (createdOptions.clear) {
      cliExit();
    }
    if (createdOptions.immediate) {
      setTimeout(() => cliPrint(instance.toPrintable(variable), createdOptions.stdout), 0);
    } else {
      cliPrint(instance.toPrintable(variable), createdOptions.stdout);
    }
    processExit(createdOptions.exit);
  }
  if (createdOptions.returns) {
    return instance.toPrintable(variable);
  }
}