Skip to content

Commit a36fd7f

Browse files
committed
Remove source for now
1 parent 1f5227e commit a36fd7f

File tree

4 files changed

+62
-44
lines changed

4 files changed

+62
-44
lines changed

packages/app-types/index.d.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { FirebaseService } from './private';
2-
31
/**
42
* @license
53
* Copyright 2017 Google Inc.
@@ -48,7 +46,7 @@ export interface LogOptions {
4846
export type LogCallback = (callbackParams: {
4947
level: LogLevelString;
5048
message: string;
51-
source: FirebaseService | FirebaseApp;
49+
args: unknown[];
5250
type: string;
5351
}) => void;
5452

packages/app/src/firebaseNamespaceCore.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import { FirebaseAppLiteImpl } from './lite/firebaseAppLite';
3434
import { DEFAULT_ENTRY_NAME, PLATFORM_LOG_STRING } from './constants';
3535
import { version } from '../../firebase/package.json';
3636
import { logger } from './logger';
37-
import { addLogCallback, setLogLevel } from '@firebase/logger';
37+
import { setUserLogHandler, setLogLevel } from '@firebase/logger';
3838
import { Component, ComponentType, Name } from '@firebase/component';
3939

4040
/**
@@ -62,7 +62,7 @@ export function createFirebaseNamespaceCore(
6262
app,
6363
registerVersion,
6464
setLogLevel,
65-
onLog: addLogCallback,
65+
onLog: setUserLogHandler,
6666
// @ts-ignore
6767
apps: null,
6868
SDK_VERSION: version,

packages/logger/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ export {
2020
Logger,
2121
LogLevel,
2222
LogHandler,
23-
addLogCallback
23+
setUserLogHandler
2424
} from './src/logger';

packages/logger/src/logger.ts

Lines changed: 58 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
import {
19-
LogCallback,
20-
LogLevelString,
21-
FirebaseApp,
22-
LogOptions
23-
} from '@firebase/app-types';
24-
import { FirebaseService } from '@firebase/app-types/private';
18+
import { LogCallback, LogLevelString, LogOptions } from '@firebase/app-types';
2519

2620
/**
2721
* A container for all of the Logger instances
@@ -48,7 +42,7 @@ export enum LogLevel {
4842
SILENT
4943
}
5044

51-
const levelStringToEnum = {
45+
const levelStringToEnum: { [key in LogLevelString]: LogLevel } = {
5246
'debug': LogLevel.DEBUG,
5347
'verbose': LogLevel.VERBOSE,
5448
'info': LogLevel.INFO,
@@ -70,8 +64,6 @@ const defaultLogLevel: LogLevel = LogLevel.INFO;
7064
export type LogHandler = (
7165
loggerInstance: Logger,
7266
logType: LogLevel,
73-
message: string,
74-
source?: FirebaseService | FirebaseApp,
7567
...args: unknown[]
7668
) => void;
7769

@@ -141,7 +133,8 @@ export class Logger {
141133
}
142134

143135
/**
144-
* The log handler for the Logger instance.
136+
* The main (internal) log handler for the Logger instance.
137+
* Can be set to a new function in internal package code but not by user.
145138
*/
146139
private _logHandler: LogHandler = defaultLogHandler;
147140
get logHandler(): LogHandler {
@@ -154,24 +147,41 @@ export class Logger {
154147
this._logHandler = val;
155148
}
156149

150+
/**
151+
* The optional, additional, user-defined log handler for the Logger instance.
152+
*/
153+
private _userLogHandler: LogHandler | null = null;
154+
get userLogHandler(): LogHandler | null {
155+
return this._userLogHandler;
156+
}
157+
set userLogHandler(val: LogHandler | null) {
158+
this._userLogHandler = val;
159+
}
160+
157161
/**
158162
* The functions below are all based on the `console` interface
159163
*/
160164

161-
debug(message: string, source?: FirebaseService | FirebaseApp): void {
162-
this._logHandler(this, LogLevel.DEBUG, message, source);
165+
debug(...args: unknown[]): void {
166+
this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);
167+
this._logHandler(this, LogLevel.DEBUG, ...args);
163168
}
164-
log(message: string, source?: FirebaseService | FirebaseApp): void {
165-
this._logHandler(this, LogLevel.VERBOSE, message, source);
169+
log(...args: unknown[]): void {
170+
this._userLogHandler &&
171+
this._userLogHandler(this, LogLevel.VERBOSE, ...args);
172+
this._logHandler(this, LogLevel.VERBOSE, ...args);
166173
}
167-
info(message: string, source?: FirebaseService | FirebaseApp): void {
168-
this._logHandler(this, LogLevel.INFO, message, source);
174+
info(...args: unknown[]): void {
175+
this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);
176+
this._logHandler(this, LogLevel.INFO, ...args);
169177
}
170-
warn(message: string, source?: FirebaseService | FirebaseApp): void {
171-
this._logHandler(this, LogLevel.WARN, message, source);
178+
warn(...args: unknown[]): void {
179+
this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);
180+
this._logHandler(this, LogLevel.WARN, ...args);
172181
}
173-
error(message: string, source?: FirebaseService | FirebaseApp): void {
174-
this._logHandler(this, LogLevel.ERROR, message, source);
182+
error(...args: unknown[]): void {
183+
this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);
184+
this._logHandler(this, LogLevel.ERROR, ...args);
175185
}
176186
}
177187

@@ -182,28 +192,38 @@ export function setLogLevel(level: LogLevelString | LogLevel): void {
182192
});
183193
}
184194

185-
export function addLogCallback(logCallback: LogCallback, options: LogOptions) {
195+
export function setUserLogHandler(
196+
logCallback: LogCallback | null,
197+
options: LogOptions
198+
) {
199+
if (typeof logCallback !== 'function') {
200+
console.warn('First argument to `onLog` must be a function.');
201+
return;
202+
}
186203
for (const index in instances) {
187204
const instance = instances[index];
188205
let threshhold = instance.logLevel;
189206
if (options && options.level) {
190207
threshhold = levelStringToEnum[options.level];
191208
}
192-
instance.logHandler = (
193-
instance: Logger,
194-
level: LogLevel,
195-
message: string,
196-
source?: FirebaseService | FirebaseApp
197-
) => {
198-
if (level >= threshhold && message && source) {
199-
logCallback({
200-
level: LogLevel[level].toLowerCase() as LogLevelString,
201-
message,
202-
type: instance.name,
203-
source
204-
});
205-
}
206-
defaultLogHandler(instance, level, message);
207-
};
209+
if (logCallback === null) {
210+
instance.userLogHandler = null;
211+
} else {
212+
instance.userLogHandler = (
213+
instance: Logger,
214+
level: LogLevel,
215+
...args: unknown[]
216+
) => {
217+
const message = args.map(arg => (arg as object).toString()).join(' ');
218+
if (level >= threshhold) {
219+
logCallback({
220+
level: LogLevel[level].toLowerCase() as LogLevelString,
221+
message,
222+
args,
223+
type: instance.name
224+
});
225+
}
226+
};
227+
}
208228
}
209229
}

0 commit comments

Comments
 (0)