UNPKG

loggi

Version:

A memory log util for JavaScript Applications

116 lines (95 loc) 3.25 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.LOG_METHOD_LEVELS = exports.LOG_METHODS = exports.LOG_LEVELS = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _constants = require('./constants'); function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** * Prints the arguments in the console using the provided method. * * @param {string} method * @param {...any} args */ var print = function (method) { var _console; for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } return (_console = console)[method].apply(_console, args); }; /** * Determines if the method should print to the console. * * @param {string} method * @param {string} logLevel * @returns {boolean} */ var shouldPrint = function (method, logLevel) { return _constants.LOG_METHOD_LEVELS[method] >= logLevel; }; /** * Logger constructor function * * @param {object} userOptions * @returns {object} */ var createLogger = function () { var userOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var defaults = { logLevel: _constants.LOG_LEVELS.DEBUG, maxMemoryLogs: 100 }; var options = _extends({}, defaults, userOptions); var history = []; /** * Saves the log in memory and prints it out, * depending on the log level. * * @param {string} method * @param {...any} args */ var log = function (method) { for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } history.push({ method: method, args: args, timestamp: Date.now() }); history = history.slice(0, options.maxMemoryLogs); shouldPrint(method, options.logLevel) && print.apply(undefined, [method].concat(args)); }; /** * Loops through the history array and prints all messages * from the logger's memory. */ var debug = function () { history.map(function (_ref) { var method = _ref.method, args = _ref.args; return print.apply(undefined, [method].concat(_toConsumableArray(args))); }); }; var returnObject = { debug: debug, getHistory: function getHistory() { return history; } }; _constants.LOG_METHODS.map(function (method) { return returnObject[method] = function () { for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } return log.apply(undefined, [method].concat(args)); }; }); return returnObject; }; exports.default = createLogger; exports.LOG_LEVELS = _constants.LOG_LEVELS; exports.LOG_METHODS = _constants.LOG_METHODS; exports.LOG_METHOD_LEVELS = _constants.LOG_METHOD_LEVELS;