27 lines
		
	
	
		
			730 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			730 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:drift/drift.dart';
 | 
						|
import 'package:drift/wasm.dart';
 | 
						|
import 'package:island/database/drift_db.dart';
 | 
						|
import 'package:island/talker.dart';
 | 
						|
 | 
						|
AppDatabase constructDb() {
 | 
						|
  return AppDatabase(connectOnWeb());
 | 
						|
}
 | 
						|
 | 
						|
DatabaseConnection connectOnWeb() {
 | 
						|
  return DatabaseConnection.delayed(
 | 
						|
    Future(() async {
 | 
						|
      try {
 | 
						|
        final result = await WasmDatabase.open(
 | 
						|
          databaseName: 'solar_network_data',
 | 
						|
          sqlite3Uri: Uri.parse('sqlite3.wasm'),
 | 
						|
          driftWorkerUri: Uri.parse('drift_worker.dart.js'),
 | 
						|
        );
 | 
						|
        return result.resolvedExecutor;
 | 
						|
      } catch (e, stackTrace) {
 | 
						|
        talker.error('Failed to open WASM database...', e, stackTrace);
 | 
						|
        rethrow;
 | 
						|
      }
 | 
						|
    }),
 | 
						|
  );
 | 
						|
}
 |