1.2.0 • Published 5 years ago

levelheaded v1.2.0

Weekly downloads
864
License
MIT
Repository
github
Last release
5 years ago

levelheaded npm.io npm.io npm.io

⚖️ Generate object containing functions deemed operational by level

Assigns functions by level. Functions lower than the minimal level will be assigned with no operation, while minimal level and above are assigned the desired operation.

OptionTypeMeaningDefault
levelsArrayStringLevels will become functions[ 'debug', 'verbose', 'info', 'warn', 'error', 'critical' ]
minimalStringMinimal level to executelevels[0]
actionFunctionThe action to execute when minimal level was matchedconsole.log
objectObjectAn object to assign the functions on{}
noopFunctionFunction to call when event should not be triggered()=>undefined

ℹ️ All options are optional

import levelheaded from 'levelheaded';

const logger = levelheaded({
	minimal: isDevelopment() ? 'debug' : 'warn',
	action: function (message) {
		fetch(
			'https://error.logger.com',
			{
				method: 'POST',
				body: JSON.stringify({
					message,
					url: document.location.href,
					level: this.level,
				})
			}
		);
	}
})

logger.debug('Something trivial'); // ⛔️ Won't fire
logger.error('Something I need to know'); // ✅ Will fire

Custom levels

const logger = levelheaded({
	levels: ['a', 'b', 'c'],
	minimal: 'b',
});

logger.a('Something'); // ⛔️ Won't fire
logger.b('Something'); // ✅ Will fire

Transpiled version

Environments which exclude node_modules from the transpiling pipeline should include the "browser" entry instead of "main". This exposes an ES5 commonjs module.

Also available for explicit import:

const reduce = require('levelheaded/dist');