JSFiddle - React, Tailwind, and code Playground

by kontrax

HTML

<div id="myResults"></div>

JavaScript

console.clear();
var result = 'no result!',
    echo = function(){},
    log = function(){console.log(arguments);};

var debugManager = function(enable) // enable, all, triggers
{
	if( enable === true )
		var arg = Array.prototype.slice.call(arguments, 1, 3)
		,   len = ( arg.length <= 2 )? arg.length : 2;

	switch( true ){
		case ( enable !== true ):
		case ( len===1 && arg[0]===false ):
				return function(){ return false; };
		case ( !len ):
		case ( arg[0] === true ):
				return function(){ return true; };
		case ( typeof arg[0] !== 'object' ):
				arg[0] = false;
		}
	var debugTriggers  = (typeof arg[len-1] === 'object')? arg[len-1] : {};
	return function(){ return arguments.length? debugTriggers[arguments[0]]: false; };
};

var debug = debugManager(true);
var debugoff = debugManager(false);
var debugall = debugManager(true, true);
var debugalloff = debugManager(true, false, {error:false,load:true});
var debugonly = debugManager(true, {error:false,load:true});

log( debug.toString() );
log( debug() );
log( debugoff.toString() );
log( debugoff() );
log( debugall.toString() );
log( debugall() );
log( debugonly.toString() );
log( debugonly() );
log( 'error', debug('error') );
log( 'load', debug('load') );
log( 'blank', debugonly() );
log( 'error', debugonly('error') );
log( 'load', debugonly('load') );

// Add code before this
document.getElementById("myResults").innerHTML = result;