@enact/webos
Version:
webOS support library
212 lines (200 loc) • 6.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.warning = exports.perfLog = exports.notice = exports.info = exports.error = exports.emergency = exports.debug = exports.critical = exports.alert = void 0;
/* eslint-disable no-console */
/**
* Provides a wrapper around PmLogLib logging API
*
* @module webos/pmloglib
* @exports emergency
* @exports alert
* @exports critical
* @exports error
* @exports warning
* @exports notice
* @exports info
* @exports debug
* @exports perfLog
*/
// Log level constants
var levelEmergency = 0;
var levelAlert = 1;
var levelCritical = 2;
var levelError = 3;
var levelWarning = 4;
var levelNotice = 5;
var levelInfo = 6;
var levelDebug = 7;
var isObject = function isObject(obj) {
return !!obj && typeof obj === 'object' && Object.prototype.toString.call(obj) !== '[object Array]';
};
// Log function stringifies and escapes keyVals, and passes to PmLogString
var log = function log(level, messageId, keyVals, freeText) {
if (typeof window !== 'undefined' && (window.webOSSystem || window.PalmSystem)) {
var _window$webOSSystem;
if (keyVals && !isObject(keyVals)) {
level = levelError;
keyVals = {
msgid: messageId
};
messageId = 'MISMATCHED_FMT';
freeText = null;
console.warn('webOSLog called with invalid format: keyVals must be an object');
}
if (!messageId && level !== levelDebug) {
console.warn('webOSLog called with invalid format: messageId was empty');
}
if (keyVals) {
keyVals = JSON.stringify(keyVals);
}
var webOSSystem = (_window$webOSSystem = window.webOSSystem) !== null && _window$webOSSystem !== void 0 ? _window$webOSSystem : window.PalmSystem;
if (webOSSystem.PmLogString) {
if (level === levelDebug) {
// debug only accepts 2 arguments
webOSSystem.PmLogString(level, null, null, freeText);
} else {
webOSSystem.PmLogString(level, messageId, keyVals, freeText);
}
} else {
console.error('Unable to send log: PmLogString not found in this version of webOSSystem');
}
}
};
/**
* Logs with PmLogLib at the "emergency" level.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component
* @param {Object} keyVals Key-value pairs to log
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var emergency = exports.emergency = function emergency(messageId, keyVals, freeText) {
log(levelEmergency, messageId, keyVals, freeText);
};
/**
* Logs with PmLogLib at the "alert" level.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component
* @param {Object} keyVals Key-value pairs to log
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var alert = exports.alert = function alert(messageId, keyVals, freeText) {
log(levelAlert, messageId, keyVals, freeText);
};
/**
* Logs with PmLogLib at the "critical" level.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component
* @param {Object} keyVals Key-value pairs to log
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var critical = exports.critical = function critical(messageId, keyVals, freeText) {
log(levelCritical, messageId, keyVals, freeText);
};
/**
* Logs with PmLogLib at the "error" level.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component
* @param {Object} keyVals Key-value pairs to log
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var error = exports.error = function error(messageId, keyVals, freeText) {
log(levelError, messageId, keyVals, freeText);
};
/**
* Logs with PmLogLib at the "warning" level.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component
* @param {Object} keyVals Key-value pairs to log
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var warning = exports.warning = function warning(messageId, keyVals, freeText) {
log(levelWarning, messageId, keyVals, freeText);
};
/**
* Logs with PmLogLib at the "notice" level.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component
* @param {Object} keyVals Key-value pairs to log
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var notice = exports.notice = function notice(messageId, keyVals, freeText) {
log(levelNotice, messageId, keyVals, freeText);
};
/**
* Logs with PmLogLib at the "info" level.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component
* @param {Object} keyVals Key-value pairs to log
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var info = exports.info = function info(messageId, keyVals, freeText) {
log(levelInfo, messageId, keyVals, freeText);
};
/**
* Logs with PmLogLib at the "debug" level.
*
* @function
* @param {String} freeText Text string to log
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var debug = exports.debug = function debug(freeText) {
log(levelDebug, '', '', freeText);
};
/**
* Places a time-stamped performance log entry into the system log using the `PmLogInfoWithClock()`
* method.
*
* @function
* @param {String} messageId Short string that uniquely identifies the log message within a component.
* @param {String} perfType A string that identifies the type of perf message
* @param {String} perfGroup A string that identifies the group of the perf message
* @returns {undefined}
* @memberof webos/pmloglib
* @public
*/
var perfLog = exports.perfLog = function perfLog(messageId, perfType, perfGroup) {
if (typeof window !== 'undefined' && (window.webOSSystem || window.PalmSystem)) {
var _window$webOSSystem2;
if (!messageId) {
console.warn('PmLogInfoWithClock called with invalid format: messageId was empty');
}
var webOSSystem = (_window$webOSSystem2 = window.webOSSystem) !== null && _window$webOSSystem2 !== void 0 ? _window$webOSSystem2 : window.PalmSystem;
if (webOSSystem.PmLogInfoWithClock) {
webOSSystem.PmLogInfoWithClock(messageId, perfType ? perfType : '', perfGroup ? perfGroup : '');
} else {
console.error('Unable to send log: PmLogInfoWithClock not found in this version of webOSSystem');
}
}
};