Open dickermoshe opened 1 month ago
Is your feature request related to a problem? Please describe. There is no package for drift Link
drift
Describe the solution you'd like A package for drift
Describe alternatives you've considered This implementation they have an example of
@DriftDatabase(tables: []) class AppDatabase extends _$AppDatabase { AppDatabase() : super(drift.driftDatabase(name: "shas.db") .interceptWith(LogInterceptor())); @override int get schemaVersion => 1; } class LogInterceptor extends QueryInterceptor { Future<T> _run<T>( String description, FutureOr<T> Function() operation) async { final stopwatch = Stopwatch()..start(); talker.log('Running $description'); try { final result = await operation(); talker.log(' => succeeded after ${stopwatch.elapsedMilliseconds}ms'); return result; } on Object catch (e, s) { talker.error(' => failed after ${stopwatch.elapsedMilliseconds}ms', e, s); rethrow; } } @override TransactionExecutor beginTransaction(QueryExecutor parent) { talker.log('begin'); return super.beginTransaction(parent); } @override Future<void> commitTransaction(TransactionExecutor inner) { return _run('commit', () => inner.send()); } @override Future<void> rollbackTransaction(TransactionExecutor inner) { return _run('rollback', () => inner.rollback()); } @override Future<void> runBatched( QueryExecutor executor, BatchedStatements statements) { return _run( 'batch with $statements', () => executor.runBatched(statements)); } @override Future<int> runInsert( QueryExecutor executor, String statement, List<Object?> args) { return _run( '$statement with $args', () => executor.runInsert(statement, args)); } @override Future<int> runUpdate( QueryExecutor executor, String statement, List<Object?> args) { return _run( '$statement with $args', () => executor.runUpdate(statement, args)); } @override Future<int> runDelete( QueryExecutor executor, String statement, List<Object?> args) { return _run( '$statement with $args', () => executor.runDelete(statement, args)); } @override Future<void> runCustom( QueryExecutor executor, String statement, List<Object?> args) { return _run( '$statement with $args', () => executor.runCustom(statement, args)); } @override Future<List<Map<String, Object?>>> runSelect( QueryExecutor executor, String statement, List<Object?> args) { return _run( '$statement with $args', () => executor.runSelect(statement, args)); } }
Additional context N/A
Hello @dickermoshe ! Drift is a really popular library and we would like to have addon package to collect transactions logs. Can you create pull-request with this new package ?
I'll add this to our todo list.
Is your feature request related to a problem? Please describe. There is no package for
drift
LinkDescribe the solution you'd like A package for
drift
Describe alternatives you've considered This implementation they have an example of
Additional context N/A