Skip to content

Commit

Permalink
Fix weird sqlcipher factor inheritance
Browse files Browse the repository at this point in the history
  • Loading branch information
simolus3 committed Jan 24, 2025
1 parent ad65733 commit d370db8
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 12 deletions.
4 changes: 4 additions & 0 deletions packages/powersync_core/lib/web.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ library;
export 'src/web/worker_utils.dart' show PowerSyncAdditionalOpenOptions;
export 'package:sqlite_async/sqlite3_web.dart';
export 'package:sqlite_async/web.dart';

import 'src/open_factory/web/web_open_factory.dart';

typedef PowerSyncWebOpenFactory = PowerSyncOpenFactory;
8 changes: 3 additions & 5 deletions packages/powersync_sqlcipher/lib/powersync.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,14 @@ import 'src/stub.dart'

/// A factory for opening a database with SQLCipher encryption.
/// An encryption [key] is required to open the database.
abstract base class PowerSyncSQLCipherOpenFactory extends PowerSyncOpenFactory {
PowerSyncSQLCipherOpenFactory.internal(
{required super.path, required this.key, super.sqliteOptions});

abstract interface class PowerSyncSQLCipherOpenFactory
extends PowerSyncOpenFactory {
factory PowerSyncSQLCipherOpenFactory(
{required String path,
required String key,
SqliteOptions sqliteOptions = powerSyncDefaultSqliteOptions}) {
return cipherFactory(path: path, key: key, options: sqliteOptions);
}

final String key;
String get key;
}
10 changes: 7 additions & 3 deletions packages/powersync_sqlcipher/lib/src/sqlcipher.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ import 'package:sqlcipher_flutter_libs/sqlcipher_flutter_libs.dart';

import '../powersync.dart';

final class _NativeCipherOpenFactory extends PowerSyncSQLCipherOpenFactory {
final class _NativeCipherOpenFactory extends PowerSyncOpenFactory
implements PowerSyncSQLCipherOpenFactory {
@override
final String key;

_NativeCipherOpenFactory({
required super.path,
required super.key,
required this.key,
super.sqliteOptions,
}) : super.internal();
});

@override
List<String> pragmaStatements(SqliteOpenOptions options) {
Expand Down
11 changes: 7 additions & 4 deletions packages/powersync_sqlcipher/lib/src/web_encryption.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ import 'package:powersync_core/web.dart';

import '../powersync.dart';

final class _WebEncryptionFactory extends PowerSyncSQLCipherOpenFactory
with WebSqliteOpenFactory {
final class _WebEncryptionFactory extends PowerSyncWebOpenFactory
implements PowerSyncSQLCipherOpenFactory {
@override
final String key;

_WebEncryptionFactory({
required super.path,
required super.key,
required this.key,
super.sqliteOptions,
}) : super.internal();
});

@override
List<String> pragmaStatements(SqliteOpenOptions options) {
Expand Down

0 comments on commit d370db8

Please sign in to comment.