Skip to content

Commit

Permalink
refactor: Migrate from objectbox to drift.
Browse files Browse the repository at this point in the history
I hate riverpod.
  • Loading branch information
iphydf committed Jan 22, 2025
1 parent fcdcc88 commit faf9cd0
Show file tree
Hide file tree
Showing 36 changed files with 577 additions and 1,411 deletions.
25 changes: 5 additions & 20 deletions .metadata
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.

version:
revision: "603104015dd692ea3403755b55d07813d5cf8965"
revision: "17025dd88227cd9532c33fa78f5250d548d87e9a"
channel: "stable"

project_type: app
Expand All @@ -13,26 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: 603104015dd692ea3403755b55d07813d5cf8965
base_revision: 603104015dd692ea3403755b55d07813d5cf8965
- platform: android
create_revision: 603104015dd692ea3403755b55d07813d5cf8965
base_revision: 603104015dd692ea3403755b55d07813d5cf8965
- platform: ios
create_revision: 603104015dd692ea3403755b55d07813d5cf8965
base_revision: 603104015dd692ea3403755b55d07813d5cf8965
- platform: linux
create_revision: 603104015dd692ea3403755b55d07813d5cf8965
base_revision: 603104015dd692ea3403755b55d07813d5cf8965
- platform: macos
create_revision: 603104015dd692ea3403755b55d07813d5cf8965
base_revision: 603104015dd692ea3403755b55d07813d5cf8965
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: web
create_revision: 603104015dd692ea3403755b55d07813d5cf8965
base_revision: 603104015dd692ea3403755b55d07813d5cf8965
- platform: windows
create_revision: 603104015dd692ea3403755b55d07813d5cf8965
base_revision: 603104015dd692ea3403755b55d07813d5cf8965
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a

# User provided section

Expand Down
2 changes: 1 addition & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:label="tokhub"
android:label="TokHub"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
Expand Down
13 changes: 7 additions & 6 deletions cspell.config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ ignoreWords: []
flagWords: []
import: []
ignorePaths:
- ".github/**"
- "build/**"
- "LICENSE*"
- .github/**
- build/**
- LICENSE*
- "*.json"
words:
- "iphydf"
- "robinlinden"
- "tokhub"
- antiope
- iphydf
- robinlinden
- tokhub
29 changes: 29 additions & 0 deletions lib/db/database.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import 'package:drift/drift.dart';
import 'package:tokhub/models/check_status.dart';
import 'package:tokhub/models/github.dart';
import 'package:tokhub/models/json_enum.dart';

part 'database.g.dart';

@DriftDatabase(tables: [
MinimalCheckRun,
MinimalCombinedRepositoryStatus,
MinimalPullRequest,
MinimalRepository,
MinimalUser,
])
final class Database extends _$Database {
Database(super.e);

@override
int get schemaVersion => 1;

Future<void> clear() async {
await transaction(() async {
await delete(minimalCheckRun).go();
await delete(minimalPullRequest).go();
await delete(minimalRepository).go();
await delete(minimalUser).go();
});
}
}
12 changes: 12 additions & 0 deletions lib/db/native.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'dart:io';

import 'package:tokhub/db/database.dart';
import 'package:drift/native.dart';
import 'package:path/path.dart' as path;
import 'package:path_provider/path_provider.dart';

Future<Database> constructDb() async {
final dbFolder = await getApplicationDocumentsDirectory();
final file = File(path.join(dbFolder.path, 'TokHub', 'db.sqlite'));
return Database(NativeDatabase(file));
}
3 changes: 3 additions & 0 deletions lib/db/shared.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export 'unsupported.dart'
if (dart.library.html) 'web.dart'
if (dart.library.ffi) 'native.dart';
3 changes: 3 additions & 0 deletions lib/db/unsupported.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import 'package:tokhub/db/database.dart';

Future<Database> constructDb() => throw UnimplementedError();
11 changes: 11 additions & 0 deletions lib/db/web.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import 'package:tokhub/db/database.dart';
import 'package:drift/wasm.dart';

Future<Database> constructDb() async {
final db = await WasmDatabase.open(
databaseName: 'db',
sqlite3Uri: Uri(path: 'sqlite3.wasm'),
driftWorkerUri: Uri(path: 'drift_worker.js'),
);
return Database(db.resolvedExecutor);
}
9 changes: 9 additions & 0 deletions lib/logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ final class Logger {
_log.add(LogLine(clock.now(), level, tags, text));
}
}

T Function(A) catching<T, A>(T Function(A) f) => (A a) {
try {
return f(a);
} catch (exn, stackTrace) {
e('Caught exception $exn', stackTrace);
rethrow;
}
};
}

enum LogLevel { verbose, debug, info, warning, error }
Expand Down
37 changes: 0 additions & 37 deletions lib/models/check_status.dart

This file was deleted.

Loading

0 comments on commit faf9cd0

Please sign in to comment.