tap-console
v0.1.0
Published
A console.log alternative that makes your life easier only a bit
Downloads
1
Readme
tap-console
A functional programming in mind console.log
alternative that makes your life easier only a bit, inspired by Elm language's Debug.log
Install
npm i tap-console
or
yarn add tap-console
Motivation
The Problem
ES6 arrow function (=>
) made it easy to write function literals.
However, putting a debugging code in it sometimes turns out to be too painful in contrast to what you hope to do.
Suppose you're working with a code like this
const compare = (one, another) => Math.abs(one) - Math.abs(another);
arr.sort((a, b) => compare(a, b));
And you want to be sure that compare
works as you expected.
You're to print what compare
returns like this
...
arr.sort((a, b) => {
const result = compare(a, b);
console.log(a, b, result);
return result;
});
or this
const compare = (one, another) => {
const result = Math.abs(one) - Math.abs(another);
console.log(one, another, result);
return result;
};
...
or this (ok, it's just a debugging...)
...
arr.sort((a, b) => console.log(a, b, compare(a, b)) || compare(a, b));
Aren't these too tedious...?
A solution
Instead, using this library, do one of these
import { log } from "tap-console";
...
arr.sort((a, b) => log(a, b, compare(a, b)));
import { log } from "tap-console";
const compare = (one, another) =>
log(one, another, Math.abs(one) - Math.abs(another));
...
...
arr.sort((a, b) => require("tap-console").log(a, b, compare(a, b)));
...
// shorthand for log() method
arr.sort((a, b) => require("tap-console")(a, b, compare(a, b)));
Usage
The only difference between the logger object that this library exports and the built-in console
object is that each method of the former returns the last argument passed to it.
All the methods that the built-in console
supports are supported.
For example,
import tc from "tap-console";
...
const squares = tc.table([1, 3, 5].map(i => i * i)); // returns [1, 9, 25]
create
method
This method allows you to create a custom print function.
import {create} from 'tap-console';
const show = create(value => window.alert(value));
const sum = show(1) + show(2); // returns 3
first
method
Different from other methods, this method calls console.log
internally and then returns the first argument.
Useful when dealing with array methods such as map
and filter
.
[1, 2, 3, 4].map(tc.first); // returns [1, 2, 3, 4]
License
MIT.