mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 12:32:08 +02:00
Merge branch 'MDL-81659' of https://github.com/paulholden/moodle
This commit is contained in:
commit
414c640655
2
lib/amd/build/loglevel.min.js
vendored
2
lib/amd/build/loglevel.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -26,7 +26,12 @@
|
||||
// Copy loglevel.js into lib/amd/src/ in Moodle folder.
|
||||
// Add the license as a comment to the file and these instructions.
|
||||
|
||||
/*! loglevel - v1.8.1 - https://github.com/pimterry/loglevel - (c) 2022 Tim Perry - licensed MIT */
|
||||
/*
|
||||
* loglevel - https://github.com/pimterry/loglevel
|
||||
*
|
||||
* Copyright (c) 2013 Tim Perry
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
(function (root, definition) {
|
||||
"use strict";
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
@ -54,6 +59,9 @@
|
||||
"error"
|
||||
];
|
||||
|
||||
var _loggersByName = {};
|
||||
var defaultLogger = null;
|
||||
|
||||
// Cross-browser bind equivalent that works at least back to IE6
|
||||
function bindMethod(obj, methodName) {
|
||||
var method = obj[methodName];
|
||||
@ -106,25 +114,33 @@
|
||||
|
||||
// These private functions always need `this` to be set properly
|
||||
|
||||
function replaceLoggingMethods(level, loggerName) {
|
||||
function replaceLoggingMethods() {
|
||||
/*jshint validthis:true */
|
||||
var level = this.getLevel();
|
||||
|
||||
// Replace the actual methods.
|
||||
for (var i = 0; i < logMethods.length; i++) {
|
||||
var methodName = logMethods[i];
|
||||
this[methodName] = (i < level) ?
|
||||
noop :
|
||||
this.methodFactory(methodName, level, loggerName);
|
||||
this.methodFactory(methodName, level, this.name);
|
||||
}
|
||||
|
||||
// Define log.log as an alias for log.debug
|
||||
this.log = this.debug;
|
||||
|
||||
// Return any important warnings.
|
||||
if (typeof console === undefinedType && level < this.levels.SILENT) {
|
||||
return "No console available for logging";
|
||||
}
|
||||
}
|
||||
|
||||
// In old IE versions, the console isn't present until you first open it.
|
||||
// We build realMethod() replacements here that regenerate logging methods
|
||||
function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {
|
||||
function enableLoggingWhenConsoleArrives(methodName) {
|
||||
return function () {
|
||||
if (typeof console !== undefinedType) {
|
||||
replaceLoggingMethods.call(this, level, loggerName);
|
||||
replaceLoggingMethods.call(this);
|
||||
this[methodName].apply(this, arguments);
|
||||
}
|
||||
};
|
||||
@ -132,16 +148,36 @@
|
||||
|
||||
// By default, we use closely bound real methods wherever possible, and
|
||||
// otherwise we wait for a console to appear, and then try again.
|
||||
function defaultMethodFactory(methodName, level, loggerName) {
|
||||
function defaultMethodFactory(methodName, _level, _loggerName) {
|
||||
/*jshint validthis:true */
|
||||
return realMethod(methodName) ||
|
||||
enableLoggingWhenConsoleArrives.apply(this, arguments);
|
||||
}
|
||||
|
||||
function Logger(name, defaultLevel, factory) {
|
||||
function Logger(name, factory) {
|
||||
// Private instance variables.
|
||||
var self = this;
|
||||
var currentLevel;
|
||||
defaultLevel = defaultLevel == null ? "WARN" : defaultLevel;
|
||||
/**
|
||||
* The level inherited from a parent logger (or a global default). We
|
||||
* cache this here rather than delegating to the parent so that it stays
|
||||
* in sync with the actual logging methods that we have installed (the
|
||||
* parent could change levels but we might not have rebuilt the loggers
|
||||
* in this child yet).
|
||||
* @type {number}
|
||||
*/
|
||||
var inheritedLevel;
|
||||
/**
|
||||
* The default level for this logger, if any. If set, this overrides
|
||||
* `inheritedLevel`.
|
||||
* @type {number|null}
|
||||
*/
|
||||
var defaultLevel;
|
||||
/**
|
||||
* A user-specific level for this logger. If set, this overrides
|
||||
* `defaultLevel`.
|
||||
* @type {number|null}
|
||||
*/
|
||||
var userLevel;
|
||||
|
||||
var storageKey = "loglevel";
|
||||
if (typeof name === "string") {
|
||||
@ -181,10 +217,12 @@
|
||||
if (typeof storedLevel === undefinedType) {
|
||||
try {
|
||||
var cookie = window.document.cookie;
|
||||
var location = cookie.indexOf(
|
||||
encodeURIComponent(storageKey) + "=");
|
||||
var cookieName = encodeURIComponent(storageKey);
|
||||
var location = cookie.indexOf(cookieName + "=");
|
||||
if (location !== -1) {
|
||||
storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];
|
||||
storedLevel = /^([^;]+)/.exec(
|
||||
cookie.slice(location + cookieName.length + 1)
|
||||
)[1];
|
||||
}
|
||||
} catch (ignore) {}
|
||||
}
|
||||
@ -203,7 +241,6 @@
|
||||
// Use localStorage if available
|
||||
try {
|
||||
window.localStorage.removeItem(storageKey);
|
||||
return;
|
||||
} catch (ignore) {}
|
||||
|
||||
// Use session cookie as fallback
|
||||
@ -213,6 +250,18 @@
|
||||
} catch (ignore) {}
|
||||
}
|
||||
|
||||
function normalizeLevel(input) {
|
||||
var level = input;
|
||||
if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
|
||||
level = self.levels[level.toUpperCase()];
|
||||
}
|
||||
if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) {
|
||||
return level;
|
||||
} else {
|
||||
throw new TypeError("log.setLevel() called with invalid level: " + input);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* Public logger API - see https://github.com/pimterry/loglevel for details
|
||||
@ -227,37 +276,36 @@
|
||||
self.methodFactory = factory || defaultMethodFactory;
|
||||
|
||||
self.getLevel = function () {
|
||||
return currentLevel;
|
||||
if (userLevel != null) {
|
||||
return userLevel;
|
||||
} else if (defaultLevel != null) {
|
||||
return defaultLevel;
|
||||
} else {
|
||||
return inheritedLevel;
|
||||
}
|
||||
};
|
||||
|
||||
self.setLevel = function (level, persist) {
|
||||
if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
|
||||
level = self.levels[level.toUpperCase()];
|
||||
}
|
||||
if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) {
|
||||
currentLevel = level;
|
||||
if (persist !== false) { // defaults to true
|
||||
persistLevelIfPossible(level);
|
||||
}
|
||||
replaceLoggingMethods.call(self, level, name);
|
||||
if (typeof console === undefinedType && level < self.levels.SILENT) {
|
||||
return "No console available for logging";
|
||||
}
|
||||
} else {
|
||||
throw "log.setLevel() called with invalid level: " + level;
|
||||
userLevel = normalizeLevel(level);
|
||||
if (persist !== false) { // defaults to true
|
||||
persistLevelIfPossible(userLevel);
|
||||
}
|
||||
|
||||
// NOTE: in v2, this should call rebuild(), which updates children.
|
||||
return replaceLoggingMethods.call(self);
|
||||
};
|
||||
|
||||
self.setDefaultLevel = function (level) {
|
||||
defaultLevel = level;
|
||||
defaultLevel = normalizeLevel(level);
|
||||
if (!getPersistedLevel()) {
|
||||
self.setLevel(level, false);
|
||||
}
|
||||
};
|
||||
|
||||
self.resetLevel = function () {
|
||||
self.setLevel(defaultLevel, false);
|
||||
userLevel = null;
|
||||
clearPersistedLevel();
|
||||
replaceLoggingMethods.call(self);
|
||||
};
|
||||
|
||||
self.enableAll = function(persist) {
|
||||
@ -268,12 +316,28 @@
|
||||
self.setLevel(self.levels.SILENT, persist);
|
||||
};
|
||||
|
||||
// Initialize with the right level
|
||||
self.rebuild = function () {
|
||||
if (defaultLogger !== self) {
|
||||
inheritedLevel = normalizeLevel(defaultLogger.getLevel());
|
||||
}
|
||||
replaceLoggingMethods.call(self);
|
||||
|
||||
if (defaultLogger === self) {
|
||||
for (var childName in _loggersByName) {
|
||||
_loggersByName[childName].rebuild();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Initialize all the internal levels.
|
||||
inheritedLevel = normalizeLevel(
|
||||
defaultLogger ? defaultLogger.getLevel() : "WARN"
|
||||
);
|
||||
var initialLevel = getPersistedLevel();
|
||||
if (initialLevel == null) {
|
||||
initialLevel = defaultLevel;
|
||||
if (initialLevel != null) {
|
||||
userLevel = normalizeLevel(initialLevel);
|
||||
}
|
||||
self.setLevel(initialLevel, false);
|
||||
replaceLoggingMethods.call(self);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -282,18 +346,19 @@
|
||||
*
|
||||
*/
|
||||
|
||||
var defaultLogger = new Logger();
|
||||
defaultLogger = new Logger();
|
||||
|
||||
var _loggersByName = {};
|
||||
defaultLogger.getLogger = function getLogger(name) {
|
||||
if ((typeof name !== "symbol" && typeof name !== "string") || name === "") {
|
||||
throw new TypeError("You must supply a name when creating a logger.");
|
||||
throw new TypeError("You must supply a name when creating a logger.");
|
||||
}
|
||||
|
||||
var logger = _loggersByName[name];
|
||||
if (!logger) {
|
||||
logger = _loggersByName[name] = new Logger(
|
||||
name, defaultLogger.getLevel(), defaultLogger.methodFactory);
|
||||
logger = _loggersByName[name] = new Logger(
|
||||
name,
|
||||
defaultLogger.methodFactory
|
||||
);
|
||||
}
|
||||
return logger;
|
||||
};
|
||||
|
@ -285,7 +285,7 @@ All rights reserved.</copyright>
|
||||
<location>amd/src/loglevel.js</location>
|
||||
<name>loglevel.js</name>
|
||||
<description>Minimal lightweight simple logging for JavaScript.</description>
|
||||
<version>1.8.1</version>
|
||||
<version>1.9.1</version>
|
||||
<license>MIT</license>
|
||||
<repository>https://github.com/pimterry/loglevel/</repository>
|
||||
<copyrights>
|
||||
|
Loading…
x
Reference in New Issue
Block a user