File tree Expand file tree Collapse file tree 3 files changed +36
-22
lines changed
packages/powersync_core/lib/src Expand file tree Collapse file tree 3 files changed +36
-22
lines changed Original file line number Diff line number Diff line change @@ -3,15 +3,29 @@ import 'dart:async';
33import 'package:powersync_core/src/open_factory/abstract_powersync_open_factory.dart' ;
44import 'package:powersync_core/src/uuid.dart' ;
55import 'package:sqlite_async/sqlite3_common.dart' ;
6+ import 'package:sqlite_async/sqlite3_web.dart' ;
67import 'package:sqlite_async/sqlite_async.dart' ;
8+ import 'package:sqlite_async/web.dart' ;
9+
10+ import '../../web/worker_utils.dart' ;
711
812/// Web implementation for [AbstractPowerSyncOpenFactory]
9- class PowerSyncOpenFactory extends AbstractPowerSyncOpenFactory {
13+ class PowerSyncOpenFactory extends AbstractPowerSyncOpenFactory
14+ implements WebSqliteOpenFactory {
1015 PowerSyncOpenFactory ({
1116 required super .path,
1217 super .sqliteOptions,
1318 });
1419
20+ @override
21+ Future <WebSqlite > openWebSqlite (WebSqliteOptions options) async {
22+ return WebSqlite .open (
23+ wasmModule: Uri .parse (sqliteOptions.webSqliteOptions.wasmUri),
24+ worker: Uri .parse (sqliteOptions.webSqliteOptions.workerUri),
25+ controller: PowerSyncAsyncSqliteController (),
26+ );
27+ }
28+
1529 @override
1630 void enableExtension () {
1731 // No op for web
Original file line number Diff line number Diff line change 44
55library ;
66
7- import 'dart:js_interop' ;
8-
9- import 'package:sqlite_async/sqlite3_web_worker.dart' ;
107import 'package:sqlite_async/sqlite3_web.dart' ;
11- import 'package:sqlite_async/sqlite3_wasm.dart' ;
128
139import 'worker_utils.dart' ;
1410
1511void main () {
1612 WebSqlite .workerEntrypoint (controller: PowerSyncAsyncSqliteController ());
1713}
18-
19- final class PowerSyncAsyncSqliteController extends AsyncSqliteController {
20- @override
21- Future <WorkerDatabase > openDatabase (
22- WasmSqlite3 sqlite3, String path, String vfs) async {
23- final asyncDb = await super .openDatabase (sqlite3, path, vfs);
24- setupPowerSyncDatabase (asyncDb.database);
25- return asyncDb;
26- }
27-
28- @override
29- Future <JSAny ?> handleCustomRequest (
30- ClientConnection connection, JSAny ? request) {
31- throw UnimplementedError ();
32- }
33- }
Original file line number Diff line number Diff line change 1- import 'package:powersync_core/sqlite3_common.dart' ;
1+ import 'dart:js_interop' ;
2+
23import 'package:powersync_core/src/open_factory/common_db_functions.dart' ;
4+ import 'package:sqlite_async/sqlite3_wasm.dart' ;
5+ import 'package:sqlite_async/sqlite3_web.dart' ;
6+ import 'package:sqlite_async/sqlite3_web_worker.dart' ;
37import 'package:uuid/uuid.dart' ;
48
9+ final class PowerSyncAsyncSqliteController extends AsyncSqliteController {
10+ @override
11+ Future <WorkerDatabase > openDatabase (
12+ WasmSqlite3 sqlite3, String path, String vfs) async {
13+ final asyncDb = await super .openDatabase (sqlite3, path, vfs);
14+ setupPowerSyncDatabase (asyncDb.database);
15+ return asyncDb;
16+ }
17+
18+ @override
19+ Future <JSAny ?> handleCustomRequest (
20+ ClientConnection connection, JSAny ? request) {
21+ throw UnimplementedError ();
22+ }
23+ }
24+
525// Registers custom SQLite functions for the SQLite connection
626void setupPowerSyncDatabase (CommonDatabase database) {
727 setupCommonDBFunctions (database);
You can’t perform that action at this time.
0 commit comments