View on GitHub

Consono

πŸ•΅οΈ Consono πŸ•΅οΈβ€β™€οΈ

The most correct, informative, appealing and configurable variable inspector for Node.js

NPM Version NPM Downloads Build Status Issues

Known Vulnerabilities Dependency Status devDependencies Status

Maintainability Codacy Badge Quality Gate Status

GitHub stars GitHub watchers GitHub followers GitHub forks

🧭 Table of contents

Examples

Motivation

Installation

Include

Options

Instance

🧬 Examples

consono(undefined);
consono(null);

Nil

consono(true);
consono(false);

Boolean

consono(Infinity);
consono(Number.NEGATIVE_INFINITY);
consono(NaN);
consono(1);
consono(1.5);
consono(BigInt(9007199254740991));

Number

consono(new Date());

Date

consono("Hello, world πŸ˜€πŸ˜πŸ˜‚πŸ€£πŸ˜ƒπŸ˜„πŸ˜…πŸ˜†πŸ˜‰πŸ˜Š", { stringMaxLength: 17 });
consono(Symbol("🌈"));

String

consono(/[0-9]+/);
consono(/\w+/giu);

RegExp

consono(function() {});
consono(function helloWorld() {});
consono(() => {});

Function

consono(new Promise(() => {}));
consono(async function helloWorld() {});
consono(async () => {});
consono(function* gen() { yield 1; });

Async

consono([1, 2, 3]);
consono(Int8Array.from([1, 2, 3]));

Array

consono(new ArrayBuffer(8));
consono(new SharedArrayBuffer(16));

Array Buffer

consono(new Set(["a", true, { prop: 1 }]));
consono(new Map([["first", "a"], [true, "b"]]));
consono(new WeakMap());
consono(new WeakSet());

Collection

consono({});

class MyClass {} const myClass = new MyClass(); myClass.deeper = new
MyClass(); consono(myClass);

Object

consono(new Error("Standard error"));
consono(new EvalError("Unable to run this code"));
consono(new RangeError("Must be less than 10 and greater than 0"));
consono(new ReferenceError("This is error from try/catch"));
consono(new SyntaxError("Not a source code"));
consono(new TypeError("Value is not of the expected type"));

Error

(function(a, b) { consono(arguments); })(true, false);

Arguments

consono(global || globalThis, { objectMaxProps: 3 });

Global

πŸ”‹ Motivation

Motivation and differences from other libraries.

πŸ“¦ Installation

npm install consono
yarn add consono

⌨️ Include

Default is function for printing variable.

const consono = require("consono").default;

Require multiple items: function, constructor, options object, theme objects.

const {
  Consono,
  consono,
  options,
  THEME_DARK,
  THEME_LIGHT,
} = require("consono");

Import as ECMAScript module.

import { consono } from "consono/es";

UNPKG CDN.

<script src="https://unpkg.com/consono/dist/consono.js"></script>

βš™οΈ Options

const { Consono } = require("consono");
const options = {
  clear: true,
  quotesEnd: `”`,
  quotesStart: `β€œ`,
  stringMaxLength: 54,
};
const theme = "light"; // default is "dark"
const consono = new Consono(options, theme);
consono.log("Cleared before output. Different quotes. And cut to 54!");
// string β€’ "Cleared before output. Different quotes. And cut to 54"
// (length=55, shown=54)
const { Consono } = require("consono");
const theme = {
  argument: [253, 151, 31],
  boolean: [174, 129, 255],
  comment: [117, 113, 94],
  keyword: [249, 38, 114],
  name: [230, 219, 116],
  number: [174, 129, 255],
  plain: [255, 255, 255],
  property: [102, 217, 239],
  string: [166, 226, 46],
};
const consono = new Consono(null, theme);
consono.log("Themed");
const { Consono, options } = require("consono");
options.colorize = false;
const consono = new Consono(options);
consono.log("Text without colorization");
const { consono } = require("consono");
console.debug(
  consono("Outputs a message only at the debug log level.", false)
);

🏷️ Instance

const consono = Consono.factory(options, theme);
consono("This is log function with your own options");

πŸ”– Log function

const { consono } = require("consono");
const map = new Map();
map.add("key", true);
consono(map);

Return string with variable description.

const variableAsString = consono({}, false);

or

const variableAsString = consono({},  { console: false });
const defaultOptions = {
  // Maximum number of elements in array to show
  arrayMaxElements: 99,
  // Assign symbol
  assignSymbol: "β†’",
  // Clear console before output
  clear: false,
  // Colorize the output
  colorize: true,
  // Output to console
  console: true,
  // Default depth of object
  depth: 20,
  // 'false' - do nothing. 'true' - exit status ok.
  // Number greater than zero - exit status with passed error code.
  exit: false,
  // Call console.log immediately
  immediate: false,
  // Print indentation
  indent: "Λ‘Λ‘",
  // Maximum number of entries in map to show
  mapMaxEntries: 99,
  // Maximum number of properties in object to show
  objectMaxProps: 99,
  // Quote start
  quotesEnd: `"`,
  // Quote end
  quotesStart: `"`,
  // Return inspected variable as string
  returns: true,
  // Maximum number of values in set to show
  setMaxValues: 99,
  // Maximum length of string to show
  stringMaxLength: 360,
};
consono("Some variable", defaultOptions);

πŸ‘€ Discover more πŸ‘€

Or find useful these tools: