@@ -14,7 +14,8 @@ import {
1414 type BucketStorageAdapter ,
1515 type PowerSyncBackendConnector ,
1616 type PowerSyncCloseOptions ,
17- type RequiredAdditionalConnectionOptions
17+ type RequiredAdditionalConnectionOptions ,
18+ LogLevels
1819} from '@powersync/common' ;
1920import { getNavigatorLocks } from '../shared/navigator.js' ;
2021import { NAVIGATOR_TRIGGER_CLAIM_MANAGER } from './NavigatorTriggerClaimManager.js' ;
@@ -44,6 +45,13 @@ export interface WebPowerSyncFlags extends WebSQLFlags {
4445 * instances before the window unloads
4546 */
4647 externallyUnload ?: boolean ;
48+
49+ /**
50+ * The log level for database workers.
51+ *
52+ * Defaults to {@link LogLevels.info}.
53+ */
54+ databaseWorkerLogLevel ?: number ;
4755}
4856
4957type WithWebFlags < Base > = Base & { flags ?: WebPowerSyncFlags } ;
@@ -56,6 +64,13 @@ export interface WebSyncOptions {
5664 * or a factory method that returns a worker.
5765 */
5866 worker ?: string | URL | ( ( options : ResolvedWebSQLOpenOptions ) => SharedWorker ) ;
67+
68+ /**
69+ * The log level for logs from the sync worker.
70+ *
71+ * Defaults to {@link LogLevels.info}.
72+ */
73+ logLevel ?: number ;
5974}
6075
6176type WithWebSyncOptions < Base > = Base & {
@@ -86,7 +101,8 @@ export type WebPowerSyncDatabaseOptions = WithWebSyncOptions<WithWebFlags<PowerS
86101
87102export const DEFAULT_POWERSYNC_FLAGS : Required < WebPowerSyncFlags > = {
88103 ...DEFAULT_WEB_SQL_FLAGS ,
89- externallyUnload : false
104+ externallyUnload : false ,
105+ databaseWorkerLogLevel : LogLevels . info
90106} ;
91107
92108export const resolveWebPowerSyncFlags = ( flags ?: WebPowerSyncFlags ) : Required < WebPowerSyncFlags > => {
@@ -171,10 +187,13 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
171187 }
172188
173189 protected openDBAdapter ( options : WebPowerSyncDatabaseOptionsWithSettings ) : DBAdapter {
190+ const resolvedFlags = resolveWebPowerSyncFlags ( options . flags ) ;
174191 const defaultFactory = new WASQLiteOpenFactory ( {
175192 ...options . database ,
176- flags : resolveWebPowerSyncFlags ( options . flags ) ,
177- encryptionKey : options . encryptionKey
193+ flags : resolvedFlags ,
194+ encryptionKey : options . encryptionKey ,
195+ logger : this . logger ,
196+ logLevel : resolvedFlags . databaseWorkerLogLevel
178197 } ) ;
179198 return defaultFactory . openDB ( ) ;
180199 }
@@ -206,7 +225,7 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
206225 }
207226
208227 protected generateBucketStorageAdapter ( ) : BucketStorageAdapter {
209- return new SqliteBucketStorage ( this . database ) ;
228+ return new SqliteBucketStorage ( this . database , this . logger ) ;
210229 }
211230
212231 protected async runExclusive < T > ( cb : ( ) => Promise < T > ) {
@@ -245,11 +264,12 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
245264 Logs for shared sync worker will only be available in the shared worker context
246265 ` ;
247266 const logger = this . options . logger ;
248- logger ? logger . warn ( warning ) : console . warn ( warning ) ;
267+ logger ? logger . log ( LogLevels . warn , warning ) : console . warn ( warning ) ;
249268 }
250269 return new SharedWebStreamingSyncImplementation ( {
251270 ...syncOptions ,
252- db : this . database as WebDBAdapter // This should always be the case
271+ db : this . database as WebDBAdapter , // This should always be the case
272+ logLevel : this . options . sync ?. logLevel ?? LogLevels . info
253273 } ) ;
254274 default :
255275 return new WebStreamingSyncImplementation ( syncOptions ) ;
0 commit comments