Skip to content

Commit 46e07bf

Browse files
committed
Migrate demos
1 parent eb26a8a commit 46e07bf

25 files changed

Lines changed: 153 additions & 208 deletions

File tree

demos/example-capacitor/src/components/providers/SystemProvider.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
import { CircularProgress } from '@mui/material';
22
import { PowerSyncDatabase } from '@powersync/capacitor';
33
import { PowerSyncContext } from '@powersync/react';
4-
import { createBaseLogger, LogLevel } from '@powersync/web';
4+
import { createPowerSyncLogger, LogLevels } from '@powersync/web';
55
import React, { Suspense } from 'react';
66
import { AppSchema } from '../../library/powersync/AppSchema.js';
77
import { BackendConnector } from '../../library/powersync/BackendConnector.js';
88

9-
const logger = createBaseLogger();
10-
logger.useDefaults();
11-
logger.setLevel(LogLevel.DEBUG);
12-
139
// Uses the Web SDK for web, and Capacitor adapters for iOS/Android.
1410
const powerSync = new PowerSyncDatabase({
1511
database: {
@@ -18,7 +14,8 @@ const powerSync = new PowerSyncDatabase({
1814
schema: AppSchema,
1915
flags: {
2016
enableMultiTabs: typeof SharedWorker !== 'undefined'
21-
}
17+
},
18+
logger: createPowerSyncLogger({ minLevel: LogLevels.debug })
2219
});
2320
const connector = new BackendConnector();
2421

demos/example-electron-node/src/main/index.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
11
import fs from 'node:fs';
22
import { Worker } from 'node:worker_threads';
33

4-
import {
5-
createBaseLogger,
6-
createLogger,
7-
LogLevel,
8-
PowerSyncDatabase,
9-
SyncStreamConnectionMethod
10-
} from '@powersync/node';
4+
import { createPowerSyncLogger, LogLevels, PowerSyncDatabase, SyncStreamConnectionMethod } from '@powersync/node';
115
import { app, BrowserWindow, ipcMain, MessagePortMain } from 'electron';
126
import { AppSchema, BackendConnector } from './powersync';
137

14-
const baseLogger = createBaseLogger();
15-
baseLogger.useDefaults({ defaultLevel: LogLevel.WARN });
16-
17-
const logger = createLogger('PowerSyncDemo');
18-
198
// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Webpack
209
// plugin that tells the Electron app where to look for the Webpack-bundled app code (depending on
2110
// whether you're running in development or production).
@@ -47,7 +36,7 @@ const database = new PowerSyncDatabase({
4736
return new Worker(new URL('./worker.ts', import.meta.url), options);
4837
}
4938
},
50-
logger
39+
logger: createPowerSyncLogger({ minLevel: LogLevels.debug })
5140
});
5241

5342
const createWindow = (): void => {

demos/example-electron/src/components/providers/SystemProvider.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
import { PowerSyncContext } from '@powersync/react';
2-
import { createBaseLogger, LogLevel, PowerSyncDatabase } from '@powersync/web';
2+
import { createPowerSyncLogger, LogLevels, PowerSyncDatabase } from '@powersync/web';
33
import { CircularProgress } from '@mui/material';
44
import React, { Suspense } from 'react';
55
import { AppSchema } from '../../library/powersync/AppSchema.js';
66
import { BackendConnector } from '../../library/powersync/BackendConnector.js';
77

8-
const logger = createBaseLogger();
9-
logger.useDefaults();
10-
logger.setLevel(LogLevel.DEBUG);
11-
128
const powerSync = new PowerSyncDatabase({
139
database: { dbFilename: 'powersync2.db' },
1410
schema: AppSchema,
1511
flags: {
1612
disableSSRWarning: true
17-
}
13+
},
14+
logger: createPowerSyncLogger({ minLevel: LogLevels.debug })
1815
});
1916
const connector = new BackendConnector();
2017

demos/example-node/src/main.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import repl_factory from 'node:repl';
33
import { Worker } from 'node:worker_threads';
44

55
import {
6-
createBaseLogger,
7-
createLogger,
6+
createPowerSyncLogger,
7+
LogLevels,
88
PowerSyncDatabase,
99
SyncClientImplementation,
1010
SyncStreamConnectionMethod
@@ -15,11 +15,10 @@ import { AppSchema, DemoConnector } from './powersync.js';
1515
import { enableUncidiDiagnostics } from './UndiciDiagnostics.js';
1616

1717
const main = async () => {
18-
const baseLogger = createBaseLogger();
19-
const logger = createLogger('PowerSyncDemo');
2018
const debug = process.env.POWERSYNC_DEBUG == '1';
19+
const logger = createPowerSyncLogger({ prefix: 'PowerSyncDemo', minLevel: debug ? LogLevels.trace : LogLevels.warn });
20+
2121
const encryptionKey = process.env.ENCRYPTION_KEY ?? '';
22-
baseLogger.useDefaults({ defaultLevel: debug ? logger.TRACE : logger.WARN });
2322

2423
// Enable detailed request/response logging for debugging purposes.
2524
if (debug) {

demos/example-vite-encryption/src/index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { column, Schema, Table, PowerSyncDatabase, createBaseLogger } from '@powersync/web';
1+
import { column, Schema, Table, PowerSyncDatabase, createPowerSyncLogger, LogLevels } from '@powersync/web';
22

3-
createBaseLogger().useDefaults();
3+
const logger = createPowerSyncLogger({ minLevel: LogLevels.debug });
44

55
const customers = new Table({ name: column.text });
66

@@ -12,7 +12,8 @@ const openDatabase = async (encryptionKey) => {
1212
PowerSync = new PowerSyncDatabase({
1313
schema: AppSchema,
1414
database: { dbFilename: 'example-encryption.db' },
15-
encryptionKey: encryptionKey
15+
encryptionKey: encryptionKey,
16+
logge
1617
});
1718

1819
await PowerSync.init();

demos/example-vite/src/index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { PowerSyncDatabase, Schema, Table, column, createBaseLogger } from '@powersync/web';
1+
import { PowerSyncDatabase, Schema, Table, column, createPowerSyncLogger, LogLevels } from '@powersync/web';
22

3-
createBaseLogger().useDefaults();
3+
const logger = createPowerSyncLogger({ minLevel: LogLevels.debug });
44

55
/**
66
* A placeholder connector which doesn't do anything.
@@ -27,7 +27,8 @@ let PowerSync;
2727
const openDatabase = async () => {
2828
PowerSync = new PowerSyncDatabase({
2929
schema: AppSchema,
30-
database: { dbFilename: 'test.sqlite' }
30+
database: { dbFilename: 'test.sqlite' },
31+
logger
3132
});
3233

3334
await PowerSync.init();

demos/example-webpack/src/index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { Schema, Table, PowerSyncDatabase, column, createBaseLogger } from '@powersync/web';
1+
import { Schema, Table, PowerSyncDatabase, column, createPowerSyncLogger, LogLevels } from '@powersync/web';
22

3-
createBaseLogger().useDefaults();
3+
const logger = createPowerSyncLogger({ minLevel: LogLevels.debug });
44

55
/**
66
* A placeholder connector which doesn't do anything.
@@ -27,7 +27,8 @@ let PowerSync;
2727
const openDatabase = async () => {
2828
PowerSync = new PowerSyncDatabase({
2929
schema: AppSchema,
30-
database: { dbFilename: 'test.sqlite' }
30+
database: { dbFilename: 'test.sqlite' },
31+
logger
3132
});
3233

3334
await PowerSync.init();

demos/react-multi-client/src/components/providers/SystemProvider.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,9 @@ import { PowerSyncContext, usePowerSync as _usePowerSync } from '@powersync/reac
66
import { AppSchema } from '@/definitions/Schema';
77
import { SupabaseConnector } from '@/library/SupabaseConnector';
88
import { useSupabase } from './SupabaseProvider';
9-
import { createBaseLogger, LogLevel } from '@powersync/web';
9+
import { createPowerSyncLogger, LogLevels } from '@powersync/web';
1010

11-
const logger = createBaseLogger();
12-
logger.useDefaults();
13-
logger.setLevel(LogLevel.DEBUG);
11+
const logger = createPowerSyncLogger({ minLevel: LogLevels.debug });
1412

1513
export interface SystemProviderProps {
1614
dbFilename: string;
@@ -27,15 +25,16 @@ const SystemProvider: React.FC<PropsWithChildren<SystemProviderProps>> = (props)
2725
schema: AppSchema,
2826
flags: {
2927
disableSSRWarning: false
30-
}
28+
},
29+
logger: logger
3130
}).getInstance()
3231
);
3332

3433
React.useEffect(() => {
3534
powersync.init();
3635

3736
const l = connector.registerListener({
38-
initialized: () => { },
37+
initialized: () => {},
3938
sessionStarted: async () => {
4039
await powersync.connect(connector);
4140
}
Lines changed: 46 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,59 @@
11
import React from 'react';
2-
import { createBaseLogger, LogLevel, PowerSyncDatabase, SyncClientImplementation } from '@powersync/react-native';
2+
import { createPowerSyncLogger, LogLevels, PowerSyncDatabase, SyncClientImplementation } from '@powersync/react-native';
33
import { SupabaseConnector } from '@/supabase/SupabaseConnector';
44
import { AppSchema } from '@/powersync/AppSchema';
55
import { OPSqliteOpenFactory } from '@powersync/op-sqlite';
66

7-
const logger = createBaseLogger();
8-
logger.useDefaults();
9-
logger.setLevel(LogLevel.DEBUG);
7+
const logger = createPowerSyncLogger({ minLevel: LogLevels.debug });
108

119
export class System {
12-
connector: SupabaseConnector;
13-
powersync: PowerSyncDatabase;
14-
15-
constructor() {
16-
this.connector = new SupabaseConnector();
17-
18-
const opSqlite = new OPSqliteOpenFactory({
19-
dbFilename: 'powersync.db'
20-
});
21-
22-
this.powersync = new PowerSyncDatabase({
23-
schema: AppSchema,
24-
database: opSqlite,
25-
logger: logger
26-
});
27-
}
28-
29-
async init() {
30-
await this.connector.signInAnonymously();
31-
32-
await this.powersync.init();
33-
34-
await this.powersync.connect(this.connector, {
35-
clientImplementation: SyncClientImplementation.RUST
36-
});
37-
38-
this.powersync.registerListener({
39-
statusChanged: (status) => {
40-
const hasSynced = Boolean(status.lastSyncedAt);
41-
const downloading = status.dataFlowStatus?.downloading || false;
42-
const uploading = status.dataFlowStatus?.uploading || false;
43-
console.log(
44-
'[PowerSync] Status changed:',
45-
hasSynced ? '✅ Synced' : '⏳ Not yet synced',
46-
downloading ? '📥 Downloading' : '✅ Not downloading',
47-
uploading ? '📤 Uploading' : '✅ Not uploading'
48-
);
49-
},
50-
});
51-
}
52-
53-
async disconnect() {
54-
await this.powersync.disconnect();
55-
}
10+
connector: SupabaseConnector;
11+
powersync: PowerSyncDatabase;
12+
13+
constructor() {
14+
this.connector = new SupabaseConnector();
15+
16+
const opSqlite = new OPSqliteOpenFactory({
17+
dbFilename: 'powersync.db'
18+
});
19+
20+
this.powersync = new PowerSyncDatabase({
21+
schema: AppSchema,
22+
database: opSqlite,
23+
logger: logger
24+
});
25+
}
26+
27+
async init() {
28+
await this.connector.signInAnonymously();
29+
30+
await this.powersync.init();
31+
32+
await this.powersync.connect(this.connector, {
33+
clientImplementation: SyncClientImplementation.RUST
34+
});
35+
36+
this.powersync.registerListener({
37+
statusChanged: (status) => {
38+
const hasSynced = Boolean(status.lastSyncedAt);
39+
const downloading = status.dataFlowStatus?.downloading || false;
40+
const uploading = status.dataFlowStatus?.uploading || false;
41+
console.log(
42+
'[PowerSync] Status changed:',
43+
hasSynced ? '✅ Synced' : '⏳ Not yet synced',
44+
downloading ? '📥 Downloading' : '✅ Not downloading',
45+
uploading ? '📤 Uploading' : '✅ Not uploading'
46+
);
47+
}
48+
});
49+
}
50+
51+
async disconnect() {
52+
await this.powersync.disconnect();
53+
}
5654
}
5755

5856
export const system = new System();
5957

6058
export const SystemContext = React.createContext(system);
6159
export const useSystem = () => React.useContext(SystemContext);
62-
63-

demos/react-native-supabase-group-chat/src/providers/PowerSyncProvider.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import '@azure/core-asynciterator-polyfill';
2-
import { createBaseLogger, PowerSyncContext, PowerSyncDatabase } from '@powersync/react-native';
2+
import { createPowerSyncLogger, LogLevels, PowerSyncContext, PowerSyncDatabase } from '@powersync/react-native';
33
import { ReactNode, useEffect, useMemo } from 'react';
44

55
import { useAuth } from './AuthProvider';
66
import { Connector } from '@/library/connector';
77
import { AppSchema } from '@/library/schema';
88

9-
createBaseLogger().useDefaults();
9+
const logger = createPowerSyncLogger({ minLevel: LogLevels.debug });
1010

1111
const connector = new Connector();
1212

@@ -16,7 +16,9 @@ export const PowerSyncProvider = ({ children }: { children: ReactNode }) => {
1616
const powerSync = useMemo(() => {
1717
const powerSync = new PowerSyncDatabase({
1818
schema: AppSchema,
19-
database: { dbFilename: 'test.sqlite' }
19+
database: { dbFilename: 'test.sqlite' },
20+
21+
logger: logger
2022
});
2123
powerSync.init();
2224
return powerSync;

0 commit comments

Comments
 (0)