Skip to content

Commit ae17714

Browse files
update js libs
1 parent 68a400b commit ae17714

File tree

4 files changed

+236
-123
lines changed

4 files changed

+236
-123
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ dist
88
build
99
require_license/tests/static
1010
require_license/tests/media
11+
node_modules/
1112
.coverage
1213
*.pid
1314
doc/_build

require_license/tests/resources/js/libs/jquery.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 143 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
/*! loglevel - v1.2.0 - https://github.com/pimterry/loglevel - (c) 2014 Tim Perry - licensed MIT */
1+
/*! loglevel - v1.4.0 - https://github.com/pimterry/loglevel - (c) 2015 Tim Perry - licensed MIT */
22
(function (root, definition) {
3+
"use strict";
34
if (typeof module === 'object' && module.exports && typeof require === 'function') {
45
module.exports = definition();
56
} else if (typeof define === 'function' && typeof define.amd === 'object') {
@@ -8,7 +9,7 @@
89
root.log = definition();
910
}
1011
}(this, function () {
11-
var self = {};
12+
"use strict";
1213
var noop = function() {};
1314
var undefinedType = "undefined";
1415

@@ -40,113 +41,178 @@
4041
}
4142
}
4243

43-
function enableLoggingWhenConsoleArrives(methodName, level) {
44+
// these private functions always need `this` to be set properly
45+
46+
function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {
4447
return function () {
4548
if (typeof console !== undefinedType) {
46-
replaceLoggingMethods(level);
47-
self[methodName].apply(self, arguments);
49+
replaceLoggingMethods.call(this, level, loggerName);
50+
this[methodName].apply(this, arguments);
4851
}
4952
};
5053
}
5154

52-
var logMethods = [
53-
"trace",
54-
"debug",
55-
"info",
56-
"warn",
57-
"error"
58-
];
59-
60-
function replaceLoggingMethods(level) {
55+
function replaceLoggingMethods(level, loggerName) {
56+
/*jshint validthis:true */
6157
for (var i = 0; i < logMethods.length; i++) {
6258
var methodName = logMethods[i];
63-
self[methodName] = (i < level) ? noop : self.methodFactory(methodName, level);
59+
this[methodName] = (i < level) ?
60+
noop :
61+
this.methodFactory(methodName, level, loggerName);
6462
}
6563
}
6664

67-
function persistLevelIfPossible(levelNum) {
68-
var levelName = (logMethods[levelNum] || 'silent').toUpperCase();
69-
70-
// Use localStorage if available
71-
try {
72-
window.localStorage['loglevel'] = levelName;
73-
return;
74-
} catch (ignore) {}
75-
76-
// Use session cookie as fallback
77-
try {
78-
window.document.cookie = "loglevel=" + levelName + ";";
79-
} catch (ignore) {}
65+
function defaultMethodFactory(methodName, level, loggerName) {
66+
/*jshint validthis:true */
67+
return realMethod(methodName) ||
68+
enableLoggingWhenConsoleArrives.apply(this, arguments);
8069
}
8170

82-
function loadPersistedLevel() {
83-
var storedLevel;
84-
85-
try {
86-
storedLevel = window.localStorage['loglevel'];
87-
} catch (ignore) {}
88-
89-
if (typeof storedLevel === undefinedType) {
90-
try {
91-
storedLevel = /loglevel=([^;]+)/.exec(window.document.cookie)[1];
92-
} catch (ignore) {}
93-
}
94-
95-
if (self.levels[storedLevel] === undefined) {
96-
storedLevel = "WARN";
97-
}
71+
var logMethods = [
72+
"trace",
73+
"debug",
74+
"info",
75+
"warn",
76+
"error"
77+
];
9878

99-
self.setLevel(self.levels[storedLevel]);
79+
function Logger(name, defaultLevel, factory) {
80+
var self = this;
81+
var currentLevel;
82+
var storageKey = "loglevel";
83+
if (name) {
84+
storageKey += ":" + name;
85+
}
86+
87+
function persistLevelIfPossible(levelNum) {
88+
var levelName = (logMethods[levelNum] || 'silent').toUpperCase();
89+
90+
// Use localStorage if available
91+
try {
92+
window.localStorage[storageKey] = levelName;
93+
return;
94+
} catch (ignore) {}
95+
96+
// Use session cookie as fallback
97+
try {
98+
window.document.cookie =
99+
encodeURIComponent(storageKey) + "=" + levelName + ";";
100+
} catch (ignore) {}
101+
}
102+
103+
function getPersistedLevel() {
104+
var storedLevel;
105+
106+
try {
107+
storedLevel = window.localStorage[storageKey];
108+
} catch (ignore) {}
109+
110+
if (typeof storedLevel === undefinedType) {
111+
try {
112+
var cookie = window.document.cookie;
113+
var location = cookie.indexOf(
114+
encodeURIComponent(storageKey) + "=");
115+
if (location) {
116+
storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];
117+
}
118+
} catch (ignore) {}
119+
}
120+
121+
// If the stored level is not valid, treat it as if nothing was stored.
122+
if (self.levels[storedLevel] === undefined) {
123+
storedLevel = undefined;
124+
}
125+
126+
return storedLevel;
127+
}
128+
129+
/*
130+
*
131+
* Public API
132+
*
133+
*/
134+
135+
self.levels = { "TRACE": 0, "DEBUG": 1, "INFO": 2, "WARN": 3,
136+
"ERROR": 4, "SILENT": 5};
137+
138+
self.methodFactory = factory || defaultMethodFactory;
139+
140+
self.getLevel = function () {
141+
return currentLevel;
142+
};
143+
144+
self.setLevel = function (level, persist) {
145+
if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
146+
level = self.levels[level.toUpperCase()];
147+
}
148+
if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) {
149+
currentLevel = level;
150+
if (persist !== false) { // defaults to true
151+
persistLevelIfPossible(level);
152+
}
153+
replaceLoggingMethods.call(self, level, name);
154+
if (typeof console === undefinedType && level < self.levels.SILENT) {
155+
return "No console available for logging";
156+
}
157+
} else {
158+
throw "log.setLevel() called with invalid level: " + level;
159+
}
160+
};
161+
162+
self.setDefaultLevel = function (level) {
163+
if (!getPersistedLevel()) {
164+
self.setLevel(level, false);
165+
}
166+
};
167+
168+
self.enableAll = function(persist) {
169+
self.setLevel(self.levels.TRACE, persist);
170+
};
171+
172+
self.disableAll = function(persist) {
173+
self.setLevel(self.levels.SILENT, persist);
174+
};
175+
176+
// Initialize with the right level
177+
var initialLevel = getPersistedLevel();
178+
if (initialLevel == null) {
179+
initialLevel = defaultLevel == null ? "WARN" : defaultLevel;
180+
}
181+
self.setLevel(initialLevel, false);
100182
}
101183

102184
/*
103185
*
104-
* Public API
186+
* Package-level API
105187
*
106188
*/
107189

108-
self.levels = { "TRACE": 0, "DEBUG": 1, "INFO": 2, "WARN": 3,
109-
"ERROR": 4, "SILENT": 5};
190+
var defaultLogger = new Logger();
110191

111-
self.methodFactory = function (methodName, level) {
112-
return realMethod(methodName) ||
113-
enableLoggingWhenConsoleArrives(methodName, level);
114-
};
115-
116-
self.setLevel = function (level) {
117-
if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
118-
level = self.levels[level.toUpperCase()];
119-
}
120-
if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) {
121-
persistLevelIfPossible(level);
122-
replaceLoggingMethods(level);
123-
if (typeof console === undefinedType && level < self.levels.SILENT) {
124-
return "No console available for logging";
125-
}
126-
} else {
127-
throw "log.setLevel() called with invalid level: " + level;
192+
var _loggersByName = {};
193+
defaultLogger.getLogger = function getLogger(name) {
194+
if (typeof name !== "string" || name === "") {
195+
throw new TypeError("You must supply a name when creating a logger.");
128196
}
129-
};
130-
131-
self.enableAll = function() {
132-
self.setLevel(self.levels.TRACE);
133-
};
134197

135-
self.disableAll = function() {
136-
self.setLevel(self.levels.SILENT);
198+
var logger = _loggersByName[name];
199+
if (!logger) {
200+
logger = _loggersByName[name] = new Logger(
201+
name, defaultLogger.getLevel(), defaultLogger.methodFactory);
202+
}
203+
return logger;
137204
};
138205

139206
// Grab the current global log variable in case of overwrite
140207
var _log = (typeof window !== undefinedType) ? window.log : undefined;
141-
self.noConflict = function() {
208+
defaultLogger.noConflict = function() {
142209
if (typeof window !== undefinedType &&
143-
window.log === self) {
210+
window.log === defaultLogger) {
144211
window.log = _log;
145212
}
146213

147-
return self;
214+
return defaultLogger;
148215
};
149216

150-
loadPersistedLevel();
151-
return self;
217+
return defaultLogger;
152218
}));

0 commit comments

Comments
 (0)