@firebase/logger 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +74 -121
- package/dist/index.cjs.js.map +1 -1
- package/package.json +7 -5
- package/dist/esm/index.esm5.js +0 -266
- package/dist/esm/index.esm5.js.map +0 -1
package/dist/index.cjs.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib = require('tslib');
|
|
6
|
-
|
|
7
5
|
/**
|
|
8
6
|
* @license
|
|
9
7
|
* Copyright 2017 Google LLC
|
|
@@ -20,11 +18,10 @@ var tslib = require('tslib');
|
|
|
20
18
|
* See the License for the specific language governing permissions and
|
|
21
19
|
* limitations under the License.
|
|
22
20
|
*/
|
|
23
|
-
var _a;
|
|
24
21
|
/**
|
|
25
22
|
* A container for all of the Logger instances
|
|
26
23
|
*/
|
|
27
|
-
|
|
24
|
+
const instances = [];
|
|
28
25
|
/**
|
|
29
26
|
* The JS SDK supports 5 log levels and also allows a user the ability to
|
|
30
27
|
* silence the logs altogether.
|
|
@@ -45,7 +42,7 @@ exports.LogLevel = void 0;
|
|
|
45
42
|
LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
|
|
46
43
|
LogLevel[LogLevel["SILENT"] = 5] = "SILENT";
|
|
47
44
|
})(exports.LogLevel || (exports.LogLevel = {}));
|
|
48
|
-
|
|
45
|
+
const levelStringToEnum = {
|
|
49
46
|
'debug': exports.LogLevel.DEBUG,
|
|
50
47
|
'verbose': exports.LogLevel.VERBOSE,
|
|
51
48
|
'info': exports.LogLevel.INFO,
|
|
@@ -56,50 +53,46 @@ var levelStringToEnum = {
|
|
|
56
53
|
/**
|
|
57
54
|
* The default log level
|
|
58
55
|
*/
|
|
59
|
-
|
|
56
|
+
const defaultLogLevel = exports.LogLevel.INFO;
|
|
60
57
|
/**
|
|
61
58
|
* By default, `console.debug` is not displayed in the developer console (in
|
|
62
59
|
* chrome). To avoid forcing users to have to opt-in to these logs twice
|
|
63
60
|
* (i.e. once for firebase, and once in the console), we are sending `DEBUG`
|
|
64
61
|
* logs to the `console.log` function.
|
|
65
62
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
const ConsoleMethod = {
|
|
64
|
+
[exports.LogLevel.DEBUG]: 'log',
|
|
65
|
+
[exports.LogLevel.VERBOSE]: 'log',
|
|
66
|
+
[exports.LogLevel.INFO]: 'info',
|
|
67
|
+
[exports.LogLevel.WARN]: 'warn',
|
|
68
|
+
[exports.LogLevel.ERROR]: 'error'
|
|
69
|
+
};
|
|
73
70
|
/**
|
|
74
71
|
* The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR
|
|
75
72
|
* messages on to their corresponding console counterparts (if the log method
|
|
76
73
|
* is supported by the current log level)
|
|
77
74
|
*/
|
|
78
|
-
|
|
79
|
-
var args = [];
|
|
80
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
81
|
-
args[_i - 2] = arguments[_i];
|
|
82
|
-
}
|
|
75
|
+
const defaultLogHandler = (instance, logType, ...args) => {
|
|
83
76
|
if (logType < instance.logLevel) {
|
|
84
77
|
return;
|
|
85
78
|
}
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
const now = new Date().toISOString();
|
|
80
|
+
const method = ConsoleMethod[logType];
|
|
88
81
|
if (method) {
|
|
89
|
-
console[method]
|
|
82
|
+
console[method](`[${now}] ${instance.name}:`, ...args);
|
|
90
83
|
}
|
|
91
84
|
else {
|
|
92
|
-
throw new Error(
|
|
85
|
+
throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);
|
|
93
86
|
}
|
|
94
87
|
};
|
|
95
|
-
|
|
88
|
+
class Logger {
|
|
96
89
|
/**
|
|
97
90
|
* Gives you an instance of a Logger to capture messages according to
|
|
98
91
|
* Firebase's logging scheme.
|
|
99
92
|
*
|
|
100
93
|
* @param name The name that the logs will be associated with
|
|
101
94
|
*/
|
|
102
|
-
|
|
95
|
+
constructor(name) {
|
|
103
96
|
this.name = name;
|
|
104
97
|
/**
|
|
105
98
|
* The log level of the given Logger instance.
|
|
@@ -119,99 +112,67 @@ var Logger = /** @class */ (function () {
|
|
|
119
112
|
*/
|
|
120
113
|
instances.push(this);
|
|
121
114
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
},
|
|
132
|
-
enumerable: false,
|
|
133
|
-
configurable: true
|
|
134
|
-
});
|
|
115
|
+
get logLevel() {
|
|
116
|
+
return this._logLevel;
|
|
117
|
+
}
|
|
118
|
+
set logLevel(val) {
|
|
119
|
+
if (!(val in exports.LogLevel)) {
|
|
120
|
+
throw new TypeError(`Invalid value "${val}" assigned to \`logLevel\``);
|
|
121
|
+
}
|
|
122
|
+
this._logLevel = val;
|
|
123
|
+
}
|
|
135
124
|
// Workaround for setter/getter having to be the same type.
|
|
136
|
-
|
|
125
|
+
setLogLevel(val) {
|
|
137
126
|
this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return this._userLogHandler;
|
|
155
|
-
},
|
|
156
|
-
set: function (val) {
|
|
157
|
-
this._userLogHandler = val;
|
|
158
|
-
},
|
|
159
|
-
enumerable: false,
|
|
160
|
-
configurable: true
|
|
161
|
-
});
|
|
127
|
+
}
|
|
128
|
+
get logHandler() {
|
|
129
|
+
return this._logHandler;
|
|
130
|
+
}
|
|
131
|
+
set logHandler(val) {
|
|
132
|
+
if (typeof val !== 'function') {
|
|
133
|
+
throw new TypeError('Value assigned to `logHandler` must be a function');
|
|
134
|
+
}
|
|
135
|
+
this._logHandler = val;
|
|
136
|
+
}
|
|
137
|
+
get userLogHandler() {
|
|
138
|
+
return this._userLogHandler;
|
|
139
|
+
}
|
|
140
|
+
set userLogHandler(val) {
|
|
141
|
+
this._userLogHandler = val;
|
|
142
|
+
}
|
|
162
143
|
/**
|
|
163
144
|
* The functions below are all based on the `console` interface
|
|
164
145
|
*/
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
this._userLogHandler &&
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
this.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
this._logHandler.apply(this, tslib.__spreadArray([this, exports.LogLevel.INFO], args, false));
|
|
188
|
-
};
|
|
189
|
-
Logger.prototype.warn = function () {
|
|
190
|
-
var args = [];
|
|
191
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
192
|
-
args[_i] = arguments[_i];
|
|
193
|
-
}
|
|
194
|
-
this._userLogHandler && this._userLogHandler.apply(this, tslib.__spreadArray([this, exports.LogLevel.WARN], args, false));
|
|
195
|
-
this._logHandler.apply(this, tslib.__spreadArray([this, exports.LogLevel.WARN], args, false));
|
|
196
|
-
};
|
|
197
|
-
Logger.prototype.error = function () {
|
|
198
|
-
var args = [];
|
|
199
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
200
|
-
args[_i] = arguments[_i];
|
|
201
|
-
}
|
|
202
|
-
this._userLogHandler && this._userLogHandler.apply(this, tslib.__spreadArray([this, exports.LogLevel.ERROR], args, false));
|
|
203
|
-
this._logHandler.apply(this, tslib.__spreadArray([this, exports.LogLevel.ERROR], args, false));
|
|
204
|
-
};
|
|
205
|
-
return Logger;
|
|
206
|
-
}());
|
|
146
|
+
debug(...args) {
|
|
147
|
+
this._userLogHandler && this._userLogHandler(this, exports.LogLevel.DEBUG, ...args);
|
|
148
|
+
this._logHandler(this, exports.LogLevel.DEBUG, ...args);
|
|
149
|
+
}
|
|
150
|
+
log(...args) {
|
|
151
|
+
this._userLogHandler &&
|
|
152
|
+
this._userLogHandler(this, exports.LogLevel.VERBOSE, ...args);
|
|
153
|
+
this._logHandler(this, exports.LogLevel.VERBOSE, ...args);
|
|
154
|
+
}
|
|
155
|
+
info(...args) {
|
|
156
|
+
this._userLogHandler && this._userLogHandler(this, exports.LogLevel.INFO, ...args);
|
|
157
|
+
this._logHandler(this, exports.LogLevel.INFO, ...args);
|
|
158
|
+
}
|
|
159
|
+
warn(...args) {
|
|
160
|
+
this._userLogHandler && this._userLogHandler(this, exports.LogLevel.WARN, ...args);
|
|
161
|
+
this._logHandler(this, exports.LogLevel.WARN, ...args);
|
|
162
|
+
}
|
|
163
|
+
error(...args) {
|
|
164
|
+
this._userLogHandler && this._userLogHandler(this, exports.LogLevel.ERROR, ...args);
|
|
165
|
+
this._logHandler(this, exports.LogLevel.ERROR, ...args);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
207
168
|
function setLogLevel(level) {
|
|
208
|
-
instances.forEach(
|
|
169
|
+
instances.forEach(inst => {
|
|
209
170
|
inst.setLogLevel(level);
|
|
210
171
|
});
|
|
211
172
|
}
|
|
212
173
|
function setUserLogHandler(logCallback, options) {
|
|
213
|
-
|
|
214
|
-
|
|
174
|
+
for (const instance of instances) {
|
|
175
|
+
let customLogLevel = null;
|
|
215
176
|
if (options && options.level) {
|
|
216
177
|
customLogLevel = levelStringToEnum[options.level];
|
|
217
178
|
}
|
|
@@ -219,13 +180,9 @@ function setUserLogHandler(logCallback, options) {
|
|
|
219
180
|
instance.userLogHandler = null;
|
|
220
181
|
}
|
|
221
182
|
else {
|
|
222
|
-
instance.userLogHandler =
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
args[_i - 2] = arguments[_i];
|
|
226
|
-
}
|
|
227
|
-
var message = args
|
|
228
|
-
.map(function (arg) {
|
|
183
|
+
instance.userLogHandler = (instance, level, ...args) => {
|
|
184
|
+
const message = args
|
|
185
|
+
.map(arg => {
|
|
229
186
|
if (arg == null) {
|
|
230
187
|
return null;
|
|
231
188
|
}
|
|
@@ -247,22 +204,18 @@ function setUserLogHandler(logCallback, options) {
|
|
|
247
204
|
}
|
|
248
205
|
}
|
|
249
206
|
})
|
|
250
|
-
.filter(
|
|
207
|
+
.filter(arg => arg)
|
|
251
208
|
.join(' ');
|
|
252
209
|
if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {
|
|
253
210
|
logCallback({
|
|
254
211
|
level: exports.LogLevel[level].toLowerCase(),
|
|
255
|
-
message
|
|
256
|
-
args
|
|
212
|
+
message,
|
|
213
|
+
args,
|
|
257
214
|
type: instance.name
|
|
258
215
|
});
|
|
259
216
|
}
|
|
260
217
|
};
|
|
261
218
|
}
|
|
262
|
-
};
|
|
263
|
-
for (var _i = 0, instances_1 = instances; _i < instances_1.length; _i++) {
|
|
264
|
-
var instance = instances_1[_i];
|
|
265
|
-
_loop_1(instance);
|
|
266
219
|
}
|
|
267
220
|
}
|
|
268
221
|
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/logger.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n"],"names":["LogLevel","__spreadArray"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/logger.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n"],"names":["LogLevel"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firebase/logger",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "A logger package for use in the Firebase JS SDK",
|
|
5
5
|
"author": "Firebase <firebase-support@google.com> (https://firebase.google.com/)",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
7
7
|
"module": "dist/esm/index.esm2017.js",
|
|
8
|
-
"esm5": "dist/esm/index.esm5.js",
|
|
9
8
|
"exports": {
|
|
10
9
|
".": {
|
|
11
10
|
"types": "./dist/index.d.ts",
|
|
12
11
|
"require": "./dist/index.cjs.js",
|
|
13
|
-
"esm5": "./dist/esm/index.esm5.js",
|
|
14
12
|
"default": "./dist/esm/index.esm2017.js"
|
|
15
13
|
},
|
|
16
14
|
"./package.json": "./package.json"
|
|
@@ -27,9 +25,10 @@
|
|
|
27
25
|
"test": "run-p --npm-path npm lint test:all",
|
|
28
26
|
"test:ci": "node ../../scripts/run_tests_in_ci.js -s test:all",
|
|
29
27
|
"test:all": "run-p --npm-path npm test:browser test:node",
|
|
30
|
-
"test:browser": "karma start
|
|
28
|
+
"test:browser": "karma start",
|
|
31
29
|
"test:browser:debug": "karma start --browsers Chrome --auto-watch",
|
|
32
|
-
"test:node": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' nyc --reporter lcovonly -- mocha test/**/*.test.* --config ../../config/mocharc.node.js"
|
|
30
|
+
"test:node": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' nyc --reporter lcovonly -- mocha test/**/*.test.* --config ../../config/mocharc.node.js",
|
|
31
|
+
"trusted-type-check": "tsec -p tsconfig.json --noEmit"
|
|
33
32
|
},
|
|
34
33
|
"license": "Apache-2.0",
|
|
35
34
|
"dependencies": {
|
|
@@ -54,5 +53,8 @@
|
|
|
54
53
|
".ts"
|
|
55
54
|
],
|
|
56
55
|
"reportDir": "./coverage/node"
|
|
56
|
+
},
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=18.0.0"
|
|
57
59
|
}
|
|
58
60
|
}
|
package/dist/esm/index.esm5.js
DELETED
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
import { __spreadArray } from 'tslib';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @license
|
|
5
|
-
* Copyright 2017 Google LLC
|
|
6
|
-
*
|
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
* you may not use this file except in compliance with the License.
|
|
9
|
-
* You may obtain a copy of the License at
|
|
10
|
-
*
|
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
*
|
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
* See the License for the specific language governing permissions and
|
|
17
|
-
* limitations under the License.
|
|
18
|
-
*/
|
|
19
|
-
var _a;
|
|
20
|
-
/**
|
|
21
|
-
* A container for all of the Logger instances
|
|
22
|
-
*/
|
|
23
|
-
var instances = [];
|
|
24
|
-
/**
|
|
25
|
-
* The JS SDK supports 5 log levels and also allows a user the ability to
|
|
26
|
-
* silence the logs altogether.
|
|
27
|
-
*
|
|
28
|
-
* The order is a follows:
|
|
29
|
-
* DEBUG < VERBOSE < INFO < WARN < ERROR
|
|
30
|
-
*
|
|
31
|
-
* All of the log types above the current log level will be captured (i.e. if
|
|
32
|
-
* you set the log level to `INFO`, errors will still be logged, but `DEBUG` and
|
|
33
|
-
* `VERBOSE` logs will not)
|
|
34
|
-
*/
|
|
35
|
-
var LogLevel;
|
|
36
|
-
(function (LogLevel) {
|
|
37
|
-
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
38
|
-
LogLevel[LogLevel["VERBOSE"] = 1] = "VERBOSE";
|
|
39
|
-
LogLevel[LogLevel["INFO"] = 2] = "INFO";
|
|
40
|
-
LogLevel[LogLevel["WARN"] = 3] = "WARN";
|
|
41
|
-
LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
|
|
42
|
-
LogLevel[LogLevel["SILENT"] = 5] = "SILENT";
|
|
43
|
-
})(LogLevel || (LogLevel = {}));
|
|
44
|
-
var levelStringToEnum = {
|
|
45
|
-
'debug': LogLevel.DEBUG,
|
|
46
|
-
'verbose': LogLevel.VERBOSE,
|
|
47
|
-
'info': LogLevel.INFO,
|
|
48
|
-
'warn': LogLevel.WARN,
|
|
49
|
-
'error': LogLevel.ERROR,
|
|
50
|
-
'silent': LogLevel.SILENT
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* The default log level
|
|
54
|
-
*/
|
|
55
|
-
var defaultLogLevel = LogLevel.INFO;
|
|
56
|
-
/**
|
|
57
|
-
* By default, `console.debug` is not displayed in the developer console (in
|
|
58
|
-
* chrome). To avoid forcing users to have to opt-in to these logs twice
|
|
59
|
-
* (i.e. once for firebase, and once in the console), we are sending `DEBUG`
|
|
60
|
-
* logs to the `console.log` function.
|
|
61
|
-
*/
|
|
62
|
-
var ConsoleMethod = (_a = {},
|
|
63
|
-
_a[LogLevel.DEBUG] = 'log',
|
|
64
|
-
_a[LogLevel.VERBOSE] = 'log',
|
|
65
|
-
_a[LogLevel.INFO] = 'info',
|
|
66
|
-
_a[LogLevel.WARN] = 'warn',
|
|
67
|
-
_a[LogLevel.ERROR] = 'error',
|
|
68
|
-
_a);
|
|
69
|
-
/**
|
|
70
|
-
* The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR
|
|
71
|
-
* messages on to their corresponding console counterparts (if the log method
|
|
72
|
-
* is supported by the current log level)
|
|
73
|
-
*/
|
|
74
|
-
var defaultLogHandler = function (instance, logType) {
|
|
75
|
-
var args = [];
|
|
76
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
77
|
-
args[_i - 2] = arguments[_i];
|
|
78
|
-
}
|
|
79
|
-
if (logType < instance.logLevel) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
var now = new Date().toISOString();
|
|
83
|
-
var method = ConsoleMethod[logType];
|
|
84
|
-
if (method) {
|
|
85
|
-
console[method].apply(console, __spreadArray(["[".concat(now, "] ").concat(instance.name, ":")], args, false));
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
throw new Error("Attempted to log a message with an invalid logType (value: ".concat(logType, ")"));
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
var Logger = /** @class */ (function () {
|
|
92
|
-
/**
|
|
93
|
-
* Gives you an instance of a Logger to capture messages according to
|
|
94
|
-
* Firebase's logging scheme.
|
|
95
|
-
*
|
|
96
|
-
* @param name The name that the logs will be associated with
|
|
97
|
-
*/
|
|
98
|
-
function Logger(name) {
|
|
99
|
-
this.name = name;
|
|
100
|
-
/**
|
|
101
|
-
* The log level of the given Logger instance.
|
|
102
|
-
*/
|
|
103
|
-
this._logLevel = defaultLogLevel;
|
|
104
|
-
/**
|
|
105
|
-
* The main (internal) log handler for the Logger instance.
|
|
106
|
-
* Can be set to a new function in internal package code but not by user.
|
|
107
|
-
*/
|
|
108
|
-
this._logHandler = defaultLogHandler;
|
|
109
|
-
/**
|
|
110
|
-
* The optional, additional, user-defined log handler for the Logger instance.
|
|
111
|
-
*/
|
|
112
|
-
this._userLogHandler = null;
|
|
113
|
-
/**
|
|
114
|
-
* Capture the current instance for later use
|
|
115
|
-
*/
|
|
116
|
-
instances.push(this);
|
|
117
|
-
}
|
|
118
|
-
Object.defineProperty(Logger.prototype, "logLevel", {
|
|
119
|
-
get: function () {
|
|
120
|
-
return this._logLevel;
|
|
121
|
-
},
|
|
122
|
-
set: function (val) {
|
|
123
|
-
if (!(val in LogLevel)) {
|
|
124
|
-
throw new TypeError("Invalid value \"".concat(val, "\" assigned to `logLevel`"));
|
|
125
|
-
}
|
|
126
|
-
this._logLevel = val;
|
|
127
|
-
},
|
|
128
|
-
enumerable: false,
|
|
129
|
-
configurable: true
|
|
130
|
-
});
|
|
131
|
-
// Workaround for setter/getter having to be the same type.
|
|
132
|
-
Logger.prototype.setLogLevel = function (val) {
|
|
133
|
-
this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;
|
|
134
|
-
};
|
|
135
|
-
Object.defineProperty(Logger.prototype, "logHandler", {
|
|
136
|
-
get: function () {
|
|
137
|
-
return this._logHandler;
|
|
138
|
-
},
|
|
139
|
-
set: function (val) {
|
|
140
|
-
if (typeof val !== 'function') {
|
|
141
|
-
throw new TypeError('Value assigned to `logHandler` must be a function');
|
|
142
|
-
}
|
|
143
|
-
this._logHandler = val;
|
|
144
|
-
},
|
|
145
|
-
enumerable: false,
|
|
146
|
-
configurable: true
|
|
147
|
-
});
|
|
148
|
-
Object.defineProperty(Logger.prototype, "userLogHandler", {
|
|
149
|
-
get: function () {
|
|
150
|
-
return this._userLogHandler;
|
|
151
|
-
},
|
|
152
|
-
set: function (val) {
|
|
153
|
-
this._userLogHandler = val;
|
|
154
|
-
},
|
|
155
|
-
enumerable: false,
|
|
156
|
-
configurable: true
|
|
157
|
-
});
|
|
158
|
-
/**
|
|
159
|
-
* The functions below are all based on the `console` interface
|
|
160
|
-
*/
|
|
161
|
-
Logger.prototype.debug = function () {
|
|
162
|
-
var args = [];
|
|
163
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
164
|
-
args[_i] = arguments[_i];
|
|
165
|
-
}
|
|
166
|
-
this._userLogHandler && this._userLogHandler.apply(this, __spreadArray([this, LogLevel.DEBUG], args, false));
|
|
167
|
-
this._logHandler.apply(this, __spreadArray([this, LogLevel.DEBUG], args, false));
|
|
168
|
-
};
|
|
169
|
-
Logger.prototype.log = function () {
|
|
170
|
-
var args = [];
|
|
171
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
172
|
-
args[_i] = arguments[_i];
|
|
173
|
-
}
|
|
174
|
-
this._userLogHandler && this._userLogHandler.apply(this, __spreadArray([this, LogLevel.VERBOSE], args, false));
|
|
175
|
-
this._logHandler.apply(this, __spreadArray([this, LogLevel.VERBOSE], args, false));
|
|
176
|
-
};
|
|
177
|
-
Logger.prototype.info = function () {
|
|
178
|
-
var args = [];
|
|
179
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
180
|
-
args[_i] = arguments[_i];
|
|
181
|
-
}
|
|
182
|
-
this._userLogHandler && this._userLogHandler.apply(this, __spreadArray([this, LogLevel.INFO], args, false));
|
|
183
|
-
this._logHandler.apply(this, __spreadArray([this, LogLevel.INFO], args, false));
|
|
184
|
-
};
|
|
185
|
-
Logger.prototype.warn = function () {
|
|
186
|
-
var args = [];
|
|
187
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
188
|
-
args[_i] = arguments[_i];
|
|
189
|
-
}
|
|
190
|
-
this._userLogHandler && this._userLogHandler.apply(this, __spreadArray([this, LogLevel.WARN], args, false));
|
|
191
|
-
this._logHandler.apply(this, __spreadArray([this, LogLevel.WARN], args, false));
|
|
192
|
-
};
|
|
193
|
-
Logger.prototype.error = function () {
|
|
194
|
-
var args = [];
|
|
195
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
196
|
-
args[_i] = arguments[_i];
|
|
197
|
-
}
|
|
198
|
-
this._userLogHandler && this._userLogHandler.apply(this, __spreadArray([this, LogLevel.ERROR], args, false));
|
|
199
|
-
this._logHandler.apply(this, __spreadArray([this, LogLevel.ERROR], args, false));
|
|
200
|
-
};
|
|
201
|
-
return Logger;
|
|
202
|
-
}());
|
|
203
|
-
function setLogLevel(level) {
|
|
204
|
-
instances.forEach(function (inst) {
|
|
205
|
-
inst.setLogLevel(level);
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
function setUserLogHandler(logCallback, options) {
|
|
209
|
-
var _loop_1 = function (instance) {
|
|
210
|
-
var customLogLevel = null;
|
|
211
|
-
if (options && options.level) {
|
|
212
|
-
customLogLevel = levelStringToEnum[options.level];
|
|
213
|
-
}
|
|
214
|
-
if (logCallback === null) {
|
|
215
|
-
instance.userLogHandler = null;
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
instance.userLogHandler = function (instance, level) {
|
|
219
|
-
var args = [];
|
|
220
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
221
|
-
args[_i - 2] = arguments[_i];
|
|
222
|
-
}
|
|
223
|
-
var message = args
|
|
224
|
-
.map(function (arg) {
|
|
225
|
-
if (arg == null) {
|
|
226
|
-
return null;
|
|
227
|
-
}
|
|
228
|
-
else if (typeof arg === 'string') {
|
|
229
|
-
return arg;
|
|
230
|
-
}
|
|
231
|
-
else if (typeof arg === 'number' || typeof arg === 'boolean') {
|
|
232
|
-
return arg.toString();
|
|
233
|
-
}
|
|
234
|
-
else if (arg instanceof Error) {
|
|
235
|
-
return arg.message;
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
try {
|
|
239
|
-
return JSON.stringify(arg);
|
|
240
|
-
}
|
|
241
|
-
catch (ignored) {
|
|
242
|
-
return null;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
})
|
|
246
|
-
.filter(function (arg) { return arg; })
|
|
247
|
-
.join(' ');
|
|
248
|
-
if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {
|
|
249
|
-
logCallback({
|
|
250
|
-
level: LogLevel[level].toLowerCase(),
|
|
251
|
-
message: message,
|
|
252
|
-
args: args,
|
|
253
|
-
type: instance.name
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
for (var _i = 0, instances_1 = instances; _i < instances_1.length; _i++) {
|
|
260
|
-
var instance = instances_1[_i];
|
|
261
|
-
_loop_1(instance);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
export { LogLevel, Logger, setLogLevel, setUserLogHandler };
|
|
266
|
-
//# sourceMappingURL=index.esm5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm5.js","sources":["../../src/logger.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n"],"names":[],"mappings":"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"}
|