Skip to content

feat: Logging cleanup demos #577

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Apr 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion demos/angular-supabase-todolist/angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"customWebpackConfig": {
"path": "./extra-webpack.config.js"
},
"allowedCommonJsDependencies": ["js-logger", "ws"],
"allowedCommonJsDependencies": ["ws"],
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
Expand Down
7 changes: 4 additions & 3 deletions demos/django-react-native-todolist/app/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import { ActivityIndicator, View } from 'react-native';
import { router } from 'expo-router';
import Logger from 'js-logger';
import { createBaseLogger, LogLevel } from '@powersync/react-native';
/**
* This is the entry point when the app loads.
* Checks for a Supabase session.
Expand All @@ -10,8 +10,9 @@ import Logger from 'js-logger';
*/
const App = () => {
React.useEffect(() => {
Logger.useDefaults();
Logger.setLevel(Logger.DEBUG);
const logger = createBaseLogger();
logger.useDefaults();
logger.setLevel(LogLevel.DEBUG);

setImmediate(() => router.replace('signin'));
}, []);
Expand Down
1 change: 0 additions & 1 deletion demos/django-react-native-todolist/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
"expo-router": "4.0.20",
"expo-splash-screen": "~0.29.22",
"expo-status-bar": "~2.0.1",
"js-logger": "^1.6.1",
"lodash": "^4.17.21",
"react": "18.3.1",
"react-native": "0.76.9",
Expand Down
1 change: 0 additions & 1 deletion demos/example-capacitor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
"@journeyapps/wa-sqlite": "^1.2.0",
"@powersync/react": "workspace:*",
"@powersync/web": "workspace:*",
"js-logger": "^1.6.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.23.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { PowerSyncContext } from '@powersync/react';
import { PowerSyncDatabase } from '@powersync/web';
import { PowerSyncDatabase, createBaseLogger, LogLevel } from '@powersync/web';
import { CircularProgress } from '@mui/material';
import Logger from 'js-logger';
import React, { Suspense } from 'react';
import { AppSchema } from '../../library/powersync/AppSchema.js';
import { BackendConnector } from '../../library/powersync/BackendConnector.js';
import { Capacitor } from '@capacitor/core';

Logger.useDefaults();
Logger.setLevel(Logger.DEBUG);
const logger = createBaseLogger();
logger.useDefaults();
logger.setLevel(LogLevel.DEBUG);

const platform = Capacitor.getPlatform();
const isIOs = platform === 'ios';
Expand Down
1 change: 0 additions & 1 deletion demos/example-capacitor/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export default defineConfig({
// https://github.com/vitejs/vite/issues/11672#issuecomment-1415820673
exclude: ['@journeyapps/wa-sqlite', '@powersync/web'],
include: []
// include: ['@powersync/web > js-logger'], // <-- Include `js-logger` when it isn't installed and imported.
},
plugins: [wasm(), topLevelAwait()],
worker: {
Expand Down
42 changes: 27 additions & 15 deletions demos/example-electron-node/src/main/index.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
import fs from 'node:fs';
import { Worker } from 'node:worker_threads';

import { PowerSyncDatabase, SyncStreamConnectionMethod } from '@powersync/node';
import {
createBaseLogger,
createLogger,
LogLevel,
PowerSyncDatabase,
SyncStreamConnectionMethod
} from '@powersync/node';
import { app, BrowserWindow, ipcMain, MessagePortMain } from 'electron';
import { AppSchema, BackendConnector } from './powersync';
import { default as Logger } from 'js-logger';

const logger = Logger.get('PowerSyncDemo');
Logger.useDefaults({ defaultLevel: logger.WARN });
const baseLogger = createBaseLogger();
baseLogger.useDefaults({ defaultLevel: LogLevel.WARN });

const logger = createLogger('PowerSyncDemo');

// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Webpack
// plugin that tells the Electron app where to look for the Webpack-bundled app code (depending on
Expand Down Expand Up @@ -71,7 +78,7 @@ app.whenReady().then(() => {
const unregister = database.registerListener({
statusChanged(status) {
port.postMessage(status.toJSON());
},
}
});
port.once('close', unregister);
};
Expand All @@ -80,31 +87,36 @@ app.whenReady().then(() => {
const abort = new AbortController();
port.once('close', () => abort.abort());

database.watchWithCallback(sql, args, {
onResult(results) {
port.postMessage(results.rows._array);
},
onError(error) {
console.error(`Watch ${sql} with ${args} failed`, error);
database.watchWithCallback(
sql,
args,
{
onResult(results) {
port.postMessage(results.rows._array);
},
onError(error) {
console.error(`Watch ${sql} with ${args} failed`, error);
}
},
}, {signal: abort.signal});
{ signal: abort.signal }
);
};

ipcMain.on('port', (portEvent) => {
const [port] = portEvent.ports;
port.start();

port.on('message', (event) => {
const {method, payload} = event.data;
const { method, payload } = event.data;
switch (method) {
case 'syncStatus':
forwardSyncStatus(port);
break;
case 'watch':
const {sql, args} = payload;
const { sql, args } = payload;
forwardWatchResults(sql, args, port);
break;
};
}
});
});

Expand Down
1 change: 0 additions & 1 deletion demos/example-electron/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
"@powersync/react": "workspace:*",
"@powersync/web": "workspace:*",
"electron-squirrel-startup": "^1.0.0",
"js-logger": "^1.6.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.23.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { PowerSyncContext } from '@powersync/react';
import { PowerSyncDatabase } from '@powersync/web';
import { createBaseLogger, LogLevel, PowerSyncDatabase } from '@powersync/web';
import { CircularProgress } from '@mui/material';
import Logger from 'js-logger';
import React, { Suspense } from 'react';
import { AppSchema } from '../../library/powersync/AppSchema.js';
import { BackendConnector } from '../../library/powersync/BackendConnector.js';

Logger.useDefaults();
Logger.setLevel(Logger.DEBUG);
const logger = createBaseLogger();
logger.useDefaults();
logger.setLevel(LogLevel.DEBUG);

const powerSync = new PowerSyncDatabase({
database: { dbFilename: 'powersync2.db' },
Expand Down
3 changes: 1 addition & 2 deletions demos/example-electron/vite.renderer.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ export default defineConfig((env) => {
// Don't optimize these packages as they contain web workers and WASM files.
// https://github.com/vitejs/vite/issues/11672#issuecomment-1415820673
exclude: ['@journeyapps/wa-sqlite', '@powersync/web'],
include: [],
// include: ['@powersync/web > js-logger'], // <-- Include `js-logger` when it isn't installed and imported.
include: []
},
plugins: [
// @ts-expect-error there is TS issue that doesn't actually affect the runtime
Expand Down
1 change: 0 additions & 1 deletion demos/example-nextjs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
"@mui/material": "^5.15.18",
"@powersync/react": "workspace:*",
"@powersync/web": "workspace:*",
"js-logger": "^1.6.1",
"lato-font": "^3.0.0",
"lexical": "^0.15.0",
"next": "14.2.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
import { AppSchema } from '@/library/powersync/AppSchema';
import { BackendConnector } from '@/library/powersync/BackendConnector';
import { PowerSyncContext } from '@powersync/react';
import { PowerSyncDatabase } from '@powersync/web';
import { createBaseLogger, LogLevel, PowerSyncDatabase } from '@powersync/web';
import { CircularProgress } from '@mui/material';
import Logger from 'js-logger';
import React, { Suspense } from 'react';

// eslint-disable-next-line react-hooks/rules-of-hooks
Logger.useDefaults();
Logger.setLevel(Logger.DEBUG);
const logger = createBaseLogger();
logger.useDefaults();
logger.setLevel(LogLevel.DEBUG);

const powerSync = new PowerSyncDatabase({
database: { dbFilename: 'powersync2.db' },
Expand Down
8 changes: 4 additions & 4 deletions demos/example-node/src/main.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { once } from 'node:events';
import repl_factory from 'node:repl';

import { PowerSyncDatabase, SyncStreamConnectionMethod } from '@powersync/node';
import { default as Logger } from 'js-logger';
import { createBaseLogger, createLogger, PowerSyncDatabase, SyncStreamConnectionMethod } from '@powersync/node';
import { exit } from 'node:process';
import { AppSchema, DemoConnector } from './powersync.js';

const main = async () => {
const logger = Logger.get('PowerSyncDemo');
Logger.useDefaults({ defaultLevel: logger.WARN });
const baseLogger = createBaseLogger();
const logger = createLogger('PowerSyncDemo');
baseLogger.useDefaults({ defaultLevel: logger.WARN });

if (!('BACKEND' in process.env) || !('SYNC_SERVICE' in process.env)) {
console.warn(
Expand Down
5 changes: 2 additions & 3 deletions demos/example-vite-encryption/src/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { column, Schema, Table, PowerSyncDatabase } from '@powersync/web';
import Logger from 'js-logger';
import { column, Schema, Table, PowerSyncDatabase, createBaseLogger } from '@powersync/web';

Logger.useDefaults();
createBaseLogger().useDefaults();

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

Expand Down
3 changes: 1 addition & 2 deletions demos/example-vite-encryption/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ export default defineConfig({
optimizeDeps: {
// Don't optimize these packages as they contain web workers and WASM files.
// https://github.com/vitejs/vite/issues/11672#issuecomment-1415820673
exclude: ['@journeyapps/wa-sqlite', '@powersync/web'],
include: ['@powersync/web > js-logger']
exclude: ['@journeyapps/wa-sqlite', '@powersync/web']
},
plugins: [wasm(), topLevelAwait()],
worker: {
Expand Down
7 changes: 3 additions & 4 deletions demos/example-vite/src/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { column, Schema, Table, PowerSyncDatabase } from '@powersync/web';
import Logger from 'js-logger';
import { column, Schema, Table, PowerSyncDatabase, createBaseLogger } from '@powersync/web';

Logger.useDefaults();
createBaseLogger().useDefaults();

/**
* A placeholder connector which doesn't do anything.
Expand All @@ -19,7 +18,7 @@ class DummyConnector {
async uploadData(database) {}
}

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

export const AppSchema = new Schema({ customers });

Expand Down
3 changes: 1 addition & 2 deletions demos/example-vite/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ export default defineConfig({
optimizeDeps: {
// Don't optimize these packages as they contain web workers and WASM files.
// https://github.com/vitejs/vite/issues/11672#issuecomment-1415820673
exclude: ['@journeyapps/wa-sqlite', '@powersync/web'],
include: ['@powersync/web > js-logger']
exclude: ['@journeyapps/wa-sqlite', '@powersync/web']
},
plugins: [wasm(), topLevelAwait()],
worker: {
Expand Down
7 changes: 3 additions & 4 deletions demos/example-webpack/src/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { Schema, Table, PowerSyncDatabase, column } from '@powersync/web';
import Logger from 'js-logger';
import { Schema, Table, PowerSyncDatabase, column, createBaseLogger } from '@powersync/web';

Logger.useDefaults();
createBaseLogger().useDefaults();

/**
* A placeholder connector which doesn't do anything.
Expand All @@ -19,7 +18,7 @@ class DummyConnector {
async uploadData(database) {}
}

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

export const AppSchema = new Schema({ customers });

Expand Down
1 change: 0 additions & 1 deletion demos/react-multi-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"@webflow/webflow-cli": "^1.6.9",
"async-mutex": "^0.5.0",
"autoprefixer": "10.4.14",
"js-logger": "^1.6.1",
"lodash": "^4.17.21",
"postcss": "8.4.27",
"react": "^18.2.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ import { PowerSyncContext, usePowerSync as _usePowerSync } from '@powersync/reac
import { AppSchema } from '@/definitions/Schema';
import { SupabaseConnector } from '@/library/SupabaseConnector';
import { useSupabase } from './SupabaseProvider';
import Logger from 'js-logger';
import { createBaseLogger, LogLevel } from '@powersync/web';

Logger.useDefaults();
Logger.setLevel(Logger.DEBUG);
const logger = createBaseLogger();
logger.useDefaults();
logger.setLevel(LogLevel.DEBUG);

export interface SystemProviderProps {
dbFilename: string;
Expand All @@ -34,7 +35,7 @@ const SystemProvider: React.FC<PropsWithChildren<SystemProviderProps>> = (props)
powersync.init();

const l = connector.registerListener({
initialized: () => {},
initialized: () => { },
sessionStarted: async () => {
await powersync.connect(connector);
}
Expand Down
1 change: 0 additions & 1 deletion demos/react-multi-client/vite.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ export default defineConfig({
// https://github.com/vitejs/vite/issues/11672#issuecomment-1415820673
exclude: ['@journeyapps/wa-sqlite', '@powersync/web'],
include: []
// include: ['@powersync/web > js-logger'], // <-- Include `js-logger` when it isn't installed and imported.
},
plugins: [
wasm(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import '@azure/core-asynciterator-polyfill';
import { PowerSyncContext, PowerSyncDatabase } from '@powersync/react-native';
import Logger from 'js-logger';
import { createBaseLogger, PowerSyncContext, PowerSyncDatabase } from '@powersync/react-native';
import { ReactNode, useEffect, useMemo } from 'react';

import { useAuth } from './AuthProvider';
import { Connector } from '../lib/connector';
import { schema } from '../lib/schema';

Logger.useDefaults();
createBaseLogger().useDefaults();

const connector = new Connector();

Expand Down
3 changes: 0 additions & 3 deletions demos/react-native-supabase-todolist/app/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { ActivityIndicator, View } from 'react-native';

import { useSystem } from '../library/powersync/system';
import { router } from 'expo-router';
import Logger from 'js-logger';

import { ThemeProvider, createTheme } from '@rneui/themed';

Expand All @@ -21,8 +20,6 @@ const App: React.FC = () => {
const { supabaseConnector } = useSystem();

React.useEffect(() => {
Logger.useDefaults();
Logger.setLevel(Logger.DEBUG);
supabaseConnector.client.auth
.getSession()
.then(({ data }) => {
Expand Down
Loading