Popularity
0.3
Growing
Activity
6.9
Declining
4
1
0

Monthly Downloads: 0
Programming language: JavaScript
Tags: Log     Logging     Console     Variable     Debug     Logger     Print     Debugging     Echo    
Latest version: v1.0.4

Consono alternatives and similar modules

Based on the "Logging" category

Do you think we are missing an alternative of Consono or a related project?

Add another 'Logging' Module

README

Consono

Better variable inspector for JavaScript.

Version Build Status License: MIT

Consono on github.io 🡆

Installation

npm install consono

Include

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

or

const { consono } = require("consono");

Options

const { Consono } = require("consono");
const options = {
  clear: true,
  quotesEnd: `”`,
  quotesStart: `“`,
  stringMaxLength: 54,
};
const theme = "light";
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,
  // Return string or output to console
  console: true,
  // Default depth of object
  depth: 20,
  // Exit on completion
  exit: 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: `"`,
  // Maximum number of values in set to show
  setMaxValues: 99,
  // Maximum length of string to show
  stringMaxLength: 360,
};
consono("Some variable", defaultOptions);

All possible outputs - try it.

Examples

consono(undefined);
consono(null);

[consono](docs/readme/001.png?raw=true "Nil")

consono(true);
consono(false);

[consono](docs/readme/002.png?raw=true "Boolean")

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

[consono](docs/readme/003.png?raw=true "Number")

consono(new Date());

[consono](docs/readme/004.png?raw=true "Date")

consono("Hello, world 😀😁😂🤣😃😄😅😆😉😊", { stringMaxLength: 17 });
consono(Symbol("🌈"));

[consono](docs/readme/005.png?raw=true "String")

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

[consono](docs/readme/006.png?raw=true "RegExp")

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

[consono](docs/readme/007.png?raw=true "Function")

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

[consono](docs/readme/008.png?raw=true "Async")

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

[consono](docs/readme/009.png?raw=true "Array")

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

[consono](docs/readme/010.png?raw=true "Array Buffer")

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

[consono](docs/readme/011.png?raw=true "Collection")

consono({});

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

[consono](docs/readme/012.png?raw=true "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"));

[consono](docs/readme/013.png?raw=true "Error")

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

[consono](docs/readme/014.png?raw=true "Arguments")

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

[consono](docs/readme/015.png?raw=true "Global")

I need help with:

  • Writing documentation
  • Theming console output
  • Writing tests


*Note that all licence references and agreements mentioned in the Consono README section above are relevant to that project's source code only.