| Current Path : /proc/thread-self/cwd/static/frontend/Magento/luma/it_IT/Magento_Ui/js/lib/logger/ |
| Current File : //proc/thread-self/cwd/static/frontend/Magento/luma/it_IT/Magento_Ui/js/lib/logger/logger-utils.js |
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
define([], function () {
'use strict';
/**
* Utils methods for logger
* @param {Logger} logger
*/
function LogUtils(logger) {
this.logger = logger;
}
/**
* Method for logging asynchronous operations
* @param {Promise} promise
* @param {Object} config
*/
LogUtils.prototype.asyncLog = function (promise, config) {
var levels,
messages,
wait;
config = config || {};
levels = config.levels || this.createLevels();
messages = config.messages || this.createMessages();
wait = config.wait || 5000;
this.logger[levels.requested](messages.requested, config.data);
setTimeout(function () {
promise.state() === 'pending' ?
this.logger[levels.failed](messages.failed, config.data) :
this.logger[levels.loaded](messages.loaded, config.data);
}.bind(this), wait);
};
/**
* Method that creates object of messages
* @param {String} requested - log message that showing that request for class is started
* @param {String} loaded - log message that show when requested class is loaded
* @param {String} failed - log message that show when requested class is failed
* @returns {Object}
*/
LogUtils.prototype.createMessages = function (requested, loaded, failed) {
return {
requested: requested || '',
loaded: loaded || '',
failed: failed || ''
};
};
/**
* Method that creates object of log levels
* @param {String} requested - log message that showing that request for class is started
* @param {String} loaded - log message that show when requested class is loaded
* @param {String} failed - log message that show when requested class is failed
* @returns {Object}
*/
LogUtils.prototype.createLevels = function (requested, loaded, failed) {
return {
requested: requested || 'info',
loaded: loaded || 'info',
failed: failed || 'warn'
};
};
return LogUtils;
});