Skip to content

Commit a17f73a

Browse files
committed
Added logger helper methods that wrap js-logger. Removed direct js-logger depedency from web.
1 parent 75c50be commit a17f73a

15 files changed

+81
-36
lines changed

.changeset/giant-moose-crash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@powersync/web': minor
3+
---
4+
5+
Removed `js-logger` dependency, using the logger helper exposed by `@powersync/common`.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@powersync/common': minor
3+
---
4+
5+
Added logger helpers, which can be used instead of the `js-logger` dependency.

packages/common/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export * from './db/DBAdapter.js';
3434
export * from './utils/AbortOperation.js';
3535
export * from './utils/BaseObserver.js';
3636
export * from './utils/DataStream.js';
37+
export * from './utils/Logger.js';
3738
export * from './utils/parseQuery.js';
3839

3940
export * from './types/types.js';
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import Logger, { type ILogger, type ILogLevel } from 'js-logger';
2+
3+
export { GlobalLogger, ILogger, ILoggerOpts, ILogHandler, ILogLevel } from 'js-logger';
4+
5+
const TypedLogger: ILogger = Logger as any;
6+
7+
export const LogLevel = {
8+
TRACE: TypedLogger.TRACE,
9+
DEBUG: TypedLogger.DEBUG,
10+
INFO: TypedLogger.INFO,
11+
TIME: TypedLogger.TIME,
12+
WARN: TypedLogger.WARN,
13+
ERROR: TypedLogger.ERROR,
14+
OFF: TypedLogger.OFF
15+
};
16+
17+
export interface CreateLoggerOptions {
18+
logLevel?: ILogLevel;
19+
}
20+
21+
export function createBaseLogger() {
22+
return Logger;
23+
}
24+
25+
export function createLogger(name: string, options: CreateLoggerOptions = {}): ILogger {
26+
const logger = Logger.get(name);
27+
if (options.logLevel) {
28+
logger.setLevel(options.logLevel);
29+
}
30+
31+
return logger;
32+
}

packages/web/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,7 @@
6868
"async-mutex": "^0.4.0",
6969
"bson": "^6.6.0",
7070
"comlink": "^4.4.2",
71-
"commander": "^12.1.0",
72-
"js-logger": "^1.6.1"
71+
"commander": "^12.1.0"
7372
},
7473
"devDependencies": {
7574
"@journeyapps/wa-sqlite": "^1.2.2",

packages/web/src/db/adapters/AbstractWebSQLOpenFactory.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { DBAdapter, SQLOpenFactory } from '@powersync/common';
2-
import Logger, { ILogger } from 'js-logger';
1+
import { type ILogger, createLogger, DBAdapter, SQLOpenFactory } from '@powersync/common';
32
import { SSRDBAdapter } from './SSRDBAdapter';
43
import { ResolvedWebSQLFlags, WebSQLOpenFactoryOptions, isServerSide, resolveWebSQLFlags } from './web-sql-flags';
54

@@ -9,7 +8,7 @@ export abstract class AbstractWebSQLOpenFactory implements SQLOpenFactory {
98

109
constructor(protected options: WebSQLOpenFactoryOptions) {
1110
this.resolvedFlags = resolveWebSQLFlags(options.flags);
12-
this.logger = options.logger ?? Logger.get(`AbstractWebSQLOpenFactory - ${this.options.dbFilename}`);
11+
this.logger = options.logger ?? createLogger(`AbstractWebSQLOpenFactory - ${this.options.dbFilename}`);
1312
}
1413

1514
/**

packages/web/src/db/adapters/LockedAsyncDatabaseAdapter.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import {
2+
type ILogger,
23
BaseObserver,
4+
createLogger,
35
DBAdapter,
46
DBAdapterListener,
57
DBGetUtils,
@@ -8,7 +10,6 @@ import {
810
QueryResult,
911
Transaction
1012
} from '@powersync/common';
11-
import Logger, { ILogger } from 'js-logger';
1213
import { getNavigatorLocks } from '../..//shared/navigator';
1314
import { AsyncDatabaseConnection } from './AsyncDatabaseConnection';
1415
import { SharedConnectionWorker, WebDBAdapter } from './WebDBAdapter';
@@ -50,7 +51,7 @@ export class LockedAsyncDatabaseAdapter
5051
constructor(protected options: LockedAsyncDatabaseAdapterOptions) {
5152
super();
5253
this._dbIdentifier = options.name;
53-
this.logger = options.logger ?? Logger.get(`LockedAsyncDatabaseAdapter - ${this._dbIdentifier}`);
54+
this.logger = options.logger ?? createLogger(`LockedAsyncDatabaseAdapter - ${this._dbIdentifier}`);
5455
// Set the name if provided. We can query for the name if not available yet
5556
this.debugMode = options.debugMode ?? false;
5657
if (this.debugMode) {

packages/web/src/db/adapters/web-sql-flags.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { SQLOpenOptions } from '@powersync/common';
2-
import { ILogger } from 'js-logger';
1+
import { type ILogger, SQLOpenOptions } from '@powersync/common';
32

43
/**
54
* Common settings used when creating SQL connections on web.

packages/web/src/db/sync/WebRemote.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { type ILogger } from 'js-logger';
2-
31
import {
42
AbstractRemote,
53
AbstractRemoteOptions,
64
BSONImplementation,
75
DEFAULT_REMOTE_LOGGER,
86
FetchImplementation,
97
FetchImplementationProvider,
8+
ILogger,
109
RemoteConnector
1110
} from '@powersync/common';
1211

packages/web/src/worker/sync/BroadcastLogger.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Logger, { type ILogLevel, type ILogger } from 'js-logger';
1+
import { type ILogger, type ILogLevel, LogLevel } from '@powersync/common';
22
import { type WrappedSyncPort } from './SharedSyncImplementation';
33

44
/**
@@ -14,13 +14,13 @@ export class BroadcastLogger implements ILogger {
1414
OFF: ILogLevel;
1515

1616
constructor(protected clients: WrappedSyncPort[]) {
17-
this.TRACE = Logger.TRACE;
18-
this.DEBUG = Logger.DEBUG;
19-
this.INFO = Logger.INFO;
20-
this.TIME = Logger.TIME;
21-
this.WARN = Logger.WARN;
22-
this.ERROR = Logger.ERROR;
23-
this.OFF = Logger.OFF;
17+
this.TRACE = LogLevel.TRACE;
18+
this.DEBUG = LogLevel.DEBUG;
19+
this.INFO = LogLevel.INFO;
20+
this.TIME = LogLevel.TIME;
21+
this.WARN = LogLevel.WARN;
22+
this.ERROR = LogLevel.ERROR;
23+
this.OFF = LogLevel.OFF;
2424
}
2525

2626
trace(...x: any[]): void {
@@ -75,7 +75,7 @@ export class BroadcastLogger implements ILogger {
7575

7676
getLevel(): ILogLevel {
7777
// Levels are not adjustable on this level.
78-
return Logger.INFO;
78+
return LogLevel.INFO;
7979
}
8080

8181
enabledFor(level: ILogLevel): boolean {

0 commit comments

Comments
 (0)