UNPKG

jsforce

Version:

Salesforce API Library for JavaScript

140 lines (138 loc) 16.4 kB
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray"; import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck"; import _createClass from "@babel/runtime-corejs3/helpers/createClass"; import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat"; import "core-js/modules/es.object.keys.js"; import "core-js/modules/es.regexp.exec.js"; import "core-js/modules/es.regexp.test.js"; /** * */ export var LogLevels = { DEBUG: 1, INFO: 2, WARN: 3, ERROR: 4, FATAL: 5, NONE: 6 }; var LogLevelLabels = ['', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL', 'NONE']; var globalLogLevelConfig = function () { var globalLogLevelStr = process.env.JSFORCE_LOG_LEVEL || global.__JSFORCE_LOG_LEVEL__ || 'NONE'; if (/^(DEBUG|INFO|WARN|ERROR|FATAL|NONE)$/i.test(globalLogLevelStr)) { return { '*': globalLogLevelStr }; } try { return JSON.parse(globalLogLevelStr); } catch (e) { return { '*': 'NONE' }; } }(); function getModuleLogLevel(logLevelConfig, moduleName) { var logLevel = logLevelConfig[moduleName] || logLevelConfig['*']; return typeof logLevel === 'number' ? logLevel : LogLevels[logLevel] || LogLevels.NONE; } /** * */ export var Logger = /*#__PURE__*/function () { function Logger(moduleName) { var logLevelConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalLogLevelConfig; _classCallCheck(this, Logger); this._moduleName = moduleName; this._logLevel = typeof logLevelConfig === 'number' ? logLevelConfig : typeof logLevelConfig === 'string' ? LogLevels[logLevelConfig] || LogLevels.NONE : getModuleLogLevel(logLevelConfig, moduleName); } return _createClass(Logger, [{ key: "createInstance", value: function createInstance() { var logLevelConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._logLevel; return new Logger(this._moduleName, logLevelConfig); } }, { key: "setLogLevel", value: function setLogLevel(logLevel) { if (typeof logLevel === 'string') { this._logLevel = LogLevels[logLevel] || LogLevels.NONE; } else { this._logLevel = logLevel; } } }, { key: "log", value: function log(logLevel) { if (this._logLevel <= logLevel) { var _context, _context2; for (var _len = arguments.length, messages = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { messages[_key - 1] = arguments[_key]; } var msgs = _concatInstanceProperty(_context = [_concatInstanceProperty(_context2 = "".concat(LogLevelLabels[logLevel], "\t[")).call(_context2, this._moduleName, "] ")]).call(_context, messages); if (logLevel < LogLevels.ERROR) { var _console; (_console = console).log.apply(_console, _toConsumableArray(msgs)); // eslint-disable-line no-console } else { var _console2; (_console2 = console).error.apply(_console2, _toConsumableArray(msgs)); // eslint-disable-line no-console } } } }, { key: "debug", value: function debug() { var _context3; for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { messages[_key2] = arguments[_key2]; } this.log.apply(this, _concatInstanceProperty(_context3 = [LogLevels.DEBUG]).call(_context3, messages)); } }, { key: "info", value: function info() { var _context4; for (var _len3 = arguments.length, messages = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { messages[_key3] = arguments[_key3]; } this.log.apply(this, _concatInstanceProperty(_context4 = [LogLevels.INFO]).call(_context4, messages)); } }, { key: "warn", value: function warn() { var _context5; for (var _len4 = arguments.length, messages = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { messages[_key4] = arguments[_key4]; } this.log.apply(this, _concatInstanceProperty(_context5 = [LogLevels.WARN]).call(_context5, messages)); } }, { key: "error", value: function error() { var _context6; for (var _len5 = arguments.length, messages = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { messages[_key5] = arguments[_key5]; } this.log.apply(this, _concatInstanceProperty(_context6 = [LogLevels.ERROR]).call(_context6, messages)); } }, { key: "fatal", value: function fatal() { var _context7; for (var _len6 = arguments.length, messages = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { messages[_key6] = arguments[_key6]; } this.log.apply(this, _concatInstanceProperty(_context7 = [LogLevels.FATAL]).call(_context7, messages)); } }]); }(); var loggers = {}; /** * */ export function getLogger(moduleName) { var logger = loggers[moduleName] || new Logger(moduleName); loggers[moduleName] = logger; return logger; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2dMZXZlbHMiLCJERUJVRyIsIklORk8iLCJXQVJOIiwiRVJST1IiLCJGQVRBTCIsIk5PTkUiLCJMb2dMZXZlbExhYmVscyIsImdsb2JhbExvZ0xldmVsQ29uZmlnIiwiZ2xvYmFsTG9nTGV2ZWxTdHIiLCJwcm9jZXNzIiwiZW52IiwiSlNGT1JDRV9MT0dfTEVWRUwiLCJnbG9iYWwiLCJfX0pTRk9SQ0VfTE9HX0xFVkVMX18iLCJ0ZXN0IiwiSlNPTiIsInBhcnNlIiwiZSIsImdldE1vZHVsZUxvZ0xldmVsIiwibG9nTGV2ZWxDb25maWciLCJtb2R1bGVOYW1lIiwibG9nTGV2ZWwiLCJMb2dnZXIiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfY2xhc3NDYWxsQ2hlY2siLCJfbW9kdWxlTmFtZSIsIl9sb2dMZXZlbCIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiY3JlYXRlSW5zdGFuY2UiLCJzZXRMb2dMZXZlbCIsImxvZyIsIl9jb250ZXh0IiwiX2NvbnRleHQyIiwiX2xlbiIsIm1lc3NhZ2VzIiwiQXJyYXkiLCJfa2V5IiwibXNncyIsIl9jb25jYXRJbnN0YW5jZVByb3BlcnR5IiwiY29uY2F0IiwiY2FsbCIsIl9jb25zb2xlIiwiY29uc29sZSIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2NvbnNvbGUyIiwiZXJyb3IiLCJkZWJ1ZyIsIl9jb250ZXh0MyIsIl9sZW4yIiwiX2tleTIiLCJpbmZvIiwiX2NvbnRleHQ0IiwiX2xlbjMiLCJfa2V5MyIsIndhcm4iLCJfY29udGV4dDUiLCJfbGVuNCIsIl9rZXk0IiwiX2NvbnRleHQ2IiwiX2xlbjUiLCJfa2V5NSIsImZhdGFsIiwiX2NvbnRleHQ3IiwiX2xlbjYiLCJfa2V5NiIsImxvZ2dlcnMiLCJnZXRMb2dnZXIiLCJsb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICovXG5leHBvcnQgY29uc3QgTG9nTGV2ZWxzOiB7IFtsZXZlbDogc3RyaW5nXTogbnVtYmVyIH0gPSB7XG4gIERFQlVHOiAxLFxuICBJTkZPOiAyLFxuICBXQVJOOiAzLFxuICBFUlJPUjogNCxcbiAgRkFUQUw6IDUsXG4gIE5PTkU6IDYsXG59O1xuXG5jb25zdCBMb2dMZXZlbExhYmVscyA9IFsnJywgJ0RFQlVHJywgJ0lORk8nLCAnV0FSTicsICdFUlJPUicsICdGQVRBTCcsICdOT05FJ107XG5cbmNvbnN0IGdsb2JhbExvZ0xldmVsQ29uZmlnID0gKCgpID0+IHtcbiAgY29uc3QgZ2xvYmFsTG9nTGV2ZWxTdHIgPVxuICAgIHByb2Nlc3MuZW52LkpTRk9SQ0VfTE9HX0xFVkVMIHx8XG4gICAgKGdsb2JhbCBhcyBhbnkpLl9fSlNGT1JDRV9MT0dfTEVWRUxfXyB8fFxuICAgICdOT05FJztcbiAgaWYgKC9eKERFQlVHfElORk98V0FSTnxFUlJPUnxGQVRBTHxOT05FKSQvaS50ZXN0KGdsb2JhbExvZ0xldmVsU3RyKSkge1xuICAgIHJldHVybiB7ICcqJzogZ2xvYmFsTG9nTGV2ZWxTdHIgfTtcbiAgfVxuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGdsb2JhbExvZ0xldmVsU3RyKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB7ICcqJzogJ05PTkUnIH07XG4gIH1cbn0pKCk7XG5cbmV4cG9ydCB0eXBlIExvZ0xldmVsQ29uZmlnID1cbiAgfCBzdHJpbmdcbiAgfCBudW1iZXJcbiAgfCB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfTtcblxuZnVuY3Rpb24gZ2V0TW9kdWxlTG9nTGV2ZWwoXG4gIGxvZ0xldmVsQ29uZmlnOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSxcbiAgbW9kdWxlTmFtZTogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IGxvZ0xldmVsID0gbG9nTGV2ZWxDb25maWdbbW9kdWxlTmFtZV0gfHwgbG9nTGV2ZWxDb25maWdbJyonXTtcbiAgcmV0dXJuIHR5cGVvZiBsb2dMZXZlbCA9PT0gJ251bWJlcidcbiAgICA/IGxvZ0xldmVsXG4gICAgOiBMb2dMZXZlbHNbbG9nTGV2ZWxdIHx8IExvZ0xldmVscy5OT05FO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dnZXIge1xuICBfbW9kdWxlTmFtZTogc3RyaW5nO1xuICBfbG9nTGV2ZWw6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgbG9nTGV2ZWxDb25maWc6IExvZ0xldmVsQ29uZmlnID0gZ2xvYmFsTG9nTGV2ZWxDb25maWcsXG4gICkge1xuICAgIHRoaXMuX21vZHVsZU5hbWUgPSBtb2R1bGVOYW1lO1xuICAgIHRoaXMuX2xvZ0xldmVsID1cbiAgICAgIHR5cGVvZiBsb2dMZXZlbENvbmZpZyA9PT0gJ251bWJlcidcbiAgICAgICAgPyBsb2dMZXZlbENvbmZpZ1xuICAgICAgICA6IHR5cGVvZiBsb2dMZXZlbENvbmZpZyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBMb2dMZXZlbHNbbG9nTGV2ZWxDb25maWddIHx8IExvZ0xldmVscy5OT05FXG4gICAgICAgIDogZ2V0TW9kdWxlTG9nTGV2ZWwobG9nTGV2ZWxDb25maWcsIG1vZHVsZU5hbWUpO1xuICB9XG5cbiAgY3JlYXRlSW5zdGFuY2UobG9nTGV2ZWxDb25maWc6IExvZ0xldmVsQ29uZmlnID0gdGhpcy5fbG9nTGV2ZWwpIHtcbiAgICByZXR1cm4gbmV3IExvZ2dlcih0aGlzLl9tb2R1bGVOYW1lLCBsb2dMZXZlbENvbmZpZyk7XG4gIH1cblxuICBzZXRMb2dMZXZlbChsb2dMZXZlbDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgaWYgKHR5cGVvZiBsb2dMZXZlbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2xvZ0xldmVsID0gTG9nTGV2ZWxzW2xvZ0xldmVsXSB8fCBMb2dMZXZlbHMuTk9ORTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbG9nTGV2ZWwgPSBsb2dMZXZlbDtcbiAgICB9XG4gIH1cblxuICBsb2cobG9nTGV2ZWw6IG51bWJlciwgLi4ubWVzc2FnZXM6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuX2xvZ0xldmVsIDw9IGxvZ0xldmVsKSB7XG4gICAgICBjb25zdCBtc2dzID0gW1xuICAgICAgICBgJHtMb2dMZXZlbExhYmVsc1tsb2dMZXZlbF19XFx0WyR7dGhpcy5fbW9kdWxlTmFtZX1dIGAsXG4gICAgICAgIC4uLm1lc3NhZ2VzLFxuICAgICAgXTtcbiAgICAgIGlmIChsb2dMZXZlbCA8IExvZ0xldmVscy5FUlJPUikge1xuICAgICAgICBjb25zb2xlLmxvZyguLi5tc2dzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKC4uLm1zZ3MpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkZWJ1ZyguLi5tZXNzYWdlczogYW55W10pIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbHMuREVCVUcsIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIGluZm8oLi4ubWVzc2FnZXM6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWxzLklORk8sIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIHdhcm4oLi4ubWVzc2FnZXM6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWxzLldBUk4sIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIGVycm9yKC4uLm1lc3NhZ2VzOiBhbnlbXSkge1xuICAgIHRoaXMubG9nKExvZ0xldmVscy5FUlJPUiwgLi4ubWVzc2FnZXMpO1xuICB9XG5cbiAgZmF0YWwoLi4ubWVzc2FnZXM6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWxzLkZBVEFMLCAuLi5tZXNzYWdlcyk7XG4gIH1cbn1cblxuY29uc3QgbG9nZ2VyczogeyBbbmFtZTogc3RyaW5nXTogTG9nZ2VyIH0gPSB7fTtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VyKG1vZHVsZU5hbWU6IHN0cmluZykge1xuICBjb25zdCBsb2dnZXIgPSBsb2dnZXJzW21vZHVsZU5hbWVdIHx8IG5ldyBMb2dnZXIobW9kdWxlTmFtZSk7XG4gIGxvZ2dlcnNbbW9kdWxlTmFtZV0gPSBsb2dnZXI7XG4gIHJldHVybiBsb2dnZXI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1BLFNBQXNDLEdBQUc7RUFDcERDLEtBQUssRUFBRSxDQUFDO0VBQ1JDLElBQUksRUFBRSxDQUFDO0VBQ1BDLElBQUksRUFBRSxDQUFDO0VBQ1BDLEtBQUssRUFBRSxDQUFDO0VBQ1JDLEtBQUssRUFBRSxDQUFDO0VBQ1JDLElBQUksRUFBRTtBQUNSLENBQUM7QUFFRCxJQUFNQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUM7QUFFOUUsSUFBTUMsb0JBQW9CLEdBQUksWUFBTTtFQUNsQyxJQUFNQyxpQkFBaUIsR0FDckJDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxpQkFBaUIsSUFDNUJDLE1BQU0sQ0FBU0MscUJBQXFCLElBQ3JDLE1BQU07RUFDUixJQUFJLHVDQUF1QyxDQUFDQyxJQUFJLENBQUNOLGlCQUFpQixDQUFDLEVBQUU7SUFDbkUsT0FBTztNQUFFLEdBQUcsRUFBRUE7SUFBa0IsQ0FBQztFQUNuQztFQUNBLElBQUk7SUFDRixPQUFPTyxJQUFJLENBQUNDLEtBQUssQ0FBQ1IsaUJBQWlCLENBQUM7RUFDdEMsQ0FBQyxDQUFDLE9BQU9TLENBQUMsRUFBRTtJQUNWLE9BQU87TUFBRSxHQUFHLEVBQUU7SUFBTyxDQUFDO0VBQ3hCO0FBQ0YsQ0FBQyxDQUFFLENBQUM7QUFPSixTQUFTQyxpQkFBaUJBLENBQ3hCQyxjQUFtRCxFQUNuREMsVUFBa0IsRUFDbEI7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